ETH-RPC

可以通过:
web3j包的api生成json文件,并且生成私钥 公钥:

 String walletFileName = "";
        EthResult ethResult = new EthResult();
        String password = getPassword.RandomPassword9();
        getFileDir(CAPITAL_UPLOAD_FILES_DIR);
        try {
            ECKeyPair ecKeyPair = Keys.createEcKeyPair();//创建钥匙对
            BigInteger privateInDec = ecKeyPair.getPrivateKey();//获取私钥
            String privateKey = privateInDec.toString(16);//获取16进制的私钥
            WalletFile awallet = Wallet.createLight(password,ecKeyPair);//创建钱包
            String address = awallet.getAddress();//获取地址
            if(address.startsWith("0x")){
                address = address.substring(2).toLowerCase();
            }else {
                address = address.toLowerCase();
            }
            address = "0x" + address;
            ethResult.setAddress(address);
            ethResult.setPrivateKey(privateKey);
            ethResult.setPassword(Base64Utils.getBase64(Base64Utils.getBase64(password)));
            walletFileName = WalletUtils.generateNewWalletFile(password, new File(CAPITAL_UPLOAD_FILES_DIR), false);
            ethResult.setWalletPath(walletFileName);
            ethRPCApiUtils.improtPrivateKey(privateKey, password);//注意 同时需要把生成的钱包导入到你的geth客户端,通过rpc调用personal_importRawKey这个Api,参数见名知意
            ethRPCApiUtils.unlock(address, password);//同时还要通过personal_unlockAccount这个api解锁账户,否则geth将会一堆警告,时间要设好。我写的null,主要看你们
        } catch (Exception e) {
            log.error("newAccount error");
            throw new RuntimeException("new Account error " + e.getMessage());
        }
        return ethResult;

创建的时候特别谨记要导入私钥以及解锁账户!!!

原创文章 25 获赞 10 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42195162/article/details/98181163
ETH
RPC
今日推荐