I am new to solidity. I was playing around and wanted to know if I could make a contract fetch ether from one account and transfer it to another account. Thank You
how to make contract fetch ether from an account
339 Views Asked by hahahoho At
2
There are 2 best solutions below
0
Raghav Sood
On
Unless the account you are retrieving the ether from is also a contract and provides a method allowing ether withdrawal, this is not possible. A contract cannot autonomously retrieve ether from a externally owned account.
An alternative is to move your ether to the Wrapped Ether (WETH) contract, which provides you an ether-backed ERC20 token instead, which then gives you access to approve() and transferFrom()
Related Questions in ETHEREUM
- Automatic Transfer of Token in Solidity Contract
- Not able to create accounts for Private Ethereum Blockchain using Geth and Web3 API
- Deploying Ethereum Private Network
- Uncaught ReferenceError: web3 is not defined at window.onload
- Does the "holy trinity" (Ethereum, Swarm and Whisper) support multimedia streaming?
- How to accurately measure the effort required to reduce a λ-term?
- Q: How do I add nicehash support to open-ethereum-pool for musicoin
- eth_SendTransaction - Unknown Account
- solidity - get return value of delegatecall with assembly
- Link Javascript to Solidity?
- Can I configure my truffle project to use an .ipc endpoint file instead of an ethereum RPC listener?
- Can we use mysql with ethereum?
- Monitoring Ethereum private network
- Is Ethereum wallet to wallet token exchange possible?
- How do display all the events logs from a smart contract?
Related Questions in SOLIDITY
- solcover fail to generate test coverage with my simple add contract
- Automatic Transfer of Token in Solidity Contract
- How to test smart contract with cross-contract invoke using truffle?
- solidity - get return value of delegatecall with assembly
- Link Javascript to Solidity?
- Can we use mysql with ethereum?
- How do display all the events logs from a smart contract?
- sending ether to external address using fallback function in an ethereum contract
- The install of solidity extension was failed for Visual Studio 2017
- Can't call contract function in truffle console
- Solidity: Burn event vs Transfer to 0 address
- Creating instance of contract inside another contract and calling it's methods results in thrown exception
- solidity, set value to state Variables, the value not changed
- Front-end development: Why the return values are not shown correctly in my browser?
- web3.eth.accounts returning a function
Related Questions in SMARTCONTRACTS
- Automatic Transfer of Token in Solidity Contract
- How to test smart contract with cross-contract invoke using truffle?
- How to accurately measure the effort required to reduce a λ-term?
- How do display all the events logs from a smart contract?
- sending ether to external address using fallback function in an ethereum contract
- Creating instance of contract inside another contract and calling it's methods results in thrown exception
- How can I include real world data in a smart contract?
- Where in Ethereum blockchain do transaction details of a smart contract get written?
- Is is possible to access public structure fileds in NEAR smart-contract without a function?
- NEAR Protocol - What happens when Rust contract method args are declared as (&mut self, ...) vs. (&self, ...)?
- NEAR Protocol Rust contracts - what's the difference between near-sdk-rs data structures and std ones?
- smart contract gas cost
- How to check if a NEAR account has a smart-contract deployed and implements a required interface?
- Making a Dapp, getting an error: setProvider is not defined?
- Solidity: problem creating a struct containing mappings inside a mapping
Related Questions in ETHER
- How to properly sign an Ethereum transaction?
- Transfer two transaction in one function
- When sending ether to another contract it sends it to the contract?
- Solidity function implementing `public onlyOwner` cannot be called even by the owner
- Why is BigNumber with etherjs returning 0
- how to make contract fetch ether from an account
- How can we generate multiple random number in ethereum?
- Getting a list of ERC20 token holders in solidity
- Not running the solidity smart contract of splitting the transaction money?
- bigNumber not parsing ether properly
- How do I downgrade my ethers.js version from 5.7.2 to 5.6.1?
- Why do we need deployments.fixture?
- why ethereum.utils.privtoaddr(priv) generates an address
- sending a transaction requires a signer
- Installing eth-brownie with pipx issue
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The short answer is that you cannot use a contract to fetch ether from another address. If some form of this was possible, it would be hard to prevent malicious actors from doing this to everybody.
The longer answer is that in Solidity, it is more favorable to pull transactions rather than to push them. Keeping this in mind, you should not attempt to fetch ether from an account, but rather you should design the contract in such a way that the account involved would pull their allocation out of the contract. You can do one of two things:
Both of these work, but you cannot have the contract fetch ether from the first user automatically.
There are ways where this is seemingly possible, but it is done with a pre-signed transaction from User1, which is most likely what you are not trying to achieve.