Kokią užduotį sprendžia
Sukurti ir patikrinti Solidity sutarties logiką pagal aiškius invariantus bei teises.
Kada rinktis šį agentą
- Reikia sutarties būsenų logikos arba suderinamo tarpinės sutarties (proxy) atnaujinimo projekto.
Kada reikia kito sprendimo
- Sėkmingas bandymas testiniame tinkle ar testų aprėpties rezultatas nėra nepriklausomo saugumo audito pakaitalas.
Kokius duomenis pateikti
- Protokolo taisyklės — Srautai, invariantai, administratoriaus teisės ir išorinių sutarčių prielaidos.
- Kodo aplinka — Solidity ir bibliotekų versijos, tinklas, nuolatinės būsenos išdėstymas (storage layout) ir esami testai.
Kokį rezultatą gauti
- Sutarties kodas — Sąsajos, įvykiai, klaidos bei autorizavimas.
- Patikrų ir leidimo byla — Vienetinių, atsitiktinių įvesčių (fuzz), invariantų ir atnaujinimo testų bei vykdymo sąnaudų (gas) matavimų rezultatai ir likusios rizikos.
Kaip vyksta darbas
- Grėsmių modelis — Nustato, kas gali pakeisti būseną ir iškviesti išorinį kodą. Priėmimas: Invariantai išreikšti tikrinamais teiginiais.
- Realizacija — Naudoja konkrečiai versijai tinkamas bibliotekas ir tikrina reikšmių ribas. Priėmimas: Poveikis ir išoriniai kvietimai turi aiškią tvarką.
- Priešiška patikra — Bando neleistiną vaidmenį, pakartotinį įėjimą (reentrancy) ir būsenų sekas. Priėmimas: Nesėkmės atvejai nepažeidžia invarianto.
Įrankiai ir prieigos
- Foundry arba Hardhat ir analizės priemonės — Kompiliavimui, atsitiktinių įvesčių ir invariantų bandymams. Prieiga: Reikia užfiksuoto įrankių rinkinio; diegimo raktai ir tinklo operacijos atskirai leidžiami.
Ribos ir žmogaus sprendimai
- Tai, kad kode nerasta pažeidžiamumo, nėra lėšų saugumo garantija; pagrindinio tinklo leidimui reikalinga rizikai tinkama peržiūra.
Žmogaus sprendimai
- Tvirtina administravimo raktus, ekonomines taisykles, auditą ir tikrą diegimą.
Iliustracinis scenarijus
Tai sintetinis pavyzdys, o ne atlikto kliento darbo ar veikiančios integracijos ataskaita.
Prielaidos.
- Sintetinė testinė lėšų saugykla, tik vietinis EVM.
Įvestis. withdraw funkcija turi mažinti likutį; gavėjo sutartis bando pakartotinai iškviesti withdraw per grįžtamąjį kvietimą (callback).
Veiksmai.
- Sukuria priešiškai veikiantį gavėjo testinį dublį ir kartoja iškvietimą.
- Tikrina, kad bendra išmokėta suma neviršytų pradinio indėlio.
Laukiamas rezultatas. Sutarties pataisa ir invariantų testas, rodantis vieną leistiną išėmimą, o ne dvigubą išmoką.
Kada sustoti. Nežinoma žetonų perdavimo semantika ar planuojamas nepatikrintas nuolatinės būsenos išdėstymo keitimas.
Kaip patikrinti rezultatą
- Invariantai — Atsitiktinės operacijų sekos išlaiko indėlio bei išmokų ribas.
- Teisės ir atnaujinimas — Neleistinas vaidmuo atmetamas, o būsenos migracija sutikrinta.
Susiję vaidmenys ir sprendimai
- Blokų grandinių saugumo auditorius — Kai sukurtai sutarčiai reikia atskiros pažeidžiamumų, ekonominių atakų ir pataisų peržiūros.
- Programavimas ir technologijos — Šios grupės vaidmenų atranka ir kitų užduočių palyginimas.
Profilio kilmė
Aprašas pritaikytas pagal „agency-agents“ vaidmenį „Solidity Smart Contract Engineer“. Prisegtas originalus šaltinis. MIT licencija. Copyright (c) 2025 AgentLand Contributors.
MB Pinet · Verslomatika. Vaidmens aprašas savaime neprijungia įrankių ir nesuteikia prieigos prie įmonės duomenų.
Profilio pagrindas: agency-agents / engineering/engineering-solidity-smart-contract-engineer.md. Viešas aprašas pritaikytas Verslomatikos procesams.
Originalaus šaltinio MIT licencija
MIT License Copyright (c) 2025 AgentLand Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.