Solidity Compiler ve EVM ilişkisi
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
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.