Solidity Compiler ve EVM ilişkisi

Oct 19 2020

Aşağıdaki kodu 0.6.6'da derlediğimde derleme yapmıyor (genel gerektirir) ama 0.7.3'te derliyor.

Aşağıdaki kodu 0.6.6'da derlenebilir (genel ekleyerek) yaparsam, Rinkeby'de başarılı bir şekilde konuşlandırabilirim. Aşağıdaki kodu 0.7.3'te derlersem, Rinkeby'de başarılı bir şekilde konuşlandırabilirim. Bu, Rinkeby EVM'de herhangi bir değişiklik olmadığını, sadece derleyici sürümlerinin Bytecode düzenlemesini uygulama şeklinin değiştiğini gösterir.

Bu, 0.6.6 derleyici standartlarını daha uzun yıllar boyunca kullanabileceğim ve kodumun bozulmayacağı anlamına mı geliyor? Çok sayıda derleyici yinelemesi benim için yeni bir deneyim ve kafamı bunun etrafından dolaştırmaya çalışıyorum.

teşekkür ederim

contract A { constructor () payable {} }

Yanıtlar

1 MikkoOhtamaa Oct 19 2020 at 17:44

Haklısın. Solidity sürüm değişiklikleri genellikle

  • Sözdizimsel değişiklikler (dili daha güvenli hale getirin)

  • ABI değişiklikleri (bkz Ethereum akıllı sözleşmesi ABI v2

EVM değişiklikler için olanlar gibi yeni yönergeler ekleyin revert(string)ve catchdaha sonra bu dil yapıları olarak sağlamlık içine kabul edilir ve ancak bu değişikliklerin daha fazla nadirdir.