tx · GBhXADtPKoS4CpCVewbi4PsMLYemj3cpy2LzXXcDf5xH

3Mza5Ao6wJgpw1JG3jxRY1xigD44zgfhdK6:  -0.04000000 Waves

2021.11.04 16:42 [1776330] smart account 3Mza5Ao6wJgpw1JG3jxRY1xigD44zgfhdK6 > SELF 0.00000000 Waves

{ "type": 13, "id": "GBhXADtPKoS4CpCVewbi4PsMLYemj3cpy2LzXXcDf5xH", "fee": 4000000, "feeAssetId": null, "timestamp": 1636033377752, "version": 2, "chainId": 84, "sender": "3Mza5Ao6wJgpw1JG3jxRY1xigD44zgfhdK6", "senderPublicKey": "Gud7Z17wiZEMZiHRbn48k2D9H13jmLEDZZ8b7NCfjRJL", "proofs": [ "3KCpP5fb7H6QjaeF52bLYM71vV8sZH2TTtjQLgKy1z8gtm9nEM2RrRFwgE9zsLp1ULDH7mUwjawhHHrp1ftCdFQd" ], "script": "base64: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", "height": 1776330, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DsZWMNEt42YSdLa6Ezz1ei6ZyqHmDcHybWR6pxE8j6cT Next: 4CewQQxuuCbWqQdYYexGFzoVG1LKo87c36XPchL3xk57 Diff:
OldNewDifferences
3535 0
3636 }
3737 let newAmount = (currentAmount - amount)
38- if ((0 > amount))
39- then throw("Can't withdraw negative amount")
38+ if ((0 >= amount))
39+ then throw("Amount must be greater than 0")
4040 else if ((0 > newAmount))
4141 then throw("Not enough balance")
4242 else $Tuple2([IntegerEntry(currentKey, newAmount), ScriptTransfer(i.caller, amount, unit)], unit)
5454 0
5555 }
5656 let newAmount = (currentAmount - amount)
57- if ((0 > amount))
58- then throw("Can't transfer negative amount")
57+ if ((0 >= amount))
58+ then throw("Amount must be greater than 0")
5959 else if ((0 > newAmount))
6060 then throw("Not enough balance")
6161 else {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func deposit () = {
88 let pmt = if ((size(i.payments) == 1))
99 then i.payments[0]
1010 else throw("Attached payment is required")
1111 if (isDefined(pmt.assetId))
1212 then throw("works with waves only")
1313 else {
1414 let currentKey = toBase58String(i.caller.bytes)
1515 let currentAmount = match getInteger(this, currentKey) {
1616 case a: Int =>
1717 a
1818 case _ =>
1919 0
2020 }
2121 let newAmount = (currentAmount + pmt.amount)
2222 $Tuple2([IntegerEntry(currentKey, newAmount)], unit)
2323 }
2424 }
2525
2626
2727
2828 @Callable(i)
2929 func withdraw (amount) = {
3030 let currentKey = toBase58String(i.caller.bytes)
3131 let currentAmount = match getInteger(this, currentKey) {
3232 case a: Int =>
3333 a
3434 case _ =>
3535 0
3636 }
3737 let newAmount = (currentAmount - amount)
38- if ((0 > amount))
39- then throw("Can't withdraw negative amount")
38+ if ((0 >= amount))
39+ then throw("Amount must be greater than 0")
4040 else if ((0 > newAmount))
4141 then throw("Not enough balance")
4242 else $Tuple2([IntegerEntry(currentKey, newAmount), ScriptTransfer(i.caller, amount, unit)], unit)
4343 }
4444
4545
4646
4747 @Callable(i)
4848 func transfer (amount,recipient) = {
4949 let currentKey = toBase58String(i.caller.bytes)
5050 let currentAmount = match getInteger(this, currentKey) {
5151 case a: Int =>
5252 a
5353 case _ =>
5454 0
5555 }
5656 let newAmount = (currentAmount - amount)
57- if ((0 > amount))
58- then throw("Can't transfer negative amount")
57+ if ((0 >= amount))
58+ then throw("Amount must be greater than 0")
5959 else if ((0 > newAmount))
6060 then throw("Not enough balance")
6161 else {
6262 let recKey = toBase58String(Address(fromBase58String(recipient)).bytes)
6363 let recAmount = match getInteger(this, recKey) {
6464 case a: Int =>
6565 a
6666 case _ =>
6767 0
6868 }
6969 $Tuple2([IntegerEntry(currentKey, newAmount), IntegerEntry(recKey, (recAmount + amount))], unit)
7070 }
7171 }
7272
7373
7474 @Verifier(tx)
7575 func verify () = {
7676 let smartPK = base58'Gud7Z17wiZEMZiHRbn48k2D9H13jmLEDZZ8b7NCfjRJL'
7777 let secondPK = base58'CwvKLDcXt3Wd2MEyEemVKawiD7gaCV68wh2GcnJRHFqB'
7878 let smart = sigVerify(tx.bodyBytes, tx.proofs[0], smartPK)
7979 let second = sigVerify(tx.bodyBytes, tx.proofs[0], secondPK)
8080 match tx {
8181 case t: SetScriptTransaction =>
8282 true
8383 case t: DataTransaction =>
8484 true
8585 case t: InvokeScriptTransaction =>
8686 true
8787 case t: TransferTransaction =>
8888 if (smart)
8989 then true
9090 else second
9191 case _ =>
9292 false
9393 }
9494 }
9595

github/deemru/w8io/c3f4982 
44.96 ms