0x5f5a…7c57

All memos sent from and to 0x5f5a…7c57.

Asset<html><head> <mate charset="utf-8"> <title>处理用户所有类型资产以及建立联系</title></head><body><h1 style="text-align:center;"><strong>处理用户所有类型资产以及建立联系</strong><h1><ul> <font size="4"> <li>Asset合约</li> <li><a href="https://github.com/1999321/AssetContract" target="_blank">合约代码</a></li> <li>1999321</li> </font></ul><font size="4"><p><div><font size="1"><h2 style="text-align:center;"><strong>利用ERC721的结构体EnumerableSet.Set即可以实现</strong></h2></font></div>Set{<br>//资产相关地址<br>bytes32[] addreses ; <br>//获取索引,同时具有map功能,也方便remove<br>mapping(bytes32=>uint256) indexes<br>}<br></p><hr><p><div><font size="1"><h2 style="text-align:center;" ><strong>利用link结构体来表示联系:</strong></h2></font></div>struct link{<br> bool useful;//是否有用<br> string readme;//解析文档<br> mapping(address=>uint256[]) data;//tokenid<br> mapping(address=>mapping(uint256=>uint256)) index;//tokenid 的索引<br> mapping(address=>bool) isexsit;//资产合约是否存在<br> address[] type_add;//资产合约<br>}<br></p><hr><p><div><font size="1"><h2 style="text-align:center;"><strong>InterfaceOfTokenAddress的一般接口:</strong></h2></font></div>abstract contract InterOftoken{<br> //解析文档<br> string public readme;<br> //资产类型<br> string public type_;<br> /**<br> *@dev 获取owner资产数量<br> *@owner 用户<br> */<br> function getlength(address owner)public view virtual returns(uint256 len_);<br> /**<br> *@dev 获取资产全局index<br> *@owner 用户<br> *@index 资产在用户级的索引<br> */<br> function getIndexByIndex(address owner,uint256 index)public view virtual returns(uint256 A_asset);<br> /**<br> *@dev 获取资产所属地址<br> *@index 资产在全局级的索引<br> */<br> function ownerOf(uint256 tokenId) public view virtual returns (address);<br> /**<br> *@dev 获取所有资产索引<br> *@owner 用户<br> */<br> function getBalances(address owner) public view virtual returns (uint256[] memory asset_);<br> /**<br> *@dev 获取具体资产<br> *@index_ 全局级索引<br> */<br> function getBalancebyIndex(uint256 index_) public view virtual returns (string memory asset_);<br> /**<br> *@dev 设置解析文档 onlyowner<br> *@readme_ 解析文档<br> */<br> function setReadMe(string calldata readme_)external virtual;<br> /**<br> *@dev 改变类型 onlyowner<br> *@type_0 类型<br> */<br> function settype(string calldata type_0)external virtual;<br> /**<br> *@dev 改变Asset地址 onlyowner<br> *@regiadd_ Asset地址<br> *@version_ 版本<br> */<br> function changeRegiAdd(address regiadd_,uint256 version_)external virtual returns(bool);<br>}</p><p><div><font size="1"><h2 style="text-align:center;"><strong>Asset一般接口函数:</strong></h2></font></div>//添加资产合约 add是用户地址<br>function setstate(address add)public returns(bool)<br>//获取资产合约状态,是否被添加 add是用户地址<br>function getstate(address add)public view returns(bool)<br>//获取资产合约 add是用户地址,type_0是资产类型<br>function getasset(address add,string memory type_0)public view returns(address[] memory addset)<br> /**<br> *@dev 用于创建新联系<br> *@index_0 联系索引<br> *@add_ 资产地址<br> *@indexOfToken token索引<br> */<br>function removelinkMess(uint256 index_0,address add_,uint256 indexOfToken)<br> /**<br> *@dev 用于创建新联系<br> *@index_ 联系索引<br> *@add_ 资产地址<br> *@indexes 一系列用户内部(Set)中的索引<br> */<br> function addlinkMess(uint256 index_,address add_,uint256[] memory indexes)<br> /**<br> *@dev 用于创建新联系<br> *@readme_ 解析文档<br> *@index_ 联系索引<br> */<br> function changelink(string memory readme_,uint256 index_)<br>/**<br> *@dev 用于创建新联系<br> *@index_ 联系索引<br> */<br> function changeuseful(uint256 index_)<br> /**<br> *@dev 用于创建新联系<br> *@readme_ 解析文档<br> */<br> function newlink(string memory readme_) public returns(uint256)<br></p></font></body></html>