合约里面创建合约:
1.合约名字 aa = new 合约名字(); // 返回合约地址
2.合约名字.属性
3.合约名字.方法();
// SPDX-License-Identifier:MIT
pragma solidity ^0.8;
import "https://github.com/Arachnid/solidity-stringutils/blob/master/src/strings.sol"; // 字符串拼接
contract Pair {
using strings for *;
address public factor;
string public token0;
string public token1;
string public tokenTotal;
constructor (string memory _token0, string memory _token1) payable {
token0 = _token0;
token1 = _token1;
factor = msg.sender; // 调用者的address
}
function sum() public returns(string memory){
tokenTotal = "123";
return token0.toSlice().concat(token1.toSlice());
}
}
contract Factor {
Pair[] public allPairs;
function creat(string memory _token0, string memory _token1) public {
Pair pair = new Pair(_token0, _token1); //new合约,默认返回address
pair.sum();
allPairs.push(pair);
}
// 接收ether,函数声明payable
function creat2(string memory _token0, string memory _token1) public payable{
Pair pair = (new Pair){value: msg.value}(_token0, _token1);
allPairs.push(pair);
}
}
remix测试步骤
第一步,选Factor合约,deploy
第二步,在合约地址上,creat方法输入2个参数,执行
第三步, allPairs获取数组自动,输入索引0,执行
第四步,复制上图中的地址,粘贴进合约地址,选择合约名字Pair,
第六步,点击At Address,生成交互界面