Solidity

如何使用solidity合約從文件中獲取數據以發揮作用?

  • August 31, 2021

假設我有一個選民數據列表,我想向函式 addVotersList 發送一個文件,以一鍵添加所有選民,而不是為每個選民一個一個發送數據

這是功能:

function addVotersList(string name,uint id , address voter)public restricted {
      
         ....
   }

您不能將文件發送到該函式。但是,如果您想一鍵完成所有過程,則可以使用數組。

function addVotersList(string[] calldata name,uint[] calldata id , address[] calldata voter) external

我改變了功能可見性。因為如果您在參數中獲取數組,外部非常節省氣體。我在所有參數中添加了 calldata 關鍵字。再次,它是為了節省氣體。

Solidity 不讀取外部文件。如果您想添加選民列表,請使用數組提供他們。例如 :

function addVotersList(string[] calldata _names,uint[] calldata _ids , address[] calldata _voters)public  {
          
                    for (uint i = 0; i < _names.length; i++)
                      { 
                       global_names[i]=_names[i];
                       global_ids[i]=_ids[i];
                       global_voter[i]=_voter[i];
                          
                      }

       }

引用自:https://ethereum.stackexchange.com/questions/108128