Truffle DappChain Example
This simple example shows how you can use Truffle
and the zeknd Truffle Provider to build a simple Web UI that interacts with the Basechain.
#Requirements
Make sure the following requirements are met and then follow the steps in the next section:
#Install
First, let's clone this repository. Open a terminal, cd
into the directory where you store your projects, and run the following command:
Next, cd
into truffle-dappchain-example
:
and run:
#Run against Extdev Testnet
#Generate the zeknd private key
The following command will download the zeknd binary and generate the private key for you:
The zeknd private key will be saved into a file called
extdev_private_key
.
#Deploy to Extdev Testnet
As an example, we will deploy and run our application against Extdev.
Run the following command:
The above command will compile and then deploy our smart contract to Extdev
#Test
Run this command below to send transactions to the smart contract deployed to Extdev:
If everything looks good, let's spin up a web server and interact with our smart contract.
#Start the web interface
The web interface is built with React and Webpack. Open a new terminal and run the following command:
The web interface is available on http://localhost:8080.
#Run against local zeknd chain
First, you have to generate a private key using:
#Spin up zeknd Chain
In a new terminal, run:
#Deploy the smart contract
To deploy, run the following command:
You will see something like this:
Copy the Network id
paste it into a text file. We'll use it later.
#Test
#Web interface
Open the src/contract.js
file in your text editor of choice and go to line 87.
Now, say your Network id
is 13654820909954
. Replace
with
We're ready to start the web server. In a new terminal, run:
#Useful information
In order to correctly redeploy the contracts, there's a command
yarn deploy:reset
.Also is possible to call truffle command directly with
yarn truffle
.We're not versioning the build directory for this particular example, although is recommended to versioning, the limitation can be removed by editing the
.gitignore
file.
#Current limitations
Events declared on smart contracts should have an named parameter like
NewValueSet(uint _value)
in the contractSimpleStore.sol
. Also, it helps in dealing with events.
#zeknd Network
https://zeknd.xyz
#License
BSD 3-Clause License
Last updated