Skip to main content

Go Smart Contract Development Kit

Project description

Go Smart Contracts Development Kit

Debugger

Debugging

Code Coverage

Code Coverage

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

Installing gscdk in Docker

Building docker image for gscdk

docker build https://github.com/uuosio/gscdk-docker#main -t gscdk/test

Running

docker run -w /root/dev -it --rm -v "$(pwd)":/root/dev -t gscdk/test /bin/bash

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

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.1.tar.gz (68.7 MB view hashes)

Uploaded Source

Built Distributions

gscdk-0.7.1-py3-none-win_amd64.whl (68.5 MB view hashes)

Uploaded Python 3 Windows x86-64

gscdk-0.7.1-py3-none-manylinux1_x86_64.whl (73.8 MB view hashes)

Uploaded Python 3

gscdk-0.7.1-py3-none-macosx_10_15_x86_64.whl (60.3 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