If smart contract A has a balance of 1 ETH, can I call a payable function on Contract B, from a function in Contract A, with a msg.value that would be effectively withdrawn from the balance of smart contract A? As opposed to calling from EOA.


The general syntax for calling a function in another contract with arguments and sending funds is: address.func.value(amount)(arg1, arg2, arg3)

From How can you call a payable function in another contract with arguments and send funds?, which is a duplicate of this question.

Please research your topic a bit more (for example I searched up 'solidity call function payable') before posting; many times you can find your question already on stack overflow.

Welcome to Ethereum Stack Overflow!

  • thank you for your response and maybe I should have phrased better/more specifically. I was asking if you could simply "fund" contract B with some sufficient balance of ether that would satisfy the needs of the payable function in Contract B. In this case, the payable function in B needs a value to satisfy oraclize query fee. So maybe the better questions is, will the oraclize auto-deduct its fee from the calling contract balance (contract B)? – Chadd Bennett Oct 17 '18 at 18:14

Not the answer you're looking for? Browse other questions tagged or ask your own question.