tx · 8FASBu54pwbPHFsKgRvX8o2rAz2Ua1cdcVZoY89TZE7j

3P7aVqHv6fXkYuS4sRW2K17ENZMsbXi3sPV:  -0.01400000 Waves

2022.06.01 14:57 [3142761] smart account 3P7aVqHv6fXkYuS4sRW2K17ENZMsbXi3sPV > SELF 0.00000000 Waves

{ "type": 13, "id": "8FASBu54pwbPHFsKgRvX8o2rAz2Ua1cdcVZoY89TZE7j", "fee": 1400000, "feeAssetId": null, "timestamp": 1654084657425, "version": 2, "chainId": 87, "sender": "3P7aVqHv6fXkYuS4sRW2K17ENZMsbXi3sPV", "senderPublicKey": "5SevHzYFiymbFWe1GPt6nNYccPnfTbMft1DqZWfRH8GN", "proofs": [ "3KBEVPgsk7ZtjGJqAfbUBXTAGykwwW8dpVH6341XZmbRAc65YzUhg3rmo9Hszf3iQRWMdRRaqXe3gRUQX4mLXAf1" ], "script": "base64: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b25zCQAAZAAAAAIFAAAACmNvdXBvbnNPbGQFAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAGa2V5T2xkBQAAAApjb3Vwb25zT2xkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAANrZXkFAAAAB2NvdXBvbnMFAAAAA25pbAAAAAFpAQAAAAp1c2VDb3Vwb25zAAAAAQAAABFhbW91bnRUcnlpbmdUb1BheQQAAAAKaW52b2tpbmdTYwgFAAAAAWkAAAAGY2FsbGVyAwkAAGYAAAACAAAAAAAAAAAABQAAABFhbW91bnRUcnlpbmdUb1BheQkAAAIAAAABAgAAACpPbmx5IHBvc2l0aXZlIGFtb3VudCBvZiBtb25leSBjYW4gYmUgcGFpZCEDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAA9zY0NhblVzZUNvdXBvbnMFAAAACmludm9raW5nU2MJAAACAAAAAQIAAAA4T25seSBjZXJ0YWluIHNtYXJ0IGNvbnRyYWN0cyBjYW4gdXNlIHRoaXMgY291cG9uIG1vZHVsZSEEAAAABHVzZXIJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyBAAAAAlrZXlBY3RpdmUJAQAAABFjb3Vwb25zVXNlckFjdGl2ZQAAAAEFAAAABHVzZXIEAAAAEGF2YWlsYWJsZUNvdXBvbnMJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAJa2V5QWN0aXZlBAAAAAlsZWZ0VG9QYXkDCQAAZgAAAAIFAAAAEWFtb3VudFRyeWluZ1RvUGF5BQAAABBhdmFpbGFibGVDb3Vwb25zCQAAZQAAAAIFAAAAEWFtb3VudFRyeWluZ1RvUGF5BQAAABBhdmFpbGFibGVDb3Vwb25zAAAAAAAAAAAABAAAAAphbW91bnRQYWlkCQAAZQAAAAIFAAAAEWFtb3VudFRyeWluZ1RvUGF5BQAAAAlsZWZ0VG9QYXkEAAAAFGF2YWlsYWJsZUNvdXBvbnNMZWZ0CQAAZQAAAAIFAAAAEGF2YWlsYWJsZUNvdXBvbnMFAAAACmFtb3VudFBhaWQEAAAACGtleVNwZW5kCQEAAAAQY291cG9uc1VzZXJTcGVuZAAAAAEFAAAABHVzZXIEAAAABmtleU9sZAkBAAAAFGNvdXBvbnNVc2VyQWN0aXZlT2xkAAAAAQUAAAAEdXNlcgQAAAAKdG90YWxTcGVuZAkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAACGtleVNwZW5kBQAAAAphbW91bnRQYWlkCQAFFAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACGtleVNwZW5kBQAAAAp0b3RhbFNwZW5kCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAZrZXlPbGQFAAAAEGF2YWlsYWJsZUNvdXBvbnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACWtleUFjdGl2ZQUAAAAUYXZhaWxhYmxlQ291cG9uc0xlZnQFAAAAA25pbAUAAAAKYW1vdW50UGFpZAAAAADbBvXA", "height": 3142761, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BCWH39pcW8uE3rKvHMrvdV6vboVwaQmKiKWBhkrXmnSA Next: 4Mmqdffx7PsEp4zZGxbg8Xa1wKoVPHf63q82kTV25MNT Diff:
OldNewDifferences
3535 func getGameDappAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_gameDappAddress")))
3636
3737
38-let scCanUseCoupons = [getRebirthAddress(), getIncubatorAddress(), getFarmingAddress()]
38+let scCanUseCoupons = [getRebirthAddress(), getIncubatorAddress(), getFarmingAddress(), getGameDappAddress()]
3939
4040 func couponsUserSpend (user) = (user + "_spend")
4141
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetStringExternal (address,key) = match getString(address, key) {
55 case a: String =>
66 a
77 case _ =>
88 ""
99 }
1010
1111
1212 func tryGetString (key) = tryGetStringExternal(this, key)
1313
1414
1515 func tryGetInteger (key) = match getInteger(this, key) {
1616 case b: Int =>
1717 b
1818 case _ =>
1919 0
2020 }
2121
2222
2323 func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
2424
2525
2626 func getRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_rebirthAddress")))
2727
2828
2929 func getIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_incubatorAddress")))
3030
3131
3232 func getFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_farmingAddress")))
3333
3434
3535 func getGameDappAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_gameDappAddress")))
3636
3737
38-let scCanUseCoupons = [getRebirthAddress(), getIncubatorAddress(), getFarmingAddress()]
38+let scCanUseCoupons = [getRebirthAddress(), getIncubatorAddress(), getFarmingAddress(), getGameDappAddress()]
3939
4040 func couponsUserSpend (user) = (user + "_spend")
4141
4242
4343 func couponsUserActive (user) = (user + "_active")
4444
4545
4646 func couponsUserActiveOld (user) = (couponsUserActive(user) + "_old")
4747
4848
4949 @Callable(i)
5050 func configureOracle (oracle) = if ((i.caller != this))
5151 then throw("admin only")
5252 else [StringEntry("static_oracleAddress", oracle)]
5353
5454
5555
5656 @Callable(i)
5757 func addCoupons (user,amount) = if ((i.caller != this))
5858 then throw("admin only")
5959 else {
6060 let keyOld = couponsUserActiveOld(user)
6161 let key = couponsUserActive(user)
6262 let couponsOld = tryGetInteger(key)
6363 let coupons = (couponsOld + amount)
6464 [IntegerEntry(keyOld, couponsOld), IntegerEntry(key, coupons)]
6565 }
6666
6767
6868
6969 @Callable(i)
7070 func useCoupons (amountTryingToPay) = {
7171 let invokingSc = i.caller
7272 if ((0 > amountTryingToPay))
7373 then throw("Only positive amount of money can be paid!")
7474 else if (!(containsElement(scCanUseCoupons, invokingSc)))
7575 then throw("Only certain smart contracts can use this coupon module!")
7676 else {
7777 let user = toString(i.originCaller)
7878 let keyActive = couponsUserActive(user)
7979 let availableCoupons = tryGetInteger(keyActive)
8080 let leftToPay = if ((amountTryingToPay > availableCoupons))
8181 then (amountTryingToPay - availableCoupons)
8282 else 0
8383 let amountPaid = (amountTryingToPay - leftToPay)
8484 let availableCouponsLeft = (availableCoupons - amountPaid)
8585 let keySpend = couponsUserSpend(user)
8686 let keyOld = couponsUserActiveOld(user)
8787 let totalSpend = (tryGetInteger(keySpend) + amountPaid)
8888 $Tuple2([IntegerEntry(keySpend, totalSpend), IntegerEntry(keyOld, availableCoupons), IntegerEntry(keyActive, availableCouponsLeft)], amountPaid)
8989 }
9090 }
9191
9292

github/deemru/w8io/3ef1775 
37.32 ms