tx · 2dr36NNg3enjc7r9dj1x4jH3pFVR6Q7HpWnnCFKUnBPE

3N3en9HRhzbk3DDqeGd6DUKc1SG4rmpXguH:  -0.09990000 Waves

2020.10.17 20:50 [1224890] smart account 3N3en9HRhzbk3DDqeGd6DUKc1SG4rmpXguH > SELF 0.00000000 Waves

{ "type": 13, "id": "2dr36NNg3enjc7r9dj1x4jH3pFVR6Q7HpWnnCFKUnBPE", "fee": 9990000, "feeAssetId": null, "timestamp": 1602957025247, "version": 2, "chainId": 84, "sender": "3N3en9HRhzbk3DDqeGd6DUKc1SG4rmpXguH", "senderPublicKey": "3UC2eCnSLx9fHcXvssZJZLNzMshb9NM6GchfmEhx6syQ", "proofs": [ "3hsdN1Eg9HUbsVdhpewT4S47VZwzRAdKR35KKMMNbw9USkNyCXtxUs7UAGM3HuuM9NxigBXh8agPy4cNBHS8Q6fF" ], "script": "base64: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", "height": 1224890, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4ka5QdGkXJbnFjgSEn47uUq7eegRDrVwJmFQAfyf6R6g Next: DogKWkJZ2U9s7rrUKWLvtdwWRygno1fbtD1BmHA1Nf3K Diff:
OldNewDifferences
1515 }
1616 if ((currentAmount > 0))
1717 then {
18- let amount = assetBalance(this, GovernToken)
19- if ((1 > amount))
18+ let GovernTokenAmount = assetBalance(this, GovernToken)
19+ if ((1 > GovernTokenAmount))
2020 then throw("No enough GovernToken In Contract")
2121 else ScriptResult(WriteSet([DataEntry(currentKey, 10)]), TransferSet([ScriptTransfer(i.caller, 1, GovernToken)]))
2222 }
2828 @Callable(i)
2929 func deposit () = {
3030 let CollateralToken = base58'5hHK64aujiyn7cNrTBwhe5yJQuxs119KTPbE9nFjLoUN'
31+ let GovernToken = base58'DeyMK8USWs9ijzAXNy2azA3soajfrXjUNiJBdSJJsvMJ'
3132 let pmt = extract(i.payment)
3233 if (if (isDefined(pmt.assetId))
3334 then (extract(pmt.assetId) == CollateralToken)
4142 0
4243 }
4344 let newAmount = (currentAmount + pmt.amount)
44- WriteSet([DataEntry(currentKey, newAmount)])
45+ let GovernTokenAmount = assetBalance(this, GovernToken)
46+ if ((1 > GovernTokenAmount))
47+ then throw("No enough GovernToken In Contract")
48+ else ScriptResult(WriteSet([DataEntry(currentKey, 10), DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, 10, GovernToken)]))
4549 }
4650 else throw("Can deposit only MyToken")
4751 }
5155 @Callable(i)
5256 func withdrawFunds (amount) = {
5357 let CollateralToken = base58'5hHK64aujiyn7cNrTBwhe5yJQuxs119KTPbE9nFjLoUN'
58+ let GovernToken = base58'DeyMK8USWs9ijzAXNy2azA3soajfrXjUNiJBdSJJsvMJ'
5459 let currentKey = toBase58String(i.caller.bytes)
5560 let currentAmount = match getInteger(this, currentKey) {
5661 case a: Int =>
6368 then throw("Can't withdraw negative amount")
6469 else if ((0 > newAmount))
6570 then throw("User cannot withdraw more than deposited funds")
66- else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, CollateralToken)]))
71+ else {
72+ let GovernTokenAmount = assetBalance(this, GovernToken)
73+ if ((1 > GovernTokenAmount))
74+ then throw("No enough GovernToken In Contract")
75+ else ScriptResult(WriteSet([DataEntry(currentKey, 1), DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, 1, GovernToken), ScriptTransfer(i.caller, amount, CollateralToken)]))
76+ }
6777 }
6878
6979
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func payYield () = {
88 let GovernToken = base58'DeyMK8USWs9ijzAXNy2azA3soajfrXjUNiJBdSJJsvMJ'
99 let currentKey = toBase58String(i.caller.bytes)
1010 let currentAmount = match getInteger(this, currentKey) {
1111 case a: Int =>
1212 a
1313 case _ =>
1414 0
1515 }
1616 if ((currentAmount > 0))
1717 then {
18- let amount = assetBalance(this, GovernToken)
19- if ((1 > amount))
18+ let GovernTokenAmount = assetBalance(this, GovernToken)
19+ if ((1 > GovernTokenAmount))
2020 then throw("No enough GovernToken In Contract")
2121 else ScriptResult(WriteSet([DataEntry(currentKey, 10)]), TransferSet([ScriptTransfer(i.caller, 1, GovernToken)]))
2222 }
2323 else throw("You need to deposit Collateral Token to receive Govern Token")
2424 }
2525
2626
2727
2828 @Callable(i)
2929 func deposit () = {
3030 let CollateralToken = base58'5hHK64aujiyn7cNrTBwhe5yJQuxs119KTPbE9nFjLoUN'
31+ let GovernToken = base58'DeyMK8USWs9ijzAXNy2azA3soajfrXjUNiJBdSJJsvMJ'
3132 let pmt = extract(i.payment)
3233 if (if (isDefined(pmt.assetId))
3334 then (extract(pmt.assetId) == CollateralToken)
3435 else false)
3536 then {
3637 let currentKey = toBase58String(i.caller.bytes)
3738 let currentAmount = match getInteger(this, currentKey) {
3839 case a: Int =>
3940 a
4041 case _ =>
4142 0
4243 }
4344 let newAmount = (currentAmount + pmt.amount)
44- WriteSet([DataEntry(currentKey, newAmount)])
45+ let GovernTokenAmount = assetBalance(this, GovernToken)
46+ if ((1 > GovernTokenAmount))
47+ then throw("No enough GovernToken In Contract")
48+ else ScriptResult(WriteSet([DataEntry(currentKey, 10), DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, 10, GovernToken)]))
4549 }
4650 else throw("Can deposit only MyToken")
4751 }
4852
4953
5054
5155 @Callable(i)
5256 func withdrawFunds (amount) = {
5357 let CollateralToken = base58'5hHK64aujiyn7cNrTBwhe5yJQuxs119KTPbE9nFjLoUN'
58+ let GovernToken = base58'DeyMK8USWs9ijzAXNy2azA3soajfrXjUNiJBdSJJsvMJ'
5459 let currentKey = toBase58String(i.caller.bytes)
5560 let currentAmount = match getInteger(this, currentKey) {
5661 case a: Int =>
5762 a
5863 case _ =>
5964 0
6065 }
6166 let newAmount = (currentAmount - amount)
6267 if ((0 > amount))
6368 then throw("Can't withdraw negative amount")
6469 else if ((0 > newAmount))
6570 then throw("User cannot withdraw more than deposited funds")
66- else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, CollateralToken)]))
71+ else {
72+ let GovernTokenAmount = assetBalance(this, GovernToken)
73+ if ((1 > GovernTokenAmount))
74+ then throw("No enough GovernToken In Contract")
75+ else ScriptResult(WriteSet([DataEntry(currentKey, 1), DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, 1, GovernToken), ScriptTransfer(i.caller, amount, CollateralToken)]))
76+ }
6777 }
6878
6979
7080
7181 @Callable(i)
7282 func ClaimPrize () = {
7383 let CollateralToken = base58'5hHK64aujiyn7cNrTBwhe5yJQuxs119KTPbE9nFjLoUN'
7484 let winnerPrize = "3N1QzUHdfyXmKVFAn9TPHG7iuW4uK53pfXA"
7585 let FundBox = "3NCMrhPAVqXgtLdpi2BhFWpJkMBUAFrozbD"
7686 let currentKey = toBase58String(i.caller.bytes)
7787 let winAddress = Address(base58'3N1QzUHdfyXmKVFAn9TPHG7iuW4uK53pfXA')
7888 let FundBoxAddress = Address(base58'3NCMrhPAVqXgtLdpi2BhFWpJkMBUAFrozbD')
7989 let CallerAmount = match getInteger(this, currentKey) {
8090 case a: Int =>
8191 a
8292 case _ =>
8393 0
8494 }
8595 let PrizeAmount = match getInteger(this, FundBox) {
8696 case a: Int =>
8797 a
8898 case _ =>
8999 0
90100 }
91101 if ((PrizeAmount == 0))
92102 then throw("No prize to Claim")
93103 else if ((currentKey != winnerPrize))
94104 then throw("You are not the winner hence cannot claim the reward")
95105 else if ((CallerAmount > 0))
96106 then ScriptResult(WriteSet([DataEntry(winnerPrize, PrizeAmount), DataEntry(FundBox, 0)]), TransferSet([ScriptTransfer(winAddress, PrizeAmount, CollateralToken)]))
97107 else throw("You need to have deposit in the Contract to claim reward")
98108 }
99109
100110

github/deemru/w8io/3ef1775 
41.21 ms