Skip to main content

Go Smart Contract Development Kit

Project description

Go Smart Contracts Development Kit

PyPi PyPi

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

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

Debugging

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

Code Coverage

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gscdk-0.7.9.tar.gz (77.8 MB view hashes)

Uploaded Source

Built Distributions

gscdk-0.7.9-py3-none-win_amd64.whl (72.4 MB view hashes)

Uploaded Python 3 Windows x86-64

gscdk-0.7.9-py3-none-manylinux1_x86_64.whl (83.2 MB view hashes)

Uploaded Python 3

gscdk-0.7.9-py3-none-macosx_10_15_x86_64.whl (66.0 MB view hashes)

Uploaded Python 3 macOS 10.15+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page