step3.sol
pragma solidity ^0.8.20;
contract step3 {
address owner; // 状态变量
constructor() {
owner = msg.sender;
}
function sayHello() external view returns(address a){
if(owner==msg.sender) {
return msg.sender;
}
string memory greeting ="hello world"; // 局部变量
return msg.sender;
}
}
cehck.js
//执行定义变量来表示不同的合约
const step3 = artifacts.require('step3.sol');
//执行定义合约中的其他操作
contract('step3',accounts => {
before(async () => {
let a = await step3.deployed();
let c = await a.sayHello();
console.log("调用greets 方法:入参:无,回参:"+c);
console.log(accounts)
});
it('Check whether the contract has been issued successfully', async () => {
});
});
我尝试使用truffle获取默认合约地址并且成功了,我现在需要更改合约账户地址以在truffle中调用合约
由于您的
sayhello()
是一个 view
函数,Truffle 框架默认进行只读调用。只读调用可以简单地覆盖 from
参数,而无需知道发送者的私钥。
let c = await a.sayHello({from: ownerAddress});