JAVA 离线生成波场(TRX)地址

JAVA 离线生成波场(TRX)地址

    • 生成地址
    • 转换地址(T -----> 41)
    • 转换地址(41 -----> T)
    • 通过私钥获取地址(开发钱包)
    • 获取TRX地址余额
    • Wallet-cli jar包

波场代币迁移说明:TRX的ERC20代币迁移至波场主网代币.
废话不多说 不明白的可以看下上面的公告

生成地址

	  public TrxApi newAddress(String pwd) {
        try{
            ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper();
            ECKeyPair ecKeyPair = Keys.createEcKeyPair();
            WalletFile walletFile = Wallet.createStandard(pwd, ecKeyPair);
            String keystore = objectMapper.writeValueAsString(walletFile);
            WalletFile walletFile2 = objectMapper.readValue(keystore, WalletFile.class);
            ECKeyPair ecKeyPair1 = Wallet.decrypt(pwd, walletFile2);
            return new TrxApi("41"+walletFile.getAddress(),ecKeyPair1.getPrivateKey().toString(16)) ;
        }catch (Exception e){
            e.printStackTrace();
            logger.info("虚拟币"+COIN_NAME+"创建地址失败,错误代码:{}",new Object[]{e.getMessage()});
            return null ;
        }
    }

转换地址(T -----> 41)

 /**
     *  T ---->  41
     * @param address
     * @return
     */
    public String toHexAddress(String address){
       return  ByteArray.toHexString(WalletApi.decodeFromBase58Check(address));
    }

转换地址(41 -----> T)

 /**
     * 41 ---- > T
     * @param address
     * @return
     */
    public String fromHexAddress(String address){
       return WalletApi.encode58Check(ByteArray.fromHexString(address));
    }

通过私钥获取地址(开发钱包)

 /**
     * 通过私钥获取41地址(开发钱包)
     * @param privateKey
     * @return
     */
    public static String getPrivateKeyToAddress(String privateKey){
        String address = Keys.toChecksumAddress(Keys.getAddress(ECKeyPair.create(Numeric.toBigInt(privateKey))));
        return address.replace("0x","41") ;
    }

获取TRX地址余额

  /**
     * 获取TRX地址余额
     * @param address
     * @return
     */
    public static double getBalance(String address) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("address", address);
        jsonObject.put("visible", true);
        String json = jsonObject.toJSONString();
        String body = HttpUtil.post(POST_URL+"getaccount",json);
        JSONObject jsonBody = JSONObject.parseObject(body);
        if (jsonBody.isEmpty()) {
            return BigDecimal.ZERO.doubleValue();
        } else {
            BigDecimal balance = new BigDecimal(jsonBody.getBigInteger("balance")).divide(new BigDecimal("1000000"));
            return balance.doubleValue();
        }
    }

Wallet-cli jar包

$ git clone https://github.com/tronprotocol/wallet-cli.git
$ cd wallet-cli
$ ./gradlew build
$ cd build/libs

波场钱包接下来的内容稍后更新

你可能感兴趣的:(JAVA 离线生成波场(TRX)地址)