Depolama Uygulamaları
Scilla, akıllı sözleşme geliştirmek için kullanılan bir dildir ve bu nedenle bir depolama uygulaması yazmak için kullanılabilir. Depolama uygulaması, kullanıcıların verilerini güvenli bir şekilde saklayabilecekleri ve yönetebilecekleri bir platform sağlar. Bu tür bir uygulamanın Scilla ile nasıl yazılacağını aşağıda açıklıyorum.
Öncelikle, Scilla dilinde bir sözleşme oluşturmanız gerekiyor. Bu sözleşmede, kullanıcıların verilerini saklayacakları bir yer olarak bir depolama alanı tanımlayabilirsiniz. Ayrıca, kullanıcılardan gelen verileri doğrulamak için bir işlev de eklemeniz gerekir.
Aşağıdaki kod örneği, kullanıcıların bir depolama alanına metin verileri eklemelerine ve görüntülemelerine izin veren basit bir Scilla sözleşmesi göstermektedir:
(* @version 0.0.1 *)
contract StorageApp {
(* storage *)
var data: Map (Uint32, String)
(* entrypoints *)
transition addData(index: Uint32, value: String)
is_owner() {
data[index] := value
}
query getData(index: Uint32)
returns (result: Option(String)) {
let value = data[index]
match value with
| Some(v) =>
result := Some(v)
| None =>
result := None
end
}
(* helpers *)
function is_owner() : Bool {
match tx.sender with
| Call({address=this_address}) =>
if (this_address == tx.origin)
true
else
false
| _ => false
end
}
}
Bu sözleşme, kullanıcılara yönelik iki işlev içerir: addData
ve getData
. addData
, kullanıcının depolama alanına yeni bir veri eklemesine izin verir. getData
ise, depolama alanından belirli bir veriyi almak için kullanılır.
Sözleşmede, kullanıcının yalnızca kendisi veri ekleyebilmesi için is_owner
adlı bir yardımcı işlev de tanımlanmıştır. Bu işlev, bir çağrının kaynağı olarak orijinal adresi doğrulamak için kullanılır.
Sonuç olarak, Scilla dilinde bir depolama uygulaması geliştirmek oldukça kolaydır. Yukarıdaki örnekte olduğu gibi, bir depolama alanı tanımlayabilir, veri ekleme ve alma işlevleri ekleyebilir ve kullanıcıların verilerini doğrulamak için yardımcı işlevler yazabilirsiniz.