Cómo transferir eth a una función de solidez desde un Dapp

Estoy tratando de construir un Dapp que incluya la funcionalidad de depositar fondos en un contrato y retirarlos. Las funciones se ven así

function fundContract() public payable {
        require (msg.sender == users[msg.sender].addr);
        users[msg.sender].balance += msg.value;
        contractBalance+=msg.value;

    }


function withdraw (uint amount) public onlyUser() payable{

        require (msg.sender == users[msg.sender].addr);
        require (amount > 0);
        require (amount <= users[msg.sender].balance);

        msg.sender.transfer(amount);

        users[msg.sender].balance -= amount;
        contractBalance-= amount;
    }

Entiendo que habrá una llamada de función para retirar () que especifica el parámetro de cantidad desde el front-end usando el comando web3.js send (), pero ¿cómo proporciono el valor del mensaje para el método fundContract desde el punto de vista de un Dapp? Remix permite especificar el valor en el mensaje, pero no puedo encontrar la manera de hacerlo para un Dapp.

Independientemente de la biblioteca que esté utilizando, habrá una forma de adjuntar ether a una transacción. Háganos saber qué biblioteca y podemos señalarle la documentación relevante. Web3.js es un candidato probable para lo que va a usar y hay dos versiones importantes: 0.20.x y 1.0 beta.
@smarx Estoy construyendo sobre Qtum y usando QtumJS, que es similar a web3.js. La respuesta de Sam aclara cómo usarlo con web3 y encontré una manera similar con QtumJS. Gracias

Respuestas (1)

Debe usar el campo de valor y luego llamar a su método de envío de contrato

https://web3js.readthedocs.io/en/1.0/web3-eth-contract.html#methods-mymethod-send

myContract.methods.fundContract().send({value: 'AMOUNT IN WEI'})