solidity合约访问其他合约的mapping

solidity合约访问其他合约的mapping的方式

更多区块链技术与应用分类:

区块链应用    区块链开发

以太坊 | Fabric | BCOS | 密码技术 | 共识算法 | 比特币其他链

通证经济传统金融场景 | 去中心化金融 | 防伪溯源 | 数据共享 | 可信存证

错误代码

被访问合约

contract BagUserAdmin {
    mapping(bytes32 => RecordBean) bagRecordOf;
}

访问合约

contract UserGiveLikes{
 
    BagUserAdmin internal bagUserAdmin;
	constructor(address BagUserAdminAddress){
        bagUserAdmin = BagUserAdmin(BagUserAdminAddress);
    }
	// 直接去访问该合约对象的mapping
	bagRecordBean = bagUserAdmin.bagRecordOf[TypeConvertUtil.stringToBytes32(_forBagid)];
 
}

正确引用:

contract BagUserAdmin is TableDefTools{
 
    mapping(bytes32 => RecordBean) bagRecordOf;
	function getBagValues(string _bagid) public view returns(string []){
        return bagRecordOf[TypeConvertUtil.stringToBytes32(_bagid)].values;
    }
}
contract UserGiveLikes{
 
    BagUserAdmin internal bagUserAdmin;
	constructor(address BagUserAdminAddress){
        bagUserAdmin = BagUserAdmin(BagUserAdminAddress);
    }
	// 通过getter方法去访问该合约对象的mapping
	bagRecordValues = bagUserAdmin.getBagValues(_forBagid);
 
}

原文链接:solidity合约访问其他合约的mapping 

猜你喜欢

转载自blog.csdn.net/JonasErosonAtsea/article/details/109236545