Ethereum - Interazione con contratto distribuito

Ora sei pronto per interagire con il contratto che hai distribuito. Torna al desktop MyEtherWallet e fai clic sulla scheda "Interagisci con contratto" come mostrato nello screenshot qui sotto -

Incolla l'indirizzo del contratto che hai precedentemente copiato nel file “Contract Address”campo. Devi anche incollare il file“ABI / JSON Interface” del contratto nella schermata sopra.

Prendere il ABI, vai al Remix finestra e fare clic sul file ABI come mostrato nello screenshot qui sotto.

L'interfaccia ABI / JSON verrà copiata negli appunti. Incollalo nel tuo editor preferito per esaminare l'interfaccia generata, mostrata di seguito -

ABI / JSON Interface
[
   {
      "constant": false,
      "inputs": [
         {
            "name": "newDeposit",
            "type": "uint256"
         }
      ],
      "name": "send",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
   },
   {
      "inputs": [
         {
            "name": "initialAmount",
            "type": "uint256"
         },
         {
            "name": "initialValue",
            "type": "uint256"
         }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
   },
   {
      "constant": true,
      "inputs": [],
      "name": "getAmount",
      "outputs": [
         {
            "name": "",
            "type": "uint256"
         }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
   },
   {
      "constant": true,
      "inputs": [],
      "name": "getBalance",
      "outputs": [
         {
            "name": "",
            "type": "uint256"
         }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
   }
]

Dopo aver incollato questo JSON nel file MyEtherWallet si noterà che il pulsante ACCESS sotto l'interfaccia JSON è ora attivato, come mostrato di seguito -

Clic Access pulsante per accedere al contratto.

Facendo clic su Accessil pulsante, l'indirizzo del contratto e il menu a discesa di selezione della funzione appariranno sullo schermo come nell'editor Remix. Questo è mostrato nello screenshot qui sotto -

Puoi controllare le varie funzioni del contratto come nel caso della distribuzione Remix. Tieni presente che il contatto è ora distribuito su una Blockchain Ganache esterna. Controlla ilgetAmountfunzione; otterrai il valore Amount pari a zero e ilgetBalance mostrerà un saldo di 1000.

Ora prova a inviare dei soldi. Ti presenterà un filetexteditcontrollo per l'inserimento dell'importo. Quando scrivi il contratto, verrà utilizzato del "gas" e ti verrà chiesto di confermare la transazione prima di scriverla sulla Blockchain. La transazione verrebbe eseguita in breve tempo a seconda del tempo di mining impostato da te sul server Ganache. Dopo questo, puoi riesaminare il filevalue e il amount campi del contratto per verificare che siano effettivamente modificati.

È ora possibile esaminare il desktop di Ganache per visualizzare le transazioni eseguite finora. Di seguito è mostrato un esempio di output:

Finora eri sia il creatore del contratto che l'esecutore del contratto. Questo non ha molto senso, poiché ti aspetti che altri utilizzino il tuo contratto. Per questo, creeremo un altro client per la nostra Ganache Blockchain e invieremo del denaro dall'account n. 2 appena creato al creatore del contratto all'account n. 1.