Skip to content

The goal of this tool is to aid in the development and testing of smart contracts by adding the ability to read already deployed EVM smart contract ABI and generate a Remix IDE-like UI for interacting with their public/external functions.This tool was developed with C# and Windows Forms as a desktop application. It works best with the Truffle + …

License

Notifications You must be signed in to change notification settings

jerih0n/EthereumTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 

Repository files navigation

EthereumTools

Smart Contract Tool

The goal of this tool is to aid in the development and testing of smart contracts by adding the ability to read already deployed EVM smart contract ABI and generate a Remix IDE-like UI for interacting with their public/external functions.This tool was developed with C# and Windows Forms as a desktop application. It works best with the Truffle + Ganache development environment. The application has it's own HD wallet implementation, so you don't need wallets like Metamask for interactions with smart contracts. However, the application does not directly support ETH transfers and double confirmation for initting transactions. If such a method is called , the fees will be automatically paid behind the scenes. In the project, there is a simple smart contract to test the application's capabilities (and limitations). 

Run 

truffle migrate --reset

in order to deploy the smartcontract on your prefered environment. It is currently set up to use the Solidity 0.8.0 compiler with a local Ganache instance.

Required .NET 6

How to use

The first thing is to set the appSetting.json 

  -set menemonic phrase

  -set network configuration. It may be local ganace, geth or a public node like Infura.

  -set default path to the folder of your compiled smart contract. This is usually found in the build folder of your Truffle project.

  

image

On first start, you should see an empty application.

image

If the mnemonic phrase is correct, you should see a dropdown with a bunch of different addresses that you can use to interact with the smart contracts. This is similar to the Remix. On address change, an ETH GetBalance request is sent to the blockchain, getting the current ETH balance of the user.

In Contract Address input, you should add the address of an already deployed smart contract and then press the upload button.

It will open the directory configured in the appSetting.json file, and you need to select the corresponding build json file, then press Save Contract.

That should save the contract in the application.

image

On contract selection, it will autogenerate all public/external methods from the loaded contract ABI in a remix lookalike way.

image

The method called "colors" is the following:   -green for pure and view calls   -orange for non payable calls that result in transactions   -red for payable functions

You can load as many contracts as you need. Every time you change the contract, the UI will be autogenerated again in order to work with the selected contract ABI

Calling functions will send a request to the smart contract and the response will be placed below the function if the function call is pure of view (like in Remix)

An example for calling the balanceOf function of ERC20 standard token: 

image

If the request creates a transaction, then the result will be much more detailed and placed in the right part of the application.

An example of a custom stake function that stakes a given amount and emits a blockchain transaction:

image

Delete

You can delete all contracts, saved in the application by pressing the delete button.

NB!

This application is under development. It works fine with most smart contract implementations, but some edge cases may not be implemented, so they may not work well.

The solidity supported version is 0.8.0 and new features of the latest solidity versions may not be supported.

Using this application is at your own risk! Using it with the ETH main net with real ETH is not recommended. The creator of this application should not be held responsible for any financial losses that may happen while using this application.

About

The goal of this tool is to aid in the development and testing of smart contracts by adding the ability to read already deployed EVM smart contract ABI and generate a Remix IDE-like UI for interacting with their public/external functions.This tool was developed with C# and Windows Forms as a desktop application. It works best with the Truffle + …

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published