diff options
| author | Al <80943867+al-ias@users.noreply.github.com> | 2022-07-23 12:54:08 +0200 | 
|---|---|---|
| committer | Al <80943867+al-ias@users.noreply.github.com> | 2022-07-23 13:07:14 +0200 | 
| commit | b7a2d1f164454e9d22a9aedc2d4ba3377ba639c8 (patch) | |
| tree | 76653863eacbad0ab1e023d16abc903f55bd77cc /it-it | |
| parent | 4a60cef1899a23e4810ecdb42c7128a41cb6711d (diff) | |
Translate object/contracts section (7)
Diffstat (limited to 'it-it')
| -rw-r--r-- | it-it/solidity.html.markdown | 56 | 
1 files changed, 56 insertions, 0 deletions
| diff --git a/it-it/solidity.html.markdown b/it-it/solidity.html.markdown index e396eeb2..eb46301e 100644 --- a/it-it/solidity.html.markdown +++ b/it-it/solidity.html.markdown @@ -608,4 +608,60 @@ for(uint x = 0; x < refundAddressList.length; x++) {  // Ad es. preferire pull payments ai push payment +// 7. OGGETTI/CONTRATTI + +// A. Invocare un contratto esterno +contract InfoFeed { +    function info() payable returns (uint ret)  { return 42; } +} + +contract Consumer { +    InfoFeed feed; // punta ad un contratto sulla blockchain + +    // Imposta il feed sull'istanza del contratto esistente +    function setFeed(address addr) { +        // fare attenzione alla conversione di tipo automatica; +        // il costruttore non viene invocato +        feed = InfoFeed(addr); +    } + +    // Imposta il feed ad una nuova istanza del contratto +    function createNewFeed() { +        feed = new InfoFeed(); // viene creata una nuova istanza; +        // viene invocato il costruttore +    } + +    function callFeed() { +        // le parentesi finali invocano il contratto, opzionalmente si può +        // specificare un importo custom di ether o di gas +        feed.info.value(10).gas(800)(); +    } +} + +// B. ereditarietà + +// Conta l'ordine, l'ultimo contratto ereditato (es. 'def') può andare +// in overriding su parti dei contratti precedentemente ereditati +contract MyContract is abc, def("a custom argument to def") { + +// Funzione in overriding +    function z() { +        if (msg.sender == owner) { +            def.z(); // invoca la funzione overridden da def +            super.z(); // chiama la funzione overridden del padre +        } +    } +} + +// Funzioni astratte +function someAbstractFunction(uint x); +// non possono essere compilate, vengono usate nei contratti base/astratti +// e poi verranno implementate + +// C. Import + +import "filename"; +import "github.com/ethereum/dapp-bin/library/iterable_mapping.sol"; + +  ``` | 
