Skip to content

A pre-build smart contract project on ICON blockchain local network (SCORE) with Java

Notifications You must be signed in to change notification settings

SnowyField1906/java-score-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java SCORE template

Title Java SCORE (ICON blockchain’s smart contract) from scratch

Author Huu Thuan Nguyen (SnowyField1906)

References Devera Academy & ICON Network


A. Setup ICON local network

1. Docker

  • Docker-ce
  • Docker-compose

2. Go

3. Ubuntu libs

C++

  • g++

Golang

  • libsnappy-dev
  • libbz2-dev
  • libz-dev

Rocksdb

4. Goloop and Gochain-icon-image

A blockchain node written with Go

5. Gochain-local

Helper scripts to run gochain docker container as a local network

6. Goloop CLI

  • OpenJDK11
  • Goloop

B. Build the sample smart contract

1. Start Goloop local node

cd gochain-local
sudo ./run_gochain.sh start
export PATH=$PATH:/$HOME/goloop/bin

2. Build and optimize the jar

sudo ./gradlew build
sudo ./gradlew optimizedJar

3. Deploy the optimized jar

Input

goloop rpc sendtx deploy ./hello-world/build/libs/hello-world-0.1.0-optimized.jar \
    --uri http://127.0.0.1:9082/api/v3 \
    --key_store /$HOME/gochain-local/data/godWallet.json --key_password gochain \
    --nid 0x3 --step_limit 10000000000 \
    --content_type application/java \
    --param name=Sample

Result

"0x377553162e6589be1bfa246c3fdb70fd9273aa2b5a9ff6973cb7038307b8602d"

4. Get transaction detail

Input

goloop rpc \
    --uri http://localhost:9082/api/v3 txresult 0x377553162e6589be1bfa246c3fdb70fd9273aa2b5a9ff6973cb7038307b8602d

Result

{
  "to": "cx0000000000000000000000000000000000000000",
  "cumulativeStepUsed": "0x3c877349",
  "stepUsed": "0x3c877349",
  "stepPrice": "0x2e90edd00",
  "eventLogs": [],
  "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  "status": "0x1",
  "scoreAddress": "cxe951e82ff33a8883dd0061190a6f3a70ba87e263",
  "blockHash": "0xd3dfaef43e35a0640b2202d941556322c4c4c1ddd83ceb64def021e5f2481720",
  "blockHeight": "0x15f",
  "txIndex": "0x0",
  "txHash": "0x377553162e6589be1bfa246c3fdb70fd9273aa2b5a9ff6973cb7038307b8602d"
}

5. Call to getGreeting method

Input

goloop rpc \
    --uri http://localhost:9082/api/v3 call \
    --to cxe951e82ff33a8883dd0061190a6f3a70ba87e263  \
    --method getGreeting

Result

"Hello Sample!"

6. Send to setName method

Input

goloop rpc sendtx call \
    --to cxe951e82ff33a8883dd0061190a6f3a70ba87e263 \
    --uri http://127.0.0.1:9082/api/v3 \
    --key_store /$HOME/gochain-local/data/godWallet.json \
    --key_password gochain \
    --nid 0x3 --step_limit 10000000 \
    --method setName \
    --param name=YourName

Result

"0x57404eea011050fca1c97f21e67754985cec645463d5b81fa46e44442b06e448"

About

A pre-build smart contract project on ICON blockchain local network (SCORE) with Java

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages