保存地址

Saving Addresses

我有项目地址,我想创建更多具有功能的项目。所以我想把这些地址保存在某个地方。 那么,这些项目地址应该不止一个key。 我也想用项目地址访问这些键。

比如我有项目1地址。项目 1 以 apple 的地址和 Orange 的地址作为键 当我问“project 1地址有apple的地址吗?”它应该 return 正确 重要的部分是我想创建一个具有功能的项目,然后按照我说的那样到达他们。 我该怎么做?

您可以将地址存储在映射中,其中键是字符串“apple”、“banana”等

如果设置了键则没有验证(因为映射存储数据的方式)。但是您可以验证指定键的值是否为非零(零是默认值)。

pragma solidity ^0.8.4;

contract Project {
    mapping (string => address) addresses;
    
    constructor() {
        addresses['apple'] = address(0x123);
        addresses['orange'] = address(0x456);
    }
    
    function hasAddressOf(string memory _identifier) external view returns (bool) {
        return addresses[_identifier] != address(0);
    }
}

此合约可以部署到“项目 1 地址”。然后,您的客户端应用会调用其 hasAddressOf() 函数来查看“项目 1 是否存储了橙色地址”。


或者更简单的 Solidity 代码,您可以在其中创建 addresses 属性 public.

客户端应用可以获得addresses['apple'] which returns 0x123 or addresses['mango'] which returns 0x0.[=18的值=]

pragma solidity ^0.8.4;

contract Project {
    mapping (string => address) public addresses;
    
    constructor() {
        addresses['apple'] = address(0x123);
        addresses['orange'] = address(0x456);
    }
}