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:
eosdebugger
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-contract build
TEST_COVERAGE=1 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.9-py3-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 661f06fb384aa1c987a5eab99b5df827975b6c7be4bb82cbfc5140453559c2e6 |
|
MD5 | 02f7d396c118417883733f23702bdb17 |
|
BLAKE2b-256 | 831147d70ae431389191afafd02c85c5d4620ee60081ec656c11fcfd727b41b5 |
Hashes for gscdk-0.7.9-py3-none-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ff5adf224e8efa7214a22a71e27d350f3c540516bea0e862c73d140a85c82cd |
|
MD5 | de375302542e12f7c838551f1fa4f3d0 |
|
BLAKE2b-256 | b0dc37de3cf2f5645c72d77ca01cf211e87d7c8f568e8c41b556dcb83503129a |
Hashes for gscdk-0.7.9-py3-none-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8668c7d088d3b533e0ffd891320758f700feaec87da8d37a18eca190637ef7d |
|
MD5 | 513ba107ee30d30133d90b9e5b50e784 |
|
BLAKE2b-256 | d37b2df5ad9079263224b8279eefa47fd942aa9fc9cd170bda248c816cdb049a |