创建第一个合约
优质
小牛编辑
124浏览
2023-12-01
更多的调测方式请查看后面的“调测”章节
在govm文件夹下创建一个临时文件,如tmp
在tmp文件夹里创建一个文件,如app.go
在app.go里输入如下代码
package app
import core "github.com/lengzhao/govm/app/chain1/ae4a05b2b8a4de21d9e6f26e9d7992f7f33e89689f3015f3fc8a3a3278815e28c"
type tApp struct {
}
func run(user, in []byte, cost uint64) {
core.Event(tApp{}, "start_app", user, in)
}
合约功能:打印一条日志,打印用户和入参信息
代码说明:
- Import core */ae4a05b2b8a4de21d9e6f26e9d7992f7f33e89689f3015f3fc8a3a3278815e28c:
- 引用接口模块,ae4a05b2b8a4de21d9e6f26e9d7992f7f33e89689f3015f3fc8a3a3278815e28c为系统对外提供的功能模块,名字固定不变。
- core为别名,方便后续代码中使用该模块。
- 禁止import合约系统外的模块,所有引用的模块只能是以github.com/lengzhao/govm/app/chain开头的
- type tApp struct:定义一个私有结构体,可以用于写日志,读写数据库。只有私有结构体才能够操作日志和读写数据库。
- func run(user, in []byte, cost uint64):这个是智能合约的调用入口,user为合约的调用者,in为用户携带的函数入参,cost为用户支付的费用(如卖票的合约,cost就相当于票价)
- core.Event(tApp{}, "start_app", user, in):使用系统接口,发送一个事件(该接口默认只是打印一条日志。)