contract/contract_mgr.go
(完整代码) 1KBpackage contract
import (
"github.com/xuperchain/xuperunion/pluginmgr"
"errors"
)
const (
// ContractPluginName is the name of contract plugin
ContractPluginName = "contract"
)
// CreateContractInstance create contract driver from plugin manager
func CreateContractInstance(subtype string, extParams map[string]interface{}) (ContractInterface, error) {
// load contract plugin
pluginMgr, err := pluginmgr.GetPluginMgr()
if err != nil {
return nil, errors.New("CreateContractInstance: get plugin mgr failed")
}
pluginIns, err := pluginMgr.PluginMgr.CreatePluginInstance(ContractPluginName, subtype)
if err != nil {
errmsg := "CreateContractInstance: create plugin failed! name=" + subtype
return nil, errors.New(errmsg)
}
switch pluginIns.(type) {
case ContractExtInterface:
consIns := pluginIns.(ContractExtInterface)
err := consIns.Init(extParams)
if err != nil {
errmsg := "CreateContractInstance: init failed! name=" + subtype
return nil, errors.New(errmsg)
}
}
conIns := pluginIns.(ContractInterface)
return conIns, nil
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
