Versions in this module Expand all Collapse all v1 v1.1.2 Jul 4, 2022 Changes in this version + type Paillier struct + Data interface{} + PaillierType string + PubKey string + Timestamp *big.Int + func NewPaillier(paillierType string) *Paillier v1.1.1 Apr 21, 2022 v1.1.0 Mar 30, 2022 Changes in this version + const NodeTypeLight + var IsUseDAG string = "IsUseDAG" + var PermissionErr = errors.New("Permission Denied!") + func FwCheck(stateDb StateDB, contractAddr common.Address, caller common.Address, ...) ([]byte, bool) + type BulletProofManager struct + func NewBP(db StateDB) *BulletProofManager + type Evidence struct + EvidenceValue string + Owner common.Address + Timestamp *big.Int + func NewEvidence() *Evidence + type IsUseDAGType struct + type PaillierManager struct + func NewPL(db StateDB) *PaillierManager + type Response struct + Proof string + Scope string + Userid string + type SCBulletProofWrapper struct + func NewBPWrapper(db StateDB) *SCBulletProofWrapper + func (s *SCBulletProofWrapper) AllExportFns() SCExportFns + func (s SCBulletProofWrapper) RequiredGas(input []byte) uint64 + func (s SCBulletProofWrapper) Run(input []byte) ([]byte, error) + type SCEvidence struct + func NewSCEvidence(db StateDB) *SCEvidence + type SCEvidenceWrapper struct + func NewEvidenceWrapper(db StateDB) *SCEvidenceWrapper + func (e *SCEvidenceWrapper) RequiredGas(input []byte) uint64 + func (e *SCEvidenceWrapper) Run(input []byte) ([]byte, error) + type SCPaillierWrapper struct + func NewPLWrapper(db StateDB) *SCPaillierWrapper + func (s *SCPaillierWrapper) AllExportFns() SCExportFns + func (s SCPaillierWrapper) RequiredGas(input []byte) uint64 + func (s SCPaillierWrapper) Run(input []byte) ([]byte, error) type StateDB + AddNonce func(common.Address) v1.0.1 Mar 24, 2022 v1.0.0 Mar 14, 2022 Changes in this version + const BlockGasLimitMaxValue + const BlockGasLimitMinValue + const GasContractByte + const GasExtStep + const GasFastStep + const GasFastestStep + const GasMidStep + const GasQuickStep + const GasReturn + const GasSlowStep + const GasStop + const NodeStatusDeleted + const NodeStatusNormal + const NodeTypeObserver + const NodeTypeValidator + const TxGasLimitMaxValue + const TxGasLimitMinValue + var BlockGasLimitKey string = "BlockGasLimit" + var CnsSysContractsMap = map[string]common.Address + var DEFAULT_VM_CONFIG = exec.VMConfig + var ErrCodeStoreOutOfGas = errors.New("contract creation code storage out of gas") + var ErrContractAddressCollision = errors.New("contract address collision") + var ErrDepth = errors.New("max call depth exceeded") + var ErrFwRule = errors.New("FW : error, incorrect firewall rule format") + var ErrFwRuleAddr = errors.New("FW : error, incorrect firewall rule address format") + var ErrFwRuleName = errors.New("FW : error, incorrect firewall rule api name format") + var ErrInsufficientBalance = errors.New("insufficient balance for transfer") + var ErrNoCompatibleInterpreter = errors.New("no compatible interpreter") + var ErrOutOfGas = errors.New("out of gas") + var ErrRepeatedGroupID = errors.New("Repeated GroupID ") + var ErrTraceLimitReached = errors.New("the number of logs reached the specified limit") + var GasContractNameKey string = "GasContractName" + var InvokeString = "CnsInvoke" + var IsApproveDeployedContractKey string = "IsApproveDeployedContract" + var IsBlockUseTrieHashKey string = "IsBlockUseTrieHash" + var IsCheckContractDeployPermissionKey string = "IsCheckContractDeployPermission" + var IsProduceEmptyBlockKey string = "IsProduceEmptyBlock" + var IsTxUseGasKey string = "IsTxUseGas" + var PermissionMap = map[int32]UserRoles + var PrecompiledContracts = map[common.Address]PrecompiledContract + var TxGasLimitKey string = "TxGasLimit" + var VenachainPrecompiledContracts = map[common.Address]PrecompiledContract + var VrfParamsKey string = "VRFParams" + var ZeroAddress = common.Address + func CheckPublicKeyFormat(pub string) error + func HasContractDeployPermission(state StateDB, addr common.Address) bool + func MakeReturnBytes(ret []byte) []byte + func NewCnsMap(stateDB StateDB, contractAddr common.Address) *cnsMap + func RunPrecompiledContract(p PrecompiledContract, input []byte, contract *Contract) (ret []byte, err error) + func RunVenachainPrecompiledSC(p PrecompiledContract, input []byte, contract *Contract, evm *EVM) (ret []byte, err error) + func WriteLogs(writer io.Writer, logs []*types.Log) + func WriteTrace(writer io.Writer, logs []StructLog) + type AccountRef common.Address + func (ar AccountRef) Address() common.Address + type BlockGasLimitType struct + type CallContext interface + Call func(env *EVM, me ContractRef, addr common.Address, data []byte, ...) ([]byte, error) + CallCode func(env *EVM, me ContractRef, addr common.Address, data []byte, ...) ([]byte, error) + Create func(env *EVM, me ContractRef, data []byte, gas, value *big.Int) ([]byte, common.Address, error) + DelegateCall func(env *EVM, me ContractRef, addr common.Address, data []byte, gas *big.Int) ([]byte, error) + type CanTransferFunc func(StateDB, common.Address, *big.Int) bool + type CheckContractDeployPermissionType struct + type CnsInvoke struct + func (c *CnsInvoke) RequiredGas(input []byte) uint64 + func (c *CnsInvoke) Run(input []byte) ([]byte, error) + type CnsManager struct + type CnsWrapper struct + func (cns *CnsWrapper) AllExportFns() SCExportFns + func (cns *CnsWrapper) RequiredGas(input []byte) uint64 + func (cns *CnsWrapper) Run(input []byte) ([]byte, error) + type CodeType uint8 + type Config struct + Debug bool + EVMInterpreter string + EWASMInterpreter string + EnablePreimageRecording bool + JumpTable [256]operation + NoRecursion bool + Tracer Tracer + type Context struct + BlockNumber *big.Int + CanTransfer CanTransferFunc + Coinbase common.Address + GasLimit uint64 + GasPrice *big.Int + GetHash GetHashFunc + Origin common.Address + Time *big.Int + Transfer TransferFunc + type Contract struct + ABI []byte + ABIAddr *common.Address + ABIHash common.Hash + Args []byte + CallerAddress common.Address + Code []byte + CodeAddr *common.Address + CodeHash common.Hash + DelegateCall bool + Gas uint64 + Input []byte + func NewContract(caller ContractRef, object ContractRef, value *big.Int, gas uint64) *Contract + func (c *Contract) Address() common.Address + func (c *Contract) AsDelegate() *Contract + func (c *Contract) Caller() common.Address + func (c *Contract) GetByte(n uint64) byte + func (c *Contract) GetOp(n uint64) OpCode + func (c *Contract) SetCallAbi(addr *common.Address, hash common.Hash, abi []byte) + func (c *Contract) SetCallCode(addr *common.Address, hash common.Hash, code []byte) + func (c *Contract) SetCode(hash common.Hash, code []byte) + func (c *Contract) UseGas(gas uint64) (ok bool) + func (c *Contract) Value() *big.Int + type ContractDataProcessor struct + func (d *ContractDataProcessor) AllExportFns() SCExportFns + func (d *ContractDataProcessor) Caller() common.Address + func (d *ContractDataProcessor) RequiredGas(input []byte) uint64 + func (d *ContractDataProcessor) Run(input []byte) ([]byte, error) + type ContractInfo struct + Address common.Address + Name string + Origin common.Address + TimeStamp uint64 + Version string + type ContractRef interface + Address func() common.Address + type ContractRefCaller struct + func (c ContractRefCaller) Address() common.Address + type ContractRefSelf struct + func (c ContractRefSelf) Address() common.Address + type ContractTypeInputParsing struct + func (c *ContractTypeInputParsing) RequiredGas(input []byte) uint64 + func (c *ContractTypeInputParsing) Run(input []byte) ([]byte, error) + type DescInfo = syscontracts.UserDescInfo + type EVM struct + InitEntryID int + StateDB StateDB + func NewEVM(ctx Context, statedb StateDB, chainConfig *params.ChainConfig, vmConfig Config) *EVM + func (evm *EVM) Call(caller ContractRef, addr common.Address, input []byte, gas uint64, ...) (ret []byte, leftOverGas uint64, err error) + func (evm *EVM) CallCode(caller ContractRef, addr common.Address, input []byte, gas uint64, ...) (ret []byte, leftOverGas uint64, err error) + func (evm *EVM) Cancel() + func (evm *EVM) ChainConfig() *params.ChainConfig + func (evm *EVM) Create(caller ContractRef, code []byte, gas uint64, value *big.Int) (ret []byte, contractAddr common.Address, leftOverGas uint64, err error) + func (evm *EVM) Create2(caller ContractRef, code []byte, gas uint64, endowment *big.Int, salt *big.Int) (ret []byte, contractAddr common.Address, leftOverGas uint64, err error) + func (evm *EVM) DelegateCall(caller ContractRef, addr common.Address, input []byte, gas uint64) (ret []byte, leftOverGas uint64, err error) + func (evm *EVM) GetConfig() Config + func (evm *EVM) GetEvm() *EVM + func (evm *EVM) GetStateDB() StateDB + func (evm *EVM) Interpreters() []Interpreter + func (evm *EVM) MigCreate(caller ContractRef, code []byte, gas uint64, value *big.Int) (ret []byte, contractAddr common.Address, leftOverGas uint64, err error) + func (evm *EVM) StaticCall(caller ContractRef, addr common.Address, input []byte, gas uint64) (ret []byte, leftOverGas uint64, err error) + type EVMInterpreter struct + func NewEVMInterpreter(evm *EVM, cfg Config) *EVMInterpreter + func (in *EVMInterpreter) CanRun(code []byte, input []byte, contract *Contract) (bool, []byte) + func (in *EVMInterpreter) Run(contract *Contract, input []byte, readOnly bool) (ret []byte, err error) + type FireWall struct + func NewFireWall(evm *EVM, contract *Contract) *FireWall + type FwWrapper struct + func (u *FwWrapper) AllExportFns() SCExportFns + func (u *FwWrapper) RequiredGas(input []byte) uint64 + func (u *FwWrapper) Run(input []byte) ([]byte, error) + type GetHashFunc func(uint64) common.Hash + type GroupInfo struct + BootNodes []string + Creator string + CreatorEnode string + GroupID uint64 + func (g GroupInfo) String() string + type GroupManagement struct + func (g *GroupManagement) AllExportFns() SCExportFns + func (g *GroupManagement) Caller() common.Address + func (g *GroupManagement) RequiredGas(input []byte) uint64 + func (g *GroupManagement) Run(input []byte) ([]byte, error) + type Interpreter interface + CanRun func([]byte, []byte, *Contract) (bool, []byte) + Run func(contract *Contract, input []byte, static bool) ([]byte, error) + type IsApproveDeployedContractype struct + type IsBlockUseTrieHashType struct + type IsProduceEmptyBlockType struct + type IsTxUseGastype struct + type LogConfig struct + Debug bool + DisableMemory bool + DisableStack bool + DisableStorage bool + Limit int + type Memory struct + func NewMemory() *Memory + func (m *Memory) Data() []byte + func (m *Memory) Get(offset, size int64) (cpy []byte) + func (m *Memory) GetPtr(offset, size int64) []byte + func (m *Memory) Len() int + func (m *Memory) Print() + func (m *Memory) Resize(size uint64) + func (m *Memory) Set(offset, size uint64, value []byte) + func (m *Memory) Set32(offset uint64, val *big.Int) + type NodeForElection struct + type NodesForElection []NodeForElection + func (n NodesForElection) Len() int + func (n NodesForElection) Less(i, j int) bool + func (n NodesForElection) Swap(i, j int) + type OpCode byte + const ADD + const ADDMOD + const ADDRESS + const AND + const BALANCE + const BLOCKHASH + const BYTE + const CALL + const CALLCODE + const CALLDATACOPY + const CALLDATALOAD + const CALLDATASIZE + const CALLER + const CALLVALUE + const CODECOPY + const CODESIZE + const COINBASE + const CREATE + const CREATE2 + const DELEGATECALL + const DIFFICULTY + const DIV + const DUP + const DUP1 + const DUP10 + const DUP11 + const DUP12 + const DUP13 + const DUP14 + const DUP15 + const DUP16 + const DUP2 + const DUP3 + const DUP4 + const DUP5 + const DUP6 + const DUP7 + const DUP8 + const DUP9 + const EQ + const EXP + const EXTCODECOPY + const EXTCODEHASH + const EXTCODESIZE + const GAS + const GASLIMIT + const GASPRICE + const GT + const ISZERO + const JUMP + const JUMPDEST + const JUMPI + const LOG0 + const LOG1 + const LOG2 + const LOG3 + const LOG4 + const LT + const MLOAD + const MOD + const MSIZE + const MSTORE + const MSTORE8 + const MUL + const MULMOD + const NOT + const NUMBER + const OR + const ORIGIN + const PC + const POP + const PUSH + const PUSH1 + const PUSH10 + const PUSH11 + const PUSH12 + const PUSH13 + const PUSH14 + const PUSH15 + const PUSH16 + const PUSH17 + const PUSH18 + const PUSH19 + const PUSH2 + const PUSH20 + const PUSH21 + const PUSH22 + const PUSH23 + const PUSH24 + const PUSH25 + const PUSH26 + const PUSH27 + const PUSH28 + const PUSH29 + const PUSH3 + const PUSH30 + const PUSH31 + const PUSH32 + const PUSH4 + const PUSH5 + const PUSH6 + const PUSH7 + const PUSH8 + const PUSH9 + const RETURN + const RETURNDATACOPY + const RETURNDATASIZE + const REVERT + const SAR + const SDIV + const SELFDESTRUCT + const SGT + const SHA3 + const SHL + const SHR + const SIGNEXTEND + const SLOAD + const SLT + const SMOD + const SSTORE + const STATICCALL + const STOP + const SUB + const SWAP + const SWAP1 + const SWAP10 + const SWAP11 + const SWAP12 + const SWAP13 + const SWAP14 + const SWAP15 + const SWAP16 + const SWAP2 + const SWAP3 + const SWAP4 + const SWAP5 + const SWAP6 + const SWAP7 + const SWAP8 + const SWAP9 + const TIMESTAMP + const XOR + func StringToOp(str string) OpCode + func (op OpCode) IsPush() bool + func (op OpCode) IsStaticJump() bool + func (op OpCode) String() string + type ParamManager struct + type PrecompiledContract interface + RequiredGas func(input []byte) uint64 + Run func(input []byte) ([]byte, error) + type SCExportFn interface + type SCExportFns map[string]SCExportFn + type SCNode struct + func NewSCNode(db StateDB) *SCNode + func (n *SCNode) GetAllNodes() ([]*syscontracts.NodeInfo, error) + func (n *SCNode) GetNodes(query *syscontracts.NodeInfo) ([]*syscontracts.NodeInfo, error) + func (n *SCNode) GetVrfConsensusNodes() ([]*syscontracts.NodeInfo, error) + func (n *SCNode) SetBlockNumber(num *big.Int) + func (n *SCNode) VrfElection(nonce []byte) (int32, error) + type Stack struct + func (st *Stack) Back(n int) *big.Int + func (st *Stack) Data() []*big.Int + func (st *Stack) Print() + type StateDB interface + AddBalance func(common.Address, *big.Int) + AddLog func(*types.Log) + AddPreimage func(common.Hash, []byte) + AddRefund func(uint64) + CloneAccount func(src common.Address, dest common.Address) error + CloseFirewall func(contractAddr common.Address) + CreateAccount func(common.Address) + Empty func(common.Address) bool + Exist func(common.Address) bool + ForEachStorage func(common.Address, func(common.Hash, common.Hash) bool) + FwAdd func(contractAddr common.Address, action state.Action, list []state.FwElem) + FwClear func(contractAddr common.Address, action state.Action) + FwDel func(contractAddr common.Address, action state.Action, list []state.FwElem) + FwImport func(contractAddr common.Address, data []byte) error + FwSet func(contractAddr common.Address, action state.Action, list []state.FwElem) + GetAbi func(common.Address) []byte + GetAbiHash func(common.Address) common.Hash + GetBalance func(common.Address) *big.Int + GetCode func(common.Address) []byte + GetCodeHash func(common.Address) common.Hash + GetCodeSize func(common.Address) int + GetCommittedState func(common.Address, []byte) []byte + GetContractCreator func(contractAddr common.Address) common.Address + GetFwStatus func(contractAddr common.Address) state.FwStatus + GetNonce func(common.Address) uint64 + GetRefund func() uint64 + GetState func(common.Address, []byte) []byte + HasSuicided func(common.Address) bool + IsFwOpened func(contractAddr common.Address) bool + OpenFirewall func(contractAddr common.Address) + RevertToSnapshot func(int) + SetAbi func(common.Address, []byte) + SetCode func(common.Address, []byte) + SetContractCreator func(contractAddr common.Address, creator common.Address) + SetFwStatus func(contractAddr common.Address, status state.FwStatus) + SetNonce func(common.Address, uint64) + SetState func(common.Address, []byte, []byte) + Snapshot func() int + SubBalance func(common.Address, *big.Int) + SubRefund func(uint64) + Suicide func(common.Address) bool + type StateDBTest struct + type Storage map[common.Hash]common.Hash + func (s Storage) Copy() Storage + type StructLog struct + Depth int + Err error + Gas uint64 + GasCost uint64 + Memory []byte + MemorySize int + Op OpCode + Pc uint64 + Stack []*big.Int + Storage map[common.Hash]common.Hash + func (s *StructLog) ErrorString() string + func (s *StructLog) OpName() string + func (s *StructLog) UnmarshalJSON(input []byte) error + func (s StructLog) MarshalJSON() ([]byte, error) + type StructLogger struct + func NewStructLogger(cfg *LogConfig) *StructLogger + func (l *StructLogger) CaptureEnd(output []byte, gasUsed uint64, t time.Duration, err error) error + func (l *StructLogger) CaptureFault(env *EVM, pc uint64, op OpCode, gas, cost uint64, memory *Memory, stack *Stack, ...) error + func (l *StructLogger) CaptureStart(from common.Address, to common.Address, create bool, input []byte, gas uint64, ...) error + func (l *StructLogger) CaptureState(env *EVM, pc uint64, op OpCode, gas, cost uint64, memory *Memory, stack *Stack, ...) error + func (l *StructLogger) Error() error + func (l *StructLogger) Output() []byte + func (l *StructLogger) StructLogs() []StructLog + type Tracer interface + CaptureEnd func(output []byte, gasUsed uint64, t time.Duration, err error) error + CaptureFault func(env *EVM, pc uint64, op OpCode, gas, cost uint64, memory *Memory, stack *Stack, ...) error + CaptureStart func(from common.Address, to common.Address, call bool, input []byte, gas uint64, ...) error + CaptureState func(env *EVM, pc uint64, op OpCode, gas, cost uint64, memory *Memory, stack *Stack, ...) error + type TransferFunc func(StateDB, common.Address, common.Address, *big.Int) + type TxGasLimitType struct + type UserInfo = syscontracts.UserInfo + type UserManagement struct + func (u *UserManagement) AllExportFns() SCExportFns + func (u *UserManagement) Caller() common.Address + func (u *UserManagement) RequiredGas(input []byte) uint64 + func (u *UserManagement) Run(input []byte) ([]byte, error) + type UserRoles uint32 + func (ur UserRoles) Strings() []string + type VRFParamsType struct + type WASMInterpreter struct + WasmLogger log.Logger + func NewWASMInterpreter(evm *EVM, cfg Config) *WASMInterpreter + func (in *WASMInterpreter) CanRun(code, input []byte, contract *Contract) (bool, []byte) + func (in *WASMInterpreter) Run(contract *Contract, input []byte, readOnly bool) (ret []byte, err error) + type WasmLogger struct + func NewWasmLogger(cfg Config, root log.Logger) *WasmLogger + func (wl *WasmLogger) Crit(msg string, ctx ...interface{}) + func (wl *WasmLogger) Debug(msg string, ctx ...interface{}) + func (wl *WasmLogger) Error(msg string, ctx ...interface{}) + func (wl *WasmLogger) Flush() + func (wl *WasmLogger) GetHandler() log.Handler + func (wl *WasmLogger) Info(msg string, ctx ...interface{}) + func (wl *WasmLogger) New(ctx ...interface{}) log.Logger + func (wl *WasmLogger) SetHandler(h log.Handler) + func (wl *WasmLogger) Trace(msg string, ctx ...interface{}) + func (wl *WasmLogger) Warn(msg string, ctx ...interface{}) + type WasmStateDB struct + StateDB StateDB + func NewWasmStateDB(db *WasmStateDB, contract ContractRef) *WasmStateDB + func (self *WasmStateDB) AddLog(address common.Address, topics []common.Hash, data []byte, bn uint64) + func (self *WasmStateDB) Address() common.Address + func (self *WasmStateDB) BlockHash(num uint64) common.Hash + func (self *WasmStateDB) BlockNumber() *big.Int + func (self *WasmStateDB) Call(addr, param []byte) ([]byte, error) + func (self *WasmStateDB) CallValue() *big.Int + func (self *WasmStateDB) Caller() common.Address + func (self *WasmStateDB) Coinbase() common.Address + func (self *WasmStateDB) DelegateCall(addr, param []byte) ([]byte, error) + func (self *WasmStateDB) GasLimimt() uint64 + func (self *WasmStateDB) GasPrice() int64 + func (self *WasmStateDB) GetBalance(addr common.Address) *big.Int + func (self *WasmStateDB) GetCallerNonce() int64 + func (self *WasmStateDB) GetCode(addr common.Address) []byte + func (self *WasmStateDB) GetState(key []byte) []byte + func (self *WasmStateDB) IsOwner(contractAddress common.Address, accountAddress common.Address) int64 + func (self *WasmStateDB) Origin() common.Address + func (self *WasmStateDB) SetState(key []byte, value []byte) + func (self *WasmStateDB) Time() *big.Int + func (self *WasmStateDB) Transfer(toAddr common.Address, value *big.Int) (ret []byte, leftOverGas uint64, err error)