# 标准库

在使用Gnolang语言开发智能合约的过程中,开发人员可以使用GnoVM提供的核心标准库stdlib

导入方法:

import "std"
1

# std.AssertOriginCall

func AssertOriginCall()
1

检查合约是否直接调用,否则panic

# std.IsOriginCall

func IsOriginCall() bool
1

检查合约是否直接调用,是返回true,否则返回false

# std.Hash

func Hash(bz []byte) [20]byte
1

计算哈希

# std.CurrentRealmPath

func CurrentRealmPath() string
1

获取当前Realm的路径

# std.GetChainID

func GetChainID() string
1

获取链id

# std.GetHeight

func GetHeight() int64
1

获取区块高度

# std.GetOrigSend

func GetOrigSend() Coins
1

获取当前交易的代币发送信息

# std.GetOrigCaller

func GetOrigCaller() Address
1

获取当前交易发起用户地址

# std.GetOrigPkgAddr

func GetOrigPkgAddr() Address
1

获取当前package地址

# std.GetCallerAt

func GetCallerAt(n int) Address
1

获取调用堆栈中索引为n的调用者地址

# std.GetBanker

func GetBanker(bankerType BankerType) Banker
1

获取Banker, 其中BankerType取值如下:

  • BankerTypeReadonly
  • BankerTypeOrigSend
  • BankerTypeRealmSend
  • BankerTypeRealmIssue

# std.GetTimestamp

func GetTimestamp() Time
1

获取时间戳

# std.FormatTimestamp

func FormatTimestamp(timestamp Time, format string) string
1

格式化时间戳

# std.EncodeBech32

func EncodeBech32(prefix string, bytes [20]byte) Address
1

输入前缀和哈希值编码成Bech32格式的地址

# std.DecodeBech32

func DecodeBech32(addr Address) (prefix string, bytes [20]byte, ok bool)
1

解码Bech32格式地址

# std.DerivePkgAddr

func DerivePkgAddr(pkgPath string) Address
1

输入package路径,获取对应的地址