| | |
| | | public static final Event TRANSFER_EVENT = new Event("Transfer", |
| | | Arrays.<TypeReference<?>>asList(new TypeReference<Address>(true) {}, new TypeReference<Address>(true) {}, new TypeReference<Uint256>() {})); |
| | | ; |
| | | /** |
| | | * { |
| | | * "anonymous": false, |
| | | * "inputs": [ |
| | | * { |
| | | * "indexed": false, |
| | | * "internalType": "address", |
| | | * "name": "adr", |
| | | * "type": "address" |
| | | * }, |
| | | * { |
| | | * "indexed": false, |
| | | * "internalType": "uint256", |
| | | * "name": "amount", |
| | | * "type": "uint256" |
| | | * }, |
| | | * { |
| | | * "indexed": false, |
| | | * "internalType": "uint256", |
| | | * "name": "price", |
| | | * "type": "uint256" |
| | | * }, |
| | | * { |
| | | * "indexed": false, |
| | | * "internalType": "uint256", |
| | | * "name": "usdtTarget", |
| | | * "type": "uint256" |
| | | * }, |
| | | * { |
| | | * "indexed": false, |
| | | * "internalType": "uint256", |
| | | * "name": "coinTarget", |
| | | * "type": "uint256" |
| | | * }, |
| | | * { |
| | | * "indexed": false, |
| | | * "internalType": "uint256", |
| | | * "name": "usdtCoin", |
| | | * "type": "uint256" |
| | | * }, |
| | | * { |
| | | * "indexed": false, |
| | | * "internalType": "uint256", |
| | | * "name": "lastMineTime", |
| | | * "type": "uint256" |
| | | * } |
| | | * ], |
| | | * "name": "CoinReward", |
| | | * "type": "event" |
| | | * } |
| | | */ |
| | | public static final Event COINREWARD_EVENT = new Event("CoinReward", |
| | | Arrays.<TypeReference<?>>asList( |
| | | new TypeReference<Address>(false) {}, |
| | | new TypeReference<Uint256>(false) {}, |
| | | new TypeReference<Uint256>(false) {}, |
| | | new TypeReference<Uint256>(false) {}, |
| | | new TypeReference<Uint256>(false) {}, |
| | | new TypeReference<Uint256>(false) {}, |
| | | new TypeReference<Uint256>(false) {})); |
| | | ; |
| | | |
| | | @Deprecated |
| | | protected EthUsdtContract(String contractAddress, Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) { |
| | |
| | | EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); |
| | | filter.addSingleTopic(EventEncoder.encode(TRANSFER_EVENT)); |
| | | return transferEventFlowable(filter); |
| | | } |
| | | |
| | | public Flowable<CoinRewardEventResponse> coinRewardEventFlowable(EthFilter filter) { |
| | | return web3j.ethLogFlowable(filter).map(new Function<Log, CoinRewardEventResponse>() { |
| | | @Override |
| | | public CoinRewardEventResponse apply(Log log) { |
| | | // final List<String> topics = log.getTopics(); |
| | | // String encodedEventSignature = EventEncoder.encode(COINREWARD_EVENT); |
| | | // if (topics == null || topics.size() == 0 || !topics.get(0).equals(encodedEventSignature)) { |
| | | // return null; |
| | | // } |
| | | // |
| | | // List<Type> indexedValues = new ArrayList<>(); |
| | | // List<Type> nonIndexedValues = |
| | | // FunctionReturnDecoder.decode(log.getData(), COINREWARD_EVENT.getNonIndexedParameters()); |
| | | // |
| | | // List<TypeReference<Type>> indexedParameters = COINREWARD_EVENT.getIndexedParameters(); |
| | | // for (int i = 0; i < indexedParameters.size(); i++) { |
| | | // Type value = |
| | | // FunctionReturnDecoder.decodeIndexedValue( |
| | | // topics.get(i + 1), indexedParameters.get(i)); |
| | | // indexedValues.add(value); |
| | | // } |
| | | // final EventValues eventValues = new EventValues(indexedValues, nonIndexedValues); |
| | | EventValuesWithLog eventValues = extractEventParametersWithLog(COINREWARD_EVENT, log); |
| | | CoinRewardEventResponse typedResponse = new CoinRewardEventResponse(); |
| | | if(eventValues!=null){ |
| | | typedResponse.adr = (String) eventValues.getNonIndexedValues().get(0).getValue(); |
| | | typedResponse.amount = (BigInteger) eventValues.getNonIndexedValues().get(1).getValue(); |
| | | typedResponse.price = (BigInteger) eventValues.getNonIndexedValues().get(2).getValue(); |
| | | typedResponse.usdtTarget = (BigInteger) eventValues.getNonIndexedValues().get(3).getValue(); |
| | | typedResponse.coinTarget = (BigInteger) eventValues.getNonIndexedValues().get(4).getValue(); |
| | | typedResponse.usdtCoin = (BigInteger) eventValues.getNonIndexedValues().get(5).getValue(); |
| | | typedResponse.lastMineTime = (BigInteger) eventValues.getNonIndexedValues().get(6).getValue(); |
| | | typedResponse.blockHash = log.getTransactionHash(); |
| | | } |
| | | |
| | | return typedResponse; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | System.out.println(EventEncoder.encode(COINREWARD_EVENT)); |
| | | } |
| | | |
| | | public Flowable<CoinRewardEventResponse> coinRewardEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) { |
| | | EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress()); |
| | | filter.addSingleTopic(EventEncoder.encode(COINREWARD_EVENT)); |
| | | return coinRewardEventFlowable(filter); |
| | | } |
| | | |
| | | public RemoteFunctionCall<BigInteger> allowance(String tokenOwner, String spender) { |
| | |
| | | |
| | | public BigInteger tokens; |
| | | } |
| | | |
| | | public static class CoinRewardEventResponse extends BaseEventResponse { |
| | | public String adr;//地址 |
| | | |
| | | public BigInteger amount;//总挖矿币量 |
| | | public BigInteger price;//挖矿时价格 |
| | | public BigInteger usdtTarget;//金本位多少USDT,单位USDT |
| | | public BigInteger coinTarget;//币本位多少币 |
| | | public BigInteger usdtCoin;//金本位换算后多少币 |
| | | public BigInteger lastMineTime;//上一次挖矿时间 |
| | | public String blockHash;//上一次挖矿时间 |
| | | } |
| | | } |