MetaMask Snaps, MetaMask'ı dünyanın en genişletilebilir cüzdanı haline getirme yol haritasıdır. Geliştirici olarak, özelliklerinizi ve API'larınızı MetaMask'a tamamen yeni yollarla entegre edebilirsiniz. Web3 geliştiricileri bu büyümenin özünü oluşturmaktadır ve bu seri, bugün inşa edilen yenilikçi MetaMask Snaps'leri tanıtmayı amaçlamaktadır.
Minci ile Snapshot Snap
ETHWarsaw Hackathon'da Snapshot Snap'i geliştiren bağımsız Web3 geliştiricisi Minci ile sohbet ediyoruz. Bu uygulama, zincir üstü etkinlikler için özel bildirimler kurmanıza olanak tanıyan bir kavram kanıtı uygulamasıdır.
Snapshot: Demo Video
Snap Deposu: https://github.com/iamminci/snapshot
Neden geliştirdiniz?
Zincir üstü etkinlikler için cüzdan bildirimleri fikrini son derece ilgi çekici buluyorum. Bunu PayPal ve Venmo gibi web2 uygulamalarında her yerde görüyoruz; ancak indekslemenin bu özelliği web3 için bu denli zorlu bir hale getirmesi, üzerine düşünmeye değer ilginç bir teknik problem. Herhangi bir kullanıcının zincir üstü etkinlikler için kendi özel bildirimlerini kurabilmesine olanak tanıyan bir kavram kanıtı uygulaması oluşturmayı denemek istedim. Prototipimi geliştirmek için Metamask Snaps'in bildirim uygulamasını kullandım.
Teknik uygulamayı bize anlatabilir misiniz?
Teknik uygulama, önce istemci taraflı bir uygulama aracılığıyla kurulum tetikleyerek bir bildirim snap'i oluşturmayı içeriyordu. Ardından kullanıcı, snap'i tercih ettiği zincir üstü etkinlikleri dinleyecek şekilde yapılandırıyor. Buradaki vizyon, kullanıcının herhangi bir sözleşme adresini ve ilgili etkinlikleri beyaz listeye ekleyebilmesiydi; böylece bu etkinlikler yalnızca bir bildirim tetiklemekle kalmayıp, tetikleyiciye bağlı olarak işlem gönderme veya DEX alım satımı gerçekleştirme gibi otomatik zincir üstü eylemleri de başlatabilecekti. Otomatik gönderim, kullanıcının özel anahtarının bir BIP44 Adres Anahtarı Türetici'den türetilmesiyle mümkün kılındı (bu kütüphaneyi kullanan atölyesi için Olaf'a teşekkürler); böylece işlem, kullanıcıdan açık bir onay alınmadan gerçekleşebiliyordu. Kavram kanıtım, Opensea'de teklif verme örneğiyle sınırlı tutuldu ve Rinkeby test ağında Opensea'nin API'ı kullanılarak hayata geçirildi.
Bu projeyi hayata geçirecek olsaydınız sonraki adımlar ne olurdu?
Demo video, yalnızca birkaç önceden yapılandırılmış kullanım senaryosu için çalışan bir kavram kanıtına dayanıyordu (Opensea'de teklif verme, ether gönderimini otomatikleştirme). Bu vizyonu gerçeğe dönüştürmek için sonraki adımlar, bildirim snap'ini yeniden yüklemek zorunda kalmadan snap'in dinlediği etkinlikleri dinamik olarak güncelleyebilmek amacıyla bir tür depolama yapılandırmasını içerecektir. Ayrıca kullanıcıların mevcut snap'lerini izleyebileceği ve tetiklenen etkinlikleri tek bir görünümde görselleştirebileceği bir kontrol paneli sunmak da faydalı olacaktır. Bunun yanı sıra, yalnızca gönderimlerle sınırlı kalmayıp limit emirleri belirleme veya arbitraj gibi daha karmaşık sözleşme çağrılarını da kapsayan çok daha özelleştirilmiş otomatik tetikleyici eylemler sunmak da önemli bir adım olacaktır.
MetaMask Snaps ile ilk ne zaman tanıştınız ve deneyiminiz nasıldı?
MetaMask Snaps ile ilk kez Miami Permissionless konferansında bir MetaMask standını ziyaret ettiğimde tanıştım. Bunun MetaMask için bir eklenti ekosistemine dönüşebileceği fikri beni gerçekten heyecanlandırdı.
MetaMask Snaps'i diğer cüzdanlardan farklı kılan nedir?
Hiçbir başka cüzdanın geliştiricilere yönelik özelleştirilebilir eklentileri yoktur. Bunun tüm ekosistemde yalnızca Metamask'a özgü olduğuna inanıyorum.
MetaMask Snaps ile geliştirme yapmak sizin ve ekibiniz için nasıl bir deneyim?
Açıkçası, MetaMask Snaps ile geliştirme yapmak hiç de kolay değildi. Bence en büyük eksiklik, yeterli dokümantasyonun bulunmamasıydı. Neyse ki, bu yapı taşlarından kendi yeniliklerimi türetebilmem için yeterince ilginç örnek mevcuttu; bu nedenle snap geliştirmeyle ilgilenen her geliştiriciye doğrudan örnekler deposuna dalmasını şiddetle tavsiye edebilirim.
MetaMask Snaps sizin için ne ifade ediyor?
MetaMask Snaps, web3'ün açık geleceğidir.
MetaMask Snaps'in Web3 alanı için sunduğu fırsatlar ve açtığı olanaklar nelerdir?
MetaMask Snaps, web3'te sınırsız bir olasılıklar dünyasının kapılarını açabilir. Tıpkı Chrome'un eklenti ekosistemiyle vazgeçilmez tarayıcı haline gelmesi ve VSCode'un kendi eklenti marketi ile benzer bir yol izlemesi gibi. MetaMask Snaps'in, geliştiricilerin araçlara dahil olmasına ve cüzdanı istedikleri gibi özelleştirmek için özgürce yenilik yapmasına olanak tanıyarak MetaMask'ı bir üst seviyeye taşıyabileceğini rahatlıkla öngörebiliyorum (bu da söz konusu araçları faydalı bulan kullanıcıları çekecektir). En çekici MetaMask Snaps'leri sunan geliştiriciler etrafında ilginç bir token ekonomisi de oluşturulabilir.
MetaMask Snaps'i denemek isteyen geliştiricilere vermek istediğiniz tavsiyeler nelerdir?
MetaMask Snaps ile ilgilenen herkesi doğrudan örnek depoya dalıp fork'layarak üzerinde oynamaya davet ediyorum!
MetaMask Snaps ile Geliştirme
MetaMask Snaps'e başlamak için:
Geliştirici belgelerine göz atın
MetaMask Flask'ı yükleyin
Bir MetaMask Snaps kılavuzuna bakın
Twitter, GitHub tartışmaları ve Discord üzerinden bizimle bağlantıda kalın
Yakınınızdaki bir sonraki hackathon'da ekibimizi takip edin! Mutlu geliştirmeler ⚒️
Sorumluluk Reddi: MetaMask Snaps, genel olarak Consensys Software dışındaki üçüncü taraflarca geliştirilmektedir. Üçüncü taraflarca geliştirilen MetaMask Snaps'lerin kullanımı tamamen sizin takdirinize ve riskinize bağlıdır; bu tür faaliyetlerden kaynaklanabilecek herhangi bir kayıp veya zarardan yalnızca siz sorumlu olacaksınız. Consensys, üçüncü taraflarca geliştirilen MetaMask Snaps'ler için sözlü veya yazılı hiçbir açık ya da zımni garanti vermemekte ve üçüncü taraflarca geliştirilen MetaMask Snaps'ler için tüm sorumluluktan feragat etmektedir. Blok zinciri ile ilgili yazılımların kullanımı risk içermekte olup MetaMask Snaps'i kullanırken bu riskleri tamamen üstlenmiş sayılırsınız.