جيڪڏهن توهان هڪ نوڊ شروع ڪرڻ نٿا چاهيو، توهان هن قدم کي ڇڏي سگهو ٿا. سڀ کان پوء، اتي هڪ امتحان ۽ تجرباتي نيٽ ورڪ آهي. پر توهان جي پنهنجي نوڊ کي ترتيب ڏيڻ کان سواء، جاچ واري عمل کي ڇڪي سگھي ٿو.
توهان کي مسلسل نئين اڪائونٽن جي ضرورت پوندي ٽيسٽ ٽوڪن سان. ٽيسٽ نيٽ ورڪ نل هر 10 منٽن ۾ 10 WAVES منتقل ڪري ٿو.
ٽيسٽ نيٽ ورڪ ۾ سراسري بلاڪ وقت آهي 1 منٽ، نوڊ ۾ - 15 سيڪنڊ. اهو خاص طور تي قابل ذڪر آهي جڏهن هڪ ٽرانزيڪشن ڪيترن ئي تصديق جي ضرورت آهي.
عوامي ٽيسٽ نوڊس تي جارحتي ڪيشنگ ممڪن آهي.
اهي شايد عارضي طور تي دستياب نه هوندا آهن سار سنڀال جي ڪري.
# In this example multiple accounts can deposit their funds and safely take them back. No one can interfere with this.
# An inner state is maintained as mapping `address=>waves`.
{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}
@Callable(i)
func deposit() = {
let pmt = extract(i.payment)
if (isDefined(pmt.assetId))
then throw("works with waves only")
else {
let currentKey = toBase58String(i.caller.bytes)
let currentAmount = match getInteger(this, currentKey) {
case a:Int => a
case _ => 0
}
let newAmount = currentAmount + pmt.amount
WriteSet([DataEntry(currentKey, newAmount)])
}
}
@Callable(i)
func withdraw(amount: Int) = {
let currentKey = toBase58String(i.caller.bytes)
let currentAmount = match getInteger(this, currentKey) {
case a:Int => a
case _ => 0
}
let newAmount = currentAmount - amount
if (amount < 0)
then throw("Can't withdraw negative amount")
else if (newAmount < 0)
then throw("Not enough balance")
else ScriptResult(
WriteSet([DataEntry(currentKey, newAmount)]),
TransferSet([ScriptTransfer(i.caller, amount, unit)])
)
}
@Verifier(tx)
func verify() = false
”جمع ٿيل کان وڌيڪ واپس نه ٿو وٺي سگھجي“ ٽيسٽون ته ڪو به ٻين ماڻهن جا ٽوڪن چوري نٿو ڪري سگهي.
"ڊپازٽ ڪري سگھي ٿو" چيڪ ڪري ٿو ته ڪڍڻ صحيح طريقي سان عمل ڪيو ويو آھي.
Запуск тестов с Surfboard и анализ результатов в Waves Explorer
آزمائڻ ، ڊوڙائڻ
surfboard test
جيڪڏھن توھان وٽ گھڻا اسڪرپٽ آھن (مثال طور، توھان کي ھڪ الڳ مقرري اسڪرپٽ جي ضرورت آھي)، توھان ھلائي سگھوٿا
surfboard test my-scenario.js
سرف بورڊ ٽيسٽ فائلن کي گڏ ڪندو ./test/ فولڊر ۾ ۽ اسڪرپٽ کي نوڊ تي هلائيندو جيڪو surfboard.config.json ۾ ترتيب ڏنل آهي. ڪجھ سيڪنڊن کان پوءِ توھان ڪجھ ھن طرح ڏسندا:
wallet test suite
Generating accounts with nonce: ce8d86ee
Account generated: foofoofoofoofoofoofoofoofoofoofoo#ce8d86ee - 3M763WgwDhmry95XzafZedf7WoBf5ixMwhX
Account generated: barbarbarbarbarbarbarbarbarbar#ce8d86ee - 3MAi9KhwnaAk5HSHmYPjLRdpCAnsSFpoY2v
Account generated: wallet#ce8d86ee - 3M5r6XYMZPUsRhxbwYf1ypaTB6MNs2Yo1Gb
Accounts successfully funded
Script has been set
√ Can deposit (4385ms)
√ Cannot withdraw more than was deposited
√ Can withdraw (108ms)
3 passing (15s)
هوري! امتحان پاس ڪيا. هاڻي اچو ته هڪ نظر وجهون ته ڇا ٿيندو جڏهن Waves Explorer استعمال ڪيو وڃي: بلاڪ کي ڏسو يا مٿي ڏنل ايڊريس مان هڪ کي ڳولا ۾ پيسٽ ڪريو (مثال طور، لاڳاپيل wallet#. اتي توھان ڳولي سگھوٿا ٽرانزيڪشن جي تاريخ، ڊي ايپ اسٽيٽس، ٺھيل بائنري فائل.