fix
wzy
2022-08-27 a0a74747c9e486b700cf866250fbb64cbc73bc14
fix
4 files modified
42 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/chain/ContractChainService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/chain/EthService.java 33 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java 5 ●●●●● patch | view | raw | blame | history
src/test/java/cc/mrbird/febs/ChainTest.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/chain/ContractChainService.java
@@ -28,4 +28,6 @@
    BigInteger totalSupplyNFT();
    String safeMintNFT(String address);
    String ownerOfNft(Integer index);
}
src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
@@ -427,4 +427,37 @@
            return "";
        }
    }
    @Override
    public String ownerOfNft(Integer index) {
        try {
            String methodName = "ownerOf";
            List<Type> inputParameters = new ArrayList<>();
            List<TypeReference<?>> outputParameters = new ArrayList<>();
            Uint256 uint256 = new Uint256(index);
            inputParameters.add(uint256);
            TypeReference<Address> typeReference = new TypeReference<Address>() {
            };
            outputParameters.add(typeReference);
            Function function = new Function(methodName, inputParameters, outputParameters);
            String data = FunctionEncoder.encode(function);
            Transaction transaction = Transaction.createEthCallTransaction(null, contractAddress, data);
            EthCall ethCall;
            String address = "";
            try {
                ethCall = web3j.ethCall(transaction, DefaultBlockParameterName.LATEST).send();
                List<Type> results = FunctionReturnDecoder.decode(ethCall.getValue(), function.getOutputParameters());
                address = (String) results.get(0).getValue();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return address;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
}
src/main/java/cc/mrbird/febs/dapp/chain/TrxService.java
@@ -123,4 +123,9 @@
    public String safeMintNFT(String address) {
        return null;
    }
    @Override
    public String ownerOfNft(Integer index) {
        return null;
    }
}
src/test/java/cc/mrbird/febs/ChainTest.java
@@ -141,6 +141,6 @@
    @Test
    public void nftTest() {
        ChainService.getInstance(ChainEnum.BSC_NFT_SDC.name()).safeMintNFT("0xdf034cb12a2d42c000a58b582cf61d2b481c42d6");
        System.out.println(ChainService.getInstance(ChainEnum.BSC_NFT_SDC.name()).ownerOfNft(1));
    }
}