Contract-Invocation

可以對智能合約進行簡單的 sendTransaction 嗎?

  • August 30, 2017

我經常使用 geth 使用 simple 來移動 ETH sendTransaction,比如說 21 000 gas 或 30 000 gas,從來沒有遇到過任何問題。

例如以下基本上總是對我有用(有 30 K 氣體):

eth.sendTransaction({from:eth.accounts[0],to:"0x....",value:web3.toWei(50,"ether"),gas:30000})

然而,今天我參加了一個 ICO,其中陳述了兩件令我非常困惑的事情:

  • “我們花了很多時間完善 TKN 智能合約,你只需要發送你的 ETH 或代幣貢獻。不需要進一步的行動或 ABI。”
  • “將gas限制設置為200,000”

我認為我只有一個問題,但可以用不同的方式表述,所以我們開始吧..

如果我需要做的只是將代幣發送到一個地址,那麼為什麼需要 200 K 的氣體限制呢?

sendTransaction我用來在簡單地址之間移動 ETH的同一個呼叫能否用於從簡單地址發送到智能合約?

智能合約的地址不sendTransaction只是增加該地址的餘額嗎?sendTransaction在非智能合約地址的情況下,執行了哪些未執行的附加程式碼?

sendTransaction()將 ETH 發送到一個地址。合約有一個地址,就像普通的“賬戶”有地址一樣。這樣,契約就可以成為sendTransaction().

如果 ETH 在方法呼叫之外被發送到合約,則會呼叫合​​約的預設未命名方法。此方法可以更新余額的內部表示,甚至可以將呼叫中繼到另一個合約。

該方法所採取的行動需要支付 gas 費用,這就是為什麼您需要增加 gas 的原因。

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