AmountMath
Dijital varlıkların bir purse
içine yatırılması ve çekilmesi ile payment
miktarlarının manipüle edilmesi, dijital varlıkların toplanmasını ve çıkarılmasını gerektirir. ERTPres fonksiyonları tüm bu işlemler için AmountMath
kütüphanesini kullanır.
AmountMath
kütüphanesi işlevleri, hem fungible hem de non-fungible tokenlar için çalışır. İki AssetKinds
bulunmaktadır ve her biri aynı yöntemleri uygular. Belirli bir brand
için hangi türün kullanıldığı, brand
ve onun issuer
'ı oluşturulurken neyin belirlendiğine bağlıdır. Bunlar:
AssetKind.NAT
("nat"): Fungible varlıklarla kullanılır. Değerler, JavaScript türünü kullanarak doğal sayılardır; böylece genellikle kullanılan JavaScriptNumber
türünden kaynaklanabilecek aşım riskleri önlenir.AssetKind.SET
("set"): Non-fungible varlıklarla kullanılır. Değerler, sıkı dizelerden oluşan gibi dizilerdir.
AmountMath Yöntemleri
Aşağıda her AmountMath
yöntemi için kısa bir açıklama ve örnek bulunmaktadır. Daha fazla ayrıntı için, yöntemin adını tıklayarak bölümüne gidebilirsiniz.
Birçok yöntemin brand
argümanı vardır; bu argüman ya zorunludur ya da isteğe bağlıdır. İsteğe bağlı olduğunda, "amount" argüman(lar)ının brand
inin, aldığı brand
ile eşleştiğini doğrulamak için bir issuer'dan (veya Zoe'den) aldığınız brand
'i kullanmalısınız.
- Bilgi Alma Yöntemleri
amount
argümanınınvalue
değerini döner. Fungible varlıklar için bu birBigInt
olacaktır.- <<< @/../snippets/ertp/guide/test-amount-math.js#getValue
- Karşılaştırma Yöntemleri
- Eğer
amount
argümanı boşsatrue
, aksi takdirdefalse
döner. İsteğe bağlıbrand
argümanı,amount
argümanı markasıyla aynı değilse hata fırlatır. - <<< @/../snippets/ertp/guide/test-amount-math.js#isEmpty
- Eğer
leftAmount
argümanırightAmount
argümanına eşit veya büyüksetrue
, aksi takdirdefalse
döner. İsteğe bağlıbrand
argümanı,amount
argümanlarının markalarıyla aynı değilse hata fırlatır.- <<< @/../snippets/ertp/guide/test-amount-math.js#isGTE
leftAmount
argümanırightAmount
argümanına eşitsetrue
, aksi takdirdefalse
döner. İsteğe bağlıbrand
argümanı,amount
argümanlarının markalarıyla aynı değilse hata fırlatır.- <<< @/../snippets/ertp/guide/test-amount-math.js#isEqual
- Bir
amount
alır ve geçerliyse onu döner. Geçersizse hata fırlatır. - <<< @/../snippets/ertp/guide/test-amount-math.js#coerce
- Bir
- Manipülatör Yöntemleri
leftAmount
verightAmount
amount
argümanlarının birleşimi olan biramount
döner. Fungibleamount
için bu, değerlerini eklemek anlamına gelir. Non-fungibleamount
için bu genellikle her ikileftAmount
verightAmount
'taki tüm elemanları içermek anlamına gelir. İsteğe bağlıbrand
argümanı,amount
argümanlarının markalarıyla aynı değilse hata fırlatır.- <<< @/../snippets/ertp/guide/test-amount-math.js#add
leftAmount
argümanı ilerightAmount
argümanını çıkartan yeni biramount
döner (yani,leftAmount
'taki her şeydenrightAmount
'taki her şeyin çıkarılması). EğerleftAmount
,rightAmount
'ın içeriklerini içermiyorsa hata fırlatır. İsteğe bağlıbrand
argümanı,amount
argümanlarının markalarıyla aynı değilse hata fırlatır.- <<< @/../snippets/ertp/guide/test-amount-math.js#subtract
- Amount Oluşturma Yöntemleri
- Bir
value
argümanı alır veAmountMath
ile ilişkilibrand
vevalue
ile bir kayıt oluşturarak biramount
döner.value
argümanıBigInt
olarak temsil edilmelidir, örneğin10n
şeklinde, değilse10
. - <<< @/../snippets/ertp/guide/test-amount-math.js#make
- Bir
AmountMath
'ınadd()
vesubtract()
işlemleri için kimlik elemanı olan bir boşamount
ı temsil eden biramount
döner. Bu değerin,brand
veAssetKind.NAT
veyaAssetKind.SET
türüne bağlı olarak farklılık gösterdiğini unutmamak önemlidir.- <<< @/../snippets/ertp/guide/test-amount-math.js#makeEmpty
- Başka bir
amount
kullanarak yeni boşamount
ınbrand
veassetKind
özelliklerini temsil eden bir boşamount
döner. - <<< @/../snippets/ertp/guide/test-amount-math.js#makeEmptyFromAmount
- Başka bir
Diğer Nesnelerdeki Yöntemler
Bu yöntemler bir **** döner:
issuer
'ınbrand
ininAssetKind
döner. (AssetKind.NAT
veyaAssetKind.SET
).- <<< @/../snippets/ertp/guide/test-amount-math.js#getAssetKind2
brand
argümanınınAssetKind
'ını döner.- <<< @/../snippets/ertp/guide/test-amount-math.js#zcfGetAssetKind