contract/wasm/bridge_instance.go
(完整代码) 1010Bpackage wasm
import (
"errors"
"github.com/xuperchain/xuperunion/contract"
"github.com/xuperchain/xuperunion/contract/bridge"
"github.com/xuperchain/xuperunion/contract/wasm/vm"
"github.com/xuperchain/xuperunion/pb"
)
type bridgeInstance struct {
ctx *bridge.Context
vmInstance vm.Instance
codeDesc *pb.WasmCodeDesc
}
func (v *bridgeInstance) guessEntry() (string, error) {
switch v.codeDesc.GetRuntime() {
case "go":
return "run", nil
case "c":
return "_" + v.ctx.Method, nil
default:
return "", errors.New("bad runtime")
}
}
func (v *bridgeInstance) getEntry() (string, error) {
return v.guessEntry()
}
func (v *bridgeInstance) Exec() error {
entry, err := v.getEntry()
if err != nil {
return err
}
return v.vmInstance.Exec(entry)
}
func (v *bridgeInstance) ResourceUsed() contract.Limits {
return v.vmInstance.ResourceUsed()
}
func (v *bridgeInstance) Release() {
v.vmInstance.Release()
}
func (v *bridgeInstance) Abort(msg string) {
v.vmInstance.Abort(msg)
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
