Can a Contract ABI change?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
1
down vote

favorite












I am developing an app that is using the etherscan-api package.



I use it to get the contract ABI.



The problem is that I retrieve it via the API every time the function is called.



My question is: Can a Contracts ABI change at any point and can I just store the ABI json in a database field to reduce processing time?










share|improve this question







New contributor




Michael Smith 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












    I am developing an app that is using the etherscan-api package.



    I use it to get the contract ABI.



    The problem is that I retrieve it via the API every time the function is called.



    My question is: Can a Contracts ABI change at any point and can I just store the ABI json in a database field to reduce processing time?










    share|improve this question







    New contributor




    Michael Smith 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











      I am developing an app that is using the etherscan-api package.



      I use it to get the contract ABI.



      The problem is that I retrieve it via the API every time the function is called.



      My question is: Can a Contracts ABI change at any point and can I just store the ABI json in a database field to reduce processing time?










      share|improve this question







      New contributor




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











      I am developing an app that is using the etherscan-api package.



      I use it to get the contract ABI.



      The problem is that I retrieve it via the API every time the function is called.



      My question is: Can a Contracts ABI change at any point and can I just store the ABI json in a database field to reduce processing time?







      web3js contract-design etherscan abi






      share|improve this question







      New contributor




      Michael Smith 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




      Michael Smith 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






      New contributor




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









      asked 4 hours ago









      Michael Smith

      1061




      1061




      New contributor




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





      New contributor





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






      Michael Smith 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
          2
          down vote













          While there is a concept of 'contract upgradeability' that developers can build into their smart contract logic, smart contracts cannot update their contract ABI as a part of that process.



          The exposed functions of a smart contract are immutable once the contract is created, and thus the contract ABI is also immutable.






          share|improve this answer



























            up vote
            0
            down vote













            Contract ABI should never change. You can safely use the ABI extracted from the deployment of your contract.



            Also, to expand on what @shawn-tabrizi is talking about "contract upgradeability", if you plan to use. With "contract upgradeability", you separate logic and data into separate smart contracts. It essentially means, we use one contract to implement the logic and another contract to store the data.






            share|improve this answer




















              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: false,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );






              Michael Smith 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%2f60213%2fcan-a-contract-abi-change%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
              2
              down vote













              While there is a concept of 'contract upgradeability' that developers can build into their smart contract logic, smart contracts cannot update their contract ABI as a part of that process.



              The exposed functions of a smart contract are immutable once the contract is created, and thus the contract ABI is also immutable.






              share|improve this answer
























                up vote
                2
                down vote













                While there is a concept of 'contract upgradeability' that developers can build into their smart contract logic, smart contracts cannot update their contract ABI as a part of that process.



                The exposed functions of a smart contract are immutable once the contract is created, and thus the contract ABI is also immutable.






                share|improve this answer






















                  up vote
                  2
                  down vote










                  up vote
                  2
                  down vote









                  While there is a concept of 'contract upgradeability' that developers can build into their smart contract logic, smart contracts cannot update their contract ABI as a part of that process.



                  The exposed functions of a smart contract are immutable once the contract is created, and thus the contract ABI is also immutable.






                  share|improve this answer












                  While there is a concept of 'contract upgradeability' that developers can build into their smart contract logic, smart contracts cannot update their contract ABI as a part of that process.



                  The exposed functions of a smart contract are immutable once the contract is created, and thus the contract ABI is also immutable.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 3 hours ago









                  Shawn Tabrizi

                  3,1202421




                  3,1202421




















                      up vote
                      0
                      down vote













                      Contract ABI should never change. You can safely use the ABI extracted from the deployment of your contract.



                      Also, to expand on what @shawn-tabrizi is talking about "contract upgradeability", if you plan to use. With "contract upgradeability", you separate logic and data into separate smart contracts. It essentially means, we use one contract to implement the logic and another contract to store the data.






                      share|improve this answer
























                        up vote
                        0
                        down vote













                        Contract ABI should never change. You can safely use the ABI extracted from the deployment of your contract.



                        Also, to expand on what @shawn-tabrizi is talking about "contract upgradeability", if you plan to use. With "contract upgradeability", you separate logic and data into separate smart contracts. It essentially means, we use one contract to implement the logic and another contract to store the data.






                        share|improve this answer






















                          up vote
                          0
                          down vote










                          up vote
                          0
                          down vote









                          Contract ABI should never change. You can safely use the ABI extracted from the deployment of your contract.



                          Also, to expand on what @shawn-tabrizi is talking about "contract upgradeability", if you plan to use. With "contract upgradeability", you separate logic and data into separate smart contracts. It essentially means, we use one contract to implement the logic and another contract to store the data.






                          share|improve this answer












                          Contract ABI should never change. You can safely use the ABI extracted from the deployment of your contract.



                          Also, to expand on what @shawn-tabrizi is talking about "contract upgradeability", if you plan to use. With "contract upgradeability", you separate logic and data into separate smart contracts. It essentially means, we use one contract to implement the logic and another contract to store the data.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 3 hours ago









                          Khaja Mohammed

                          1013




                          1013




















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









                               

                              draft saved


                              draft discarded


















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












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











                              Michael Smith 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%2f60213%2fcan-a-contract-abi-change%23new-answer', 'question_page');

                              );

                              Post as a guest













































































                              Comments

                              Popular posts from this blog

                              Long meetings (6-7 hours a day): Being “babysat” by supervisor

                              Is the Concept of Multiple Fantasy Races Scientifically Flawed? [closed]

                              Confectionery