Solidity

Truffle:用乙太部署合約

  • November 21, 2020

我的合約需要 eth 才能執行,但是 truffle 沒有平衡地部署它,所以我無法通過它執行功能。建構子不需要gas,但其他一些函式需要。有沒有辦法可以用乙太部署合約?還是我對契約的運作方式有誤解?

我想可能有些誤會。一些澄清可能會有所幫助。

  1. 合約(還)不能為任何東西支付gas。Gas 總是由向合約函式發送交易的發送者支付。
  2. 部署合約是一項消耗 Gas 的交易,而該 Gas 由部署合約的賬戶支付。
  3. 如果合約需要在部署期間發送乙太幣(出於某種原因而不是支付 gas),那麼它將具有標記為應付的建構子。如果需要, Truffle 確實可以value:在遷移過程中轉移乙太(使用 )。在我看來,將關注點分開並將部署和資助功能分開幾乎總是更好。
  4. 當 Truffle 部署合約時,該交易會花費 gas 加上構造器成本(如果有的話),並且部署交易始終from:是一個帳戶/地址。預設情況下,這是錢包中的第一個帳戶。如果有任何資金轉移到合約(不是 gas),那麼這些資金將從同一個發送者賬戶中提取。

希望能幫助到你。

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