EOS JAVA 调用(离线签名)

前言:  之前一篇文章是用的在线签名,本地启用了keosd服务,来管理用户密钥和数据签名.

本篇文章,直接离线签名,无需自己再启动eos的相关服务.  (上一篇文章https://blog.csdn.net/liu1765686161/article/details/82180070)

用户充值:需要告知用户userId,用户充值时备注上userId,然后后台查询账户交易记录.判断memo是否为用户ID.是则代表用户充值.

1,下载eos4j.jar包(https://download.csdn.net/download/liu1765686161/10767922),加入项目中.  下载需要CSDN积分,没有的话可加QQ技术交流群629042605下载

2,直接调用

private Logger log = Log.get();
//正式网络https://api-v2.eosasia.one
private String chainUrl = "https://api-kylin.eosasia.one";//测试网络
private String account = "";
private String activePrivateKey = "";
private EosRpcService eosRpcService = null;
private static final String EOS_TOKEN = "eosio.token";
private static final String ACTION_TRANSFER = "transfer";

离线签名并发送

/**
     * 发送交易
     * @param toAccount
     * @param amount 保留4位小数点
     * @param memo
     * @return
     */
    public String send(String toAccount,double amount,String memo){
		try {
			String amt = BigDecimalUtil.getFourString(amount)+" EOS";
			System.out.println(amt);
//			Transaction t1 = rpc.transfer("5JJB2oiCXwASK9fumjyTgbtHcwDVedVRaZda1kBhFuQcmjnrDWB","eosio.token", "eosqxyx11111","eosqxyx22222", "10.0000 EOS", "te1");
			Transaction t1 = eosRpcService.transfer(activePrivateKey,EOS_TOKEN, account,toAccount, amt, memo);
	        if (t1 != null) {
	        	log.info("EOS转账成功:transactionId:{}",t1.getTransactionId());
	    		return t1.getTransactionId();
			}else {
				log.info("EOS转账失败");
			}
		} catch (Exception e) {
			e.printStackTrace();
			log.error("EOS转账失败:{}",e.getMessage());
		}
        return null;
    }

3,建立一个定时任务,扫描用户交易记录,并记录每次处理到用户第几条交易记录.

希望能帮到大家,欢迎大家一起分享。

觉得有用请打赏,你的鼓励就是我的动力!

有问题可以通过chat向我提问,共同进步

同时也可以加入我创建的技术交流群629042605

你可能感兴趣的:(区块链)