Go Smart Contract Development Kit
Project description
Go Smart Contracts Development Kit
What a Go Smart Contract looks like?
Here is an example
package main
import (
"github.com/uuosio/chain"
)
//table mytable
type MyData struct {
primary uint64 //primary
name string
}
//contract mycontract
type MyContract struct {
Receiver chain.Name
FirstReceiver chain.Name
Action chain.Name
}
func NewContract(receiver, firstReceiver, action chain.Name) *MyContract {
return &MyContract{receiver, firstReceiver, action}
}
//action sayhello
func (c *MyContract) SayHello(name string) {
code := c.Receiver
payer := c.Receiver
mydb := NewMyDataDB(code)
primary := uint64(111)
if it, data := mydb.GetByKey(primary); it.IsOk() {
if data.name != name {
chain.Println("Welcome new friend:", name)
} else {
chain.Println("Welcome old friend", name)
}
data.name = name
mydb.Update(it, data, payer)
} else {
chain.Println("Welcome new friend", name)
data := &MyData{primary, name}
mydb.Store(data, payer)
}
}
Quick Start
Installation
python3 -m pip install gscdk
For the Windows platform:
python -m pip install gscdk
Upgrade From an Old Version
python3 -m pip install --upgrade gscdk
For the Windows platform:
python -m pip install --upgrade gscdk
Building Go Smart Contracts Compiler
Follow the steps in Building
That will build the tinygo
command in the compiler/build directory that supports building Go Smart Contracts.
export PATH=$(pwd)/compiler/build:$PATH
go-contract
Initializing a project with the "init" subcommand
The "init" command initializes a project with the contract name
go-contract init mycontract
cd mycontract
Generating ABI and Extra Code for Smart Contracts
go-contract gencode
Code generation is also the default option for the "build" command
Building Go Smart Contracts Project
Compiling the Source Code
go-contract build
Disable Code Generation during Building
go-contract build -gen-code=false .
Disable Code Optimization
Specifying -d
or --debug
option to disable wasm optimization.
go-contract build -d
Debugging
Install ipyeos
first for debugging.
python3 -m pip install ipyeos
In order to update to a new version, use the following command:
python3 -m pip install -U ipyeos
Then run the debugging server:
eos-debugger
On Windows, you need to use a docker image to run a debugging server.
docker pull ghcr.io/uuosio/ipyeos:latest
Run the debugging server on the Windows platform:
docker run -it --rm -p 9090:9090 -p 9092:9092 -t ghcr.io/uuosio/ipyeos
Code Coverage Analysis
Use the following command to generate a code coverage report in html
go test -coverprofile=coverage.out
go tool cover -html=coverage.out
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for gscdk-0.7.6-py3-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cd79cf95212ae811939bc8dd78ef4df925446ae69ec169f0627e4913af0fed3 |
|
MD5 | 7eb7e7e245f695401d83d7db19320015 |
|
BLAKE2b-256 | c8bc163c39e17ba1675c8d33847edc681bd4d51559cbf669149966d9ec7230ad |
Hashes for gscdk-0.7.6-py3-none-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92ef6873ef8beec38a2ad253bd2254a11a9547cce9d63860ff181d29fc979920 |
|
MD5 | c507be2c74d782f39895957f25494fbd |
|
BLAKE2b-256 | 78386ff77361e486b17f39a4bf4c3333012c82a058094699a74150a78d764d5e |
Hashes for gscdk-0.7.6-py3-none-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cdc92cf5b4f2679c234532abaa5345de29bf9df8cd7e293d7fdf562d1e4f7401 |
|
MD5 | 1658f8c7e5ea08e9bff21c4679a5634d |
|
BLAKE2b-256 | 49750a30068b1d88bee5aea2197a9ec08a70c006cc9495e8d0829df71b7d99ce |