Nesne ile Erişim Kontrolü
Üçüncü akıllı sözleşmemizde, bir akıllı sözleşmenin farklı işlevlerine erişimi nasıl kontrol edeceğimizi göstereceğiz. Şimdiye kadar, tüm işlevleri açığa çıkarmak için yalnızca publicFacet
kullandık. Bununla birlikte, yalnızca sözleşme örneğini oluşturan arayıcıya sunulan başka bir yüz olan creatorFacet
bulunmaktadır.
Bu akıllı sözleşmede, publicFacet
API'sini yalnızca okuma amaçlı bir get()
işlevi ile sınırlarken, creatorFacet
API'sini kullanarak set()
yöntemini sözleşme örneğini oluşturan arayıcıya açıyoruz.
İşte 03-access.js
akıllı sözleşmesi için tam kod:
<<< @/../snippets/zoe/src/03-access.js#access-contract
publicFacet
kullanarak set
denemesi yaptığınızda bir hata fırlatılacağını, ancak creatorFacet
kullanıldığında işlemin başarılı olacağını sağlamak için aşağıdaki gibi basit bir test yazabiliriz:
<<< @/../snippets/zoe/contracts/test-zoe-hello.js#test-access
set()
yönteminin içinde hiçbir erişim kontrolü olmadığını unutmayın. Erişim kontrolü, genel ortaklık
ile beklenen ve yakından korunan
arasında güçlerin ayrılmasına dayanmaktadır. Bu yaklaşımını daha sonra daha ayrıntılı olarak ele alacağız. Sorun yaşıyorsanız, örnek depo içerisindeki dalına göz atın.
Nesne Erişim Kuralları
Nesne erişim kuralları, sözleşme içinde nesnelere erişimi yönetmeye ve kontrol etmeye yardımcı olan tanıtım, ebeveynlik, bağışlama ve başlangıç koşulları içerir:
- Tanıtım: Nesneler yalnızca tanıtıldıkları diğer nesnelere referans verebilir. Bu, yalnızca bilinen nesnelerin etkileşime girmesini sağlayarak yetkisiz erişimi önler.
- Ebeveynlik: Nesneler çocuk nesneler oluşturabilir. Ebeveyn nesne, çocuk nesnenin başlangıç durumu ve yetenekleri üzerinde kontrol sahibidir; bu, çocuğun neleri yapabileceğini ve yapamayacağını tanımlar.
- Bağışlama: Nesneler oluşturulduklarında belirli yetenekler veya kaynaklarla donatılabilir. Bu, sözleşmenin bir nesnenin sumacabileceği eylemleri bağışlamaları ile kontrol etmesine olanak tanır.
- Başlangıç Koşulları: Nesneler, belirli koşullar veya durumlarla başlatılır. Bu başlangıç koşulları, nesnenin davranış ve etkileşimleri için başlangıç noktasını tanımlar.
Ayrıca için bakılabilir.
Sonraki bölümde, ile varlık mintleme ve ticaretine göz atalım.