با سلام من یک قراردادهوشمند به زبان سالیدیتی دارم که میخوام اصلاح شه. محیط کاری geth(Go Ethereum) ورژن 1.9.25 - ترافل ورژن 5.7.1 - solidity ورژن 0.5.16 است. شبکه استفاده شده یک شبکه خصوصی اتریوم می باشد. این قرارداد باید یه رشته (ipfs hash) که دارای طول ثابت46 رقم (شامل حروف کوچک و بزرگ و عدد) است و با Qm شروع می شود (مثال QmYTatQNiv4E8HoGE52fUv8pWzJMNSMZMB5SMHfcV9pjkC) را به صورت string یا هر نوع دیگری همراه با یک نام کاربری (string) بگیرد و ذخیره کند که توسط تابع addRecord انجام می شود. همچنین با گرفتن نام کاربری توسط تابع fetchRecord تمامی هش های ذخیره شده توسط آن نام کاربری را در خروجی برگرداند. انجام پروژه به همراه توضیح کامل کدها مورد نیاز است. فایل پیوست به نام my contract.sol باید طبق توضیحات اصلاح گردد. قرارداد هوشمند: pragma solidity 0.5.16; pragma experimental ABIEncoderV2; contract IPFS { address public accountant; mapping (bytes => string[]) public idHashMap; constructor () public { accountant = msg.sender; } function addRecord(string memory hash, bytes memory id) public payable { if (msg.sender != accountant) { return; } idHashMap[id].push(hash); emit HashesAdded(id,hash); } event HashesAdded(bytes id,string hash); function fetchRecord(bytes memory id) public returns (string[] memory) { string[] memory b = idHashMap[id]; emit HashesShow(id, b); return b ; } event HashesShow(bytes id, string[] b); function deleteRecord(bytes memory id) public { if (msg.sender != accountant) { return; } delete idHashMap[id]; } }
این آگهی از وبسایت کافه پروژه پیدا شده، با زدن دکمهی تماس با کارفرما، به وبسایت کافه پروژه برین و از اونجا برای این شغل اقدام کنین.