Coder Social home page Coder Social logo

web3j-sample's Introduction

web3j-sample

web3 for java 样例程序 (基于web3j 3.6.0)
环境 idea maven
运行前提 需要有一个开启RPC或者IPC服务的以太坊节点


打赏 eth地址:0x248F272180db4D079443753336c5C847A080275c

博客Blog

web3j-sample's People

Contributors

totoroyang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

web3j-sample's Issues

Failed to use SolSample.java

I trying to use SolSample with Ganache, my method is the same:

	private static void deploy() {
		Web3j web3j = Web3j.build(new HttpService(Environment.RPC_URL));
		Credentials credentials = Credentials.create("9797ab180fae3c9fa50c1b713beb5e08e012a303de04760349712dbcf6d497c1");//可以根据私钥生成
                System.out.println("Address: " + credentials.getAddress());
		RemoteCall<TokenERC20> deploy = TokenERC20.deploy(web3j, credentials,
				Convert.toWei("10", Convert.Unit.GWEI).toBigInteger(),
				BigInteger.valueOf(3000000),
				BigInteger.valueOf(5201314),
				"my token", "mt");
		try {
			TokenERC20 tokenERC20 = deploy.send();
			tokenERC20.isValid();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

but, the error is:

Address: 0xf7e06fc2159da20efa1a5c3bfe3330445259314d java.lang.RuntimeException: java.lang.NoSuchMethodException: com.ethjava.sol.TokenERC20.<init>(java.lang.String, org.web3j.protocol.Web3j, org.web3j.crypto.Credentials, org.web3j.tx.gas.ContractGasProvider) at org.web3j.tx.Contract.deploy(Contract.java:359) at org.web3j.tx.Contract.deploy(Contract.java:396) at org.web3j.tx.Contract.lambda$deployRemoteCall$5(Contract.java:419) at org.web3j.protocol.core.RemoteCall.send(RemoteCall.java:30) at com.ethjava.sol.SolSample.deploy(SolSample.java:29) at com.ethjava.sol.SolSample.main(SolSample.java:15) Caused by: java.lang.NoSuchMethodException: com.ethjava.sol.TokenERC20.<init>(java.lang.String, org.web3j.protocol.Web3j, org.web3j.crypto.Credentials, org.web3j.tx.gas.ContractGasProvider) at java.base/java.lang.Class.getConstructor0(Class.java:3350) at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2554) at org.web3j.tx.Contract.deploy(Contract.java:346) ... 5 more Exception in thread "main" java.lang.NullPointerException at org.web3j.tx.RawTransactionManager.<init>(RawTransactionManager.java:36) at org.web3j.tx.RawTransactionManager.<init>(RawTransactionManager.java:66) at org.web3j.tx.Contract.<init>(Contract.java:94) at com.ethjava.sol.TokenERC20.<init>(TokenERC20.java:75) at com.ethjava.sol.TokenERC20.load(TokenERC20.java:263) at com.ethjava.sol.SolSample.use(SolSample.java:41) at com.ethjava.sol.SolSample.main(SolSample.java:16) Command execution failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404) at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166) at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:764) at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:711) at org.codehaus.mojo.exec.ExecMojo.execute(ExecMojo.java:289) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

请问一下交易前算出txhash这个方法中的signeddata是怎么生成的

public class Calculate {
public static void main(String[] args) {
System.out.println(calculateContractAddress("0x6c0f49aF552F2326DD851b68832730CB7b6C0DaF".toLowerCase(), 294));

	String signedData = "0xf8ac8201518506fc23ac00830493e094fda023cea60a9f421d74ac49f9a015880a77dd7280b844a9059cbb000000000000000000000000b5dbd2e4093a501f1d1e645f04cef5815a1581d7000000000000000000000000000000000000000000000004c53ecdc18a6000001ca03d710f3c5aabde2733938c44c0b1448f96e760c030205562f59889557397faa4a007110abbcfa343381a2f713d6339d3fa751200f82cc2f06a4d1967b4eaf61d50";
	System.out.println(caculateTransactionHash(signedData));
}

token转账

_20180523153818

转账的时候报这个错误,能帮忙看看是什么原因吗?

log监听中断问题

您好博主,我在试用log监听的时候,会发生监听中断,请问有中断重连的方案吗

我用maven项目导入web3,生成签名的时候signer information does not match signer information of other classes in the same package

Exception in thread "main" java.lang.SecurityException: class "org.bouncycastle.jcajce.provider.digest.BCMessageDigest"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:898)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
at java.lang.ClassLoader.defineClass(ClassLoader.java:761)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.web3j.abi.FunctionEncoder.buildMethodId(FunctionEncoder.java:88)
at org.web3j.abi.FunctionEncoder.encode(FunctionEncoder.java:28)
at walletmanager.ETHTest.tranToken(ETHTest.java:448)
at walletmanager.ETHTest.main(ETHTest.java:76)

连接测试链ropsten 的时候用Admin查询账号和创建账号失败

感谢大神
admin = Admin.build(new HttpService("https://ropsten.infura.io/v3/9e0de0c5fdfb4349972e110119a***")); System.out.println(admin.toString()); createNewAccount("123456"); getAccountList();

连接测试链https://ropsten.infura.io/v3/9e0de0c5fdfb4349972e11***** 用Admin创建账号出现如下错误信息
Exception in thread "main" org.web3j.protocol.exceptions.ClientConnectionException: Invalid response received: 405; at org.web3j.protocol.http.HttpService.performIO(HttpService.java:116) at org.web3j.protocol.Service.send(Service.java:34) at org.web3j.protocol.core.Request.send(Request.java:71) at com.cl.AccountManager.getAccountList(AccountManager.java:50) at com.cl.AccountManager.main(AccountManager.java:25)
getAccountList也是同样的错误。如果是自己搭建的私链就好着。

查询代币余额出错

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0
at java.util.Collections$EmptyList.get(Collections.java:4454)
at com.ethjava.TokenClient.getTokenName(TokenClient.java:119)
at com.ethjava.TokenClient.main(TokenClient.java:52)

Invalid response received: okhttp3.internal.http.RealResponseBody@72967906

Exception in thread "main" rx.exceptions.OnErrorNotImplementedException: Invalid response received: okhttp3.internal.http.RealResponseBody@72967906
at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:386)
at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:383)
at rx.internal.util.ActionSubscriber.onError(ActionSubscriber.java:44)
at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:153)
at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:115)
at rx.Observable.subscribe(Observable.java:10249)
at rx.Observable.subscribe(Observable.java:10205)
at rx.Observable.subscribe(Observable.java:10010)
at com.ethjava.ContractEvent.main(ContractEvent.java:51)

多出出现相同bug,连接的是infura的节点 使用的是at com.ethjava.ContractEvent

geth创建了私有链上,使用创建账号方法createNewAccount()创建账号返回却是null?

这些代码非常适合我这个新手,感谢作者的开源分享。世界因好人而美好!

还有我在我的geth私有链上
geth --datadir "E:\EthDBSpace\PrivChain" 创建了私有链,并发行了一定量的资产
并且创建有如下账号
image
然而我调用了geth --rpc --rpcaddr localhost --rpcport "8545" --syncmode "light" --datadir "E:\EthDBSpace\PrivChain" 想进入到我的私有链上用java打通注册账号
却返回了null值。
image
我的期望是理应返回一串地址值,但不知道错在那里?
我使用了如下教程来创建私有链
https://blog.csdn.net/weixin_40401264/article/details/78095222

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.