Can you send a token and get ether back?











up vote
1
down vote

favorite












If a user sends a token, let's call it ABC, to the contract that issued that token, can the contract send back ether to the user?










share|improve this question









New contributor




chrisfuture is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
























    up vote
    1
    down vote

    favorite












    If a user sends a token, let's call it ABC, to the contract that issued that token, can the contract send back ether to the user?










    share|improve this question









    New contributor




    chrisfuture is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      If a user sends a token, let's call it ABC, to the contract that issued that token, can the contract send back ether to the user?










      share|improve this question









      New contributor




      chrisfuture is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      If a user sends a token, let's call it ABC, to the contract that issued that token, can the contract send back ether to the user?







      solidity tokens






      share|improve this question









      New contributor




      chrisfuture is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      chrisfuture is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 2 days ago









      PaulRBerg

      1,017319




      1,017319






      New contributor




      chrisfuture is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 2 days ago









      chrisfuture

      61




      61




      New contributor




      chrisfuture is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      chrisfuture is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      chrisfuture is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          2 Answers
          2






          active

          oldest

          votes

















          up vote
          1
          down vote













          Yes, for example:



          contract ABCToken {
          function sell(uint abcAmount) public {
          uint ethAmount = myFunc(abcAmount);
          msg.sender.transfer(ethAmount);
          }
          }


          Of course, you probably want to make sure that this user (msg.sender) owns the specified amount of ABC tokens...






          share|improve this answer




























            up vote
            1
            down vote













            Adding to goodVibration's answer, you want to make sure the user actually sent what they say they sent.



            contract ABCToken {
            function sell(uint abcAmount) public {
            require(token.transferFrom(msg.sender, address(this), abcAmount));
            uint ethAmount = myFunc(abcAmount);
            msg.sender.transfer(ethAmount);
            }
            }


            Transfer from requires the sender to first send an approve() to the token contract to set an allowance the above function can use to retrieve the user's tokens. The 2-step process is usually coordinated client-side or in another contract.



            Hope it helps.






            share|improve this answer



















            • 1




              Thanks. Risk of scribbling it up freestyle. Fixed.
              – Rob Hitchens B9lab
              2 days ago











            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "642"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });






            chrisfuture is a new contributor. Be nice, and check out our Code of Conduct.










             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fethereum.stackexchange.com%2fquestions%2f62176%2fcan-you-send-a-token-and-get-ether-back%23new-answer', 'question_page');
            }
            );

            Post as a guest
































            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            1
            down vote













            Yes, for example:



            contract ABCToken {
            function sell(uint abcAmount) public {
            uint ethAmount = myFunc(abcAmount);
            msg.sender.transfer(ethAmount);
            }
            }


            Of course, you probably want to make sure that this user (msg.sender) owns the specified amount of ABC tokens...






            share|improve this answer

























              up vote
              1
              down vote













              Yes, for example:



              contract ABCToken {
              function sell(uint abcAmount) public {
              uint ethAmount = myFunc(abcAmount);
              msg.sender.transfer(ethAmount);
              }
              }


              Of course, you probably want to make sure that this user (msg.sender) owns the specified amount of ABC tokens...






              share|improve this answer























                up vote
                1
                down vote










                up vote
                1
                down vote









                Yes, for example:



                contract ABCToken {
                function sell(uint abcAmount) public {
                uint ethAmount = myFunc(abcAmount);
                msg.sender.transfer(ethAmount);
                }
                }


                Of course, you probably want to make sure that this user (msg.sender) owns the specified amount of ABC tokens...






                share|improve this answer












                Yes, for example:



                contract ABCToken {
                function sell(uint abcAmount) public {
                uint ethAmount = myFunc(abcAmount);
                msg.sender.transfer(ethAmount);
                }
                }


                Of course, you probably want to make sure that this user (msg.sender) owns the specified amount of ABC tokens...







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 2 days ago









                goodvibration

                2,189721




                2,189721






















                    up vote
                    1
                    down vote













                    Adding to goodVibration's answer, you want to make sure the user actually sent what they say they sent.



                    contract ABCToken {
                    function sell(uint abcAmount) public {
                    require(token.transferFrom(msg.sender, address(this), abcAmount));
                    uint ethAmount = myFunc(abcAmount);
                    msg.sender.transfer(ethAmount);
                    }
                    }


                    Transfer from requires the sender to first send an approve() to the token contract to set an allowance the above function can use to retrieve the user's tokens. The 2-step process is usually coordinated client-side or in another contract.



                    Hope it helps.






                    share|improve this answer



















                    • 1




                      Thanks. Risk of scribbling it up freestyle. Fixed.
                      – Rob Hitchens B9lab
                      2 days ago















                    up vote
                    1
                    down vote













                    Adding to goodVibration's answer, you want to make sure the user actually sent what they say they sent.



                    contract ABCToken {
                    function sell(uint abcAmount) public {
                    require(token.transferFrom(msg.sender, address(this), abcAmount));
                    uint ethAmount = myFunc(abcAmount);
                    msg.sender.transfer(ethAmount);
                    }
                    }


                    Transfer from requires the sender to first send an approve() to the token contract to set an allowance the above function can use to retrieve the user's tokens. The 2-step process is usually coordinated client-side or in another contract.



                    Hope it helps.






                    share|improve this answer



















                    • 1




                      Thanks. Risk of scribbling it up freestyle. Fixed.
                      – Rob Hitchens B9lab
                      2 days ago













                    up vote
                    1
                    down vote










                    up vote
                    1
                    down vote









                    Adding to goodVibration's answer, you want to make sure the user actually sent what they say they sent.



                    contract ABCToken {
                    function sell(uint abcAmount) public {
                    require(token.transferFrom(msg.sender, address(this), abcAmount));
                    uint ethAmount = myFunc(abcAmount);
                    msg.sender.transfer(ethAmount);
                    }
                    }


                    Transfer from requires the sender to first send an approve() to the token contract to set an allowance the above function can use to retrieve the user's tokens. The 2-step process is usually coordinated client-side or in another contract.



                    Hope it helps.






                    share|improve this answer














                    Adding to goodVibration's answer, you want to make sure the user actually sent what they say they sent.



                    contract ABCToken {
                    function sell(uint abcAmount) public {
                    require(token.transferFrom(msg.sender, address(this), abcAmount));
                    uint ethAmount = myFunc(abcAmount);
                    msg.sender.transfer(ethAmount);
                    }
                    }


                    Transfer from requires the sender to first send an approve() to the token contract to set an allowance the above function can use to retrieve the user's tokens. The 2-step process is usually coordinated client-side or in another contract.



                    Hope it helps.







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited 2 days ago

























                    answered 2 days ago









                    Rob Hitchens B9lab

                    24.3k53875




                    24.3k53875








                    • 1




                      Thanks. Risk of scribbling it up freestyle. Fixed.
                      – Rob Hitchens B9lab
                      2 days ago














                    • 1




                      Thanks. Risk of scribbling it up freestyle. Fixed.
                      – Rob Hitchens B9lab
                      2 days ago








                    1




                    1




                    Thanks. Risk of scribbling it up freestyle. Fixed.
                    – Rob Hitchens B9lab
                    2 days ago




                    Thanks. Risk of scribbling it up freestyle. Fixed.
                    – Rob Hitchens B9lab
                    2 days ago










                    chrisfuture is a new contributor. Be nice, and check out our Code of Conduct.










                     

                    draft saved


                    draft discarded


















                    chrisfuture is a new contributor. Be nice, and check out our Code of Conduct.













                    chrisfuture is a new contributor. Be nice, and check out our Code of Conduct.












                    chrisfuture is a new contributor. Be nice, and check out our Code of Conduct.















                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fethereum.stackexchange.com%2fquestions%2f62176%2fcan-you-send-a-token-and-get-ether-back%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest




















































































                    Popular posts from this blog

                    How to change which sound is reproduced for terminal bell?

                    Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

                    Can I use Tabulator js library in my java Spring + Thymeleaf project?