Übergabe von Äther mit Aufruf der Solidity-Funktion

Ich habe einen Vertrag für Testnet bereitgestellt , der zu funktionieren scheint.

Ich habe eine Funktion namens contribute, die den Äther aus dem msg.value erhält . Die Funktion ist unten und akzeptiert keine Argumente.

Ich rufe contributevon JavaScript so auf:

var res = contracts['CrowdFunder'].contract.contribute();

Wie lege ich Ether fest, die beim Anruf gesendet werden sollen contribute?

Hier ist contribute, was msg.value erwartet

function contribute() public      
    {
        contributions.push(
            Contribution({
                amount: msg.value,
                contributor: msg.sender
            }) 
        );
        totalRaised += msg.value;             
    }

Antworten (1)

Sie übergeben ein Objekt mit einer benannten Eigenschaft valueund der Menge an Wei.

Verwenden Sie Ihr Beispiel wie:

contracts['CrowdFunder'].contract.contribute({value: web3.toWei(12, 'ether')});

Beachten Sie, resdass es sich in Ihrem Beispiel um einen Transaktions-Hash handelt.