2017-09-24 1 views
0

Je crée un DApp en utilisant les contrats intelligents Ethereum, écrits dans Solidity. Je voudrais interagir avec le contrat et payer des jetons au gagnant d'un jeu P2P. Le jeu pourrait être des ciseaux de papier de roche pour la simplicité. Un témoin hébergerait le jeu et enverrait un appel au contrat pour payer le gagnant.Comment appeler les fonctions d'un contrat intelligent Ethereum en externe?

Disons que nous avons deux joueurs: player 1 a un porte-monnaie Ethereum avec la clé publique a1b2c3d4e5 (Le vainqueur du tour)

player 2 a une clé publique de f6g7h8i9j0 (Le perdant du tour)

Comment se le témoin accède à la fonction dans mon contrat intelligent Solidité qui paierait player 1, du côté du jeu?

+0

vérifier cet exemple de code https://github.com/truffle-box/pet-shop-box –

+0

Pouvez-vous partager votre contrat intelligent et app.js –

Répondre

0

Vous pouvez utiliser embark framework pour créer des applications HTML5 décentralisées qui interagissent avec la chaîne de blocs etherium. Embarque comprend une librairie de test pour exécuter rapidement & tester vos contrats dans un EVM (Ethereum Virtual Machine).

Embark prend en charge IPFS.

Vous pouvez créer des contrats intelligents tels que:

pragma solidity ^0.4.7; 
contract SimpleStorage { 
    uint public storedData; 

    function SimpleStorage(uint initialValue) { 
    storedData = initialValue; 
    } 

    function set(uint x) { 
    storedData = x; 
    } 
    function get() constant returns (uint retVal) { 
    return storedData; 
    } 
} 

Un événement peut être déclenché à partir du cadre JS comme celui-ci

myContract.eventName({from: web3.eth.accounts}, 'latest') 
    .then(function(event) { console.log(event) }); 

Communication sur la connexion IPFS est comme ce

//set yourself as the ipfs provider 

EmbarkJS.Messages.setProvider('orbit', {server: 'localhost', port: 5001}) 

EmbarkJS.Messages.sendMessage({topic: "sometopic", data: 'hello world'})