我一直在尝试观察主网上发生的特定合约的交易,特别是 Tether (USDT)。我能够下载合同并使用 Web3 (Java) 编译可靠代码。但是我无法订阅传输事件。它只是超时..有什么我想念的吗?我正在使用下面的代码,但超时。
我看不出这不起作用的原因,我通过 wss://mainnet.infura.io/ws/v3/<my_identifier_here> 通过 Infura 连接
TetherToken tetherToken = TetherToken.load(
"0xdac17f958d2ee523a2206206994597c13d831ec7",
session.getWeb3(),
session.getCredentials(),
session.getGasProvider());
String symbol = tetherToken.symbol().send();
String name = tetherToken.name().send();
BigInteger decimal = tetherToken.decimals().send();
System.out.println("symbol: " + symbol); // success = USDT
System.out.println("name: " + name); // success = Tether USD
System.out.println("decimal: " + decimal.intValueExact()); // success = 6
// java.io.IOException: Request with id 5 timed out
tetherToken.transferEventFlowable(DefaultBlockParameterName.EARLIEST, DefaultBlockParameterName.LATEST)
.subscribe(event -> {
try {
System.err.printf("hash=%s from=%s to=%s amount=%s%n",
event.log.getTransactionHash(),
event.from,
event.to,
event.value);
}catch(Throwable e) {
e.printStackTrace();
}
});
任何帮助将不胜感激。