Skip to content

ecp4224/jevm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jevm

A Java API to interact with Smart Contracts

TODO

Documentation

Usage

//Make web3 object with some provider
Web3 web3 = new Web3(new HttpProvider("https://mainnet.infura.io/v3/"));

//Create interface class from web3 object
ERC721Token token = web3.getContract(ERC721Token.class, "0x5CAeBd3b32e210E85CE3E9d51638B9C445481567");

//Invoke functions in contract
System.out.println("Owner of contract is: " + token.owner());
System.out.println("Balance of owner is: " + token.balanceOf(token.owner()));
System.out.println("Owner of token 10810196105056141439 is " + token.ownerOf(new BigInteger("10810196105056141439")));

Example Contract Interface

public interface ERC721Token extends Ownable {

    @View
    BigInteger balanceOf(@Name(name = "owner") Address owner);

    @View
    Address ownerOf(@Name(name = "tokenId") BigInteger tokenId);
}

public interface Ownable extends Contract {

    @Event
    void OwnershipRenounced(
           @Name(name = "previousOwner") @Indexed Address previousOwner
    );

    @Event
    void OwnershipTransferred(
            @Name(name = "previousOwner") @Indexed Address previousOwner,
            @Name(name = "newOwner") @Indexed Address newOwner
    );


    @View
    Address owner();

    @NonPayable
    void renounceOwnership(TransactionOptions options);

    //Test whether no annotation marks function as nonpayable
    void transferOwnership(
            @Name(name = "newOwner") Address newOwner,
            TransactionOptions options
    );
}

About

A Java API to interact with Smart Contracts

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages