基础知识
权限的概念
权限是指为了保证职责的有效履行,任职者必须具备的对某事项进行决策的范围和程度。它常常用“具有xxxxxxx的权利”来进行表达,比如:公司的CEO具有否定某项提议的权利,站在合约的管理角度来讲智能合约中的用户可以分为合约的owner、合约的普通用户两类。合约的owner是合约的拥有者,他可以执行合约中所有的函数,合约的普通用户可以执行合约中约定范围内的函数,对于一些对权限有校验或对执行者身份有要求的函数(比如:用onlyowner修饰器修饰的函数)是无法执行的
函数可见性
solidity使用了public、private、internal、external来对函数的可见性进行限定,下面进行简单的介绍:
public
使用public限定的函数可以被合约内部函数、继承合约、外部合约调用
pragma solidity ^0.4.26;
contract FunctionTest {
//合约的构造函数
constructor() public {
}
//函数默认的可见性状态为public
function Func () {}
//使用public修饰的函数可以被合约内部的其他函数调用
function callFunc1 () {
Func();
}
}
contract FunctionTest2 is FunctionTest{
//使用public修饰的函数可以被外部合约调用
function callFunc2 () {
Func();
}
}