Godence
Get Started
install by go get.
go get github.com/lemonnekogh/godence
Convert Cadence value to Go value
If you have the following Cadence struct.
pub struct Person {
pub var age: UInt8
pub var Name: String
}
import "github.com/LemonNekoGH/godence"
type Person struct {
Age uint8 `godence:"age"` // you can specify field name in cadence by tag.
Name string
}
func main() {
dist := &Person{}
// Omit: You got a Cadence value from a script or transaction. And return value named 'ret'.
godence.ToGo(ret, dist)
}
Convert Go value to Cadence value
Convert to Cadecne Struct, Event, Resource is currently not support becase type name of Struct, Event, Resource is unpredictable.
Can i convert to AnyStruct and AnyResource?
Testing
Requirements
Steps
- Start the flow emulator with command:
flow emulator
- Deploy contract for testing to the emulator network:
flow deploy
- Open another terminal and run
go clean -testcache && go test .
TODO-List: Go to Cadence
- Documents for Go to Cadence
Integers
- Go
int
to Cadence Int
- Go
int8
to Cadence Int8
- Go
int16
to Cadence Int16
- Go
int32
to Cadence Int32
- Go
int64
to Cadence Int64
- Go
*big.Int
to Cadence Int128
- Go
*big.Int
to Cadence Int256
- Go
uint
to Cadence UInt
- Go
uint8
to Cadence UInt8
- Go
uint16
to Cadence UInt16
- Go
uint32
to Cadence UInt32
- Go
uint64
to Cadence UInt64
- Go
*big.Int
to Cadence UInt128
- Go
*big.Int
to Cadence UInt256
Fixed-Point Numbers
- Go
int64
to Cadence Fix64
- Go
uint64
to Cadence UFix64
Other
- Go
string
to Cadence String
- Go
string
to Cadence Path
- Go
string
to Cadence Address
- Go
bool
to Cadence Bool
- Go
slice
or array
to Cadence Array
-
Go ?
to Cadence Struct
- Go
string
to Cadence Character
-
Go ?
to Cadence Resource
- Go
?
to Cadence Dictionary
-
Go ?
to Cadence Event
TODO-List: Cadence to go
- Documents for Cadence base type to Go.
- Documents for Cadence complex type to Go.
Integers
- Cadence
Int
to Go *big.Int
- Cadence
Int8
to Go int8
- Cadence
Int16
to Go int16
- Cadence
Int32
to Go int32
- Cadence
Int64
to Go int64
- Cadence
Int128
to Go *big.Int
- Cadence
Int256
to Go *big.Int
- Cadence
UInt
to Go *big.Int
- Cadence
UInt8
to Go uint8
- Cadence
UInt16
to Go uint16
- Cadence
UInt32
to Go uint32
- Cadence
UInt64
to Go uint64
- Cadence
UInt128
to Go *big.Int
- Cadence
UInt256
to Go *big.Int
Fixed-Point Numbers
- Cadence
Fix64
to Go int64
- Cadence
UFix64
to Go uint64
Other
- Cadence
String
to Go string
- Cadence
Path
to Go string
- Cadence
Address
to Go string
or cadence.Address
or [8]uint8
- Cadence
Bool
to Go bool
- Cadence
Array
to Go slice
- Cadence
Struct
to Go struct
- Cadence
Character
to Go string
- Cadence
Resource
to Go struct
- Cadence
Dictionary
to Go map
- Cadence
Event
to Go struct