tx · 5q7W59NKzU1Qb2N8QNCGKGgboATmGZohQXYpQ9vY2yYX

3PFq5vswexHUS15BXYaKMXtTDVhkUfPXoG2:  -0.00400000 Waves

2022.07.19 16:01 [3212217] smart account 3PFq5vswexHUS15BXYaKMXtTDVhkUfPXoG2 > SELF 0.00000000 Waves

{ "type": 13, "id": "5q7W59NKzU1Qb2N8QNCGKGgboATmGZohQXYpQ9vY2yYX", "fee": 400000, "feeAssetId": null, "timestamp": 1658235702726, "version": 2, "chainId": 87, "sender": "3PFq5vswexHUS15BXYaKMXtTDVhkUfPXoG2", "senderPublicKey": "BmLDfnwrA4DPL2GDx65UZGp28BgtnaZs2ioyo5Y17UK4", "proofs": [ "4cSMqNNAQUkZsTxrQPyauBN3FbT3Lh7QG3diBLbpjU5qGyPLYkmAH7BLm3pzuu33hcD2AbbNJVTXA9jNr3ttumtP" ], "script": "base64:BgIQCAISAwoBCBIAEgASAwoBAQ8BDHRyeUdldFN0cmluZwEDa2V5BAckbWF0Y2gwCQCdCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCdCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAEJZ2V0T3JhY2xlAAkBB0FkZHJlc3MBCQDZBAEJAQx0cnlHZXRTdHJpbmcBAhRzdGF0aWNfb3JhY2xlQWRkcmVzcwENZ2V0RWdnQXNzZXRJZAAJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACEXN0YXRpY19lZ2dBc3NldElkARJnZXRCYWJ5ZHVja0FkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBDHRyeUdldFN0cmluZwECFnN0YXRpY19iYWJ5RHVja0FkZHJlc3MBD2dldFRvdGFsQnVybktleQACFUJVUk5fVE9UQUxfQU1PVU5UX05FVwESZ2V0VG90YWxCdXJuS2V5T2xkAAIVQlVSTl9UT1RBTF9BTU9VTlRfT0xEAQ5nZXRMYXN0QnVybktleQACEEJVUk5fTEFTVF9BTU9VTlQBDmdldFVzZXJCdXJuS2V5AQdhZGRyZXNzCQCsAgIJAKwCAgIFQlVSTl8FB2FkZHJlc3MCC19BTU9VTlRfTkVXARFnZXRVc2VyQnVybktleU9sZAEHYWRkcmVzcwkArAICCQCsAgICBUJVUk5fBQdhZGRyZXNzAgtfQU1PVU5UX09MRAEUdG90YWxEdWNrbGluZ3NCdXJuZWQAAh5CVVJOX1RPVEFMX0FNT1VOVF9EVUNLTElOR19ORVcBF3RvdGFsRHVja2xpbmdzQnVybmVkT2xkAAIeQlVSTl9UT1RBTF9BTU9VTlRfRFVDS0xJTkdfT0xEARZnZXRVc2VyQnVybkR1Y2tsaW5nS2V5AQdhZGRyZXNzCQCsAgIJAKwCAgIFQlVSTl8FB2FkZHJlc3MCFF9BTU9VTlRfRFVDS0xJTkdfTkVXARlnZXRVc2VyQnVybkR1Y2tsaW5nS2V5T2xkAQdhZGRyZXNzCQCsAgIJAKwCAgIFQlVSTl8FB2FkZHJlc3MCFF9BTU9VTlRfRFVDS0xJTkdfT0xEBAFpAQ9jb25maWd1cmVPcmFjbGUBBm9yYWNsZQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCmFkbWluIG9ubHkJAMwIAgkBC1N0cmluZ0VudHJ5AgIUc3RhdGljX29yYWNsZUFkZHJlc3MFBm9yYWNsZQUDbmlsAWkBFGJ1cm5BdHRhY2hlZFBheW1lbnRzAAQIcGF5bWVudHMIBQFpCHBheW1lbnRzAwkBAiE9AgkAkAMBBQhwYXltZW50cwABCQACAQIvQkFQOiBQbGVhc2UgbWFrZSBzdXJlIHRvIGF0dGFjaCBvbmx5IDEgcGF5bWVudCEECnBheW1lbnRFZ2cJAQV2YWx1ZQEJAJEDAgUIcGF5bWVudHMAAAMJAAACCAUKcGF5bWVudEVnZwdhc3NldElkCQENZ2V0RWdnQXNzZXRJZAAJAAIBAhxCQVA6IFlvdSBjYW4gb25seSBidXJuICRFR0chBAZidXJuZXIJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyBAZhbW91bnQIBQpwYXltZW50RWdnBmFtb3VudAQRdG90YWxCdXJuVGlsbERhdGUJAQ10cnlHZXRJbnRlZ2VyAQkBD2dldFRvdGFsQnVybktleQAEF3RvdGFsQnVyblRpbGxEYXRlQnlVc2VyCQENdHJ5R2V0SW50ZWdlcgEJAQ5nZXRVc2VyQnVybktleQEFBmJ1cm5lcgkAzAgCCQEEQnVybgIJAQ1nZXRFZ2dBc3NldElkAAUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESZ2V0VG90YWxCdXJuS2V5T2xkAAURdG90YWxCdXJuVGlsbERhdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJARFnZXRVc2VyQnVybktleU9sZAEFBmJ1cm5lcgUXdG90YWxCdXJuVGlsbERhdGVCeVVzZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9nZXRUb3RhbEJ1cm5LZXkACQBkAgURdG90YWxCdXJuVGlsbERhdGUFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDmdldFVzZXJCdXJuS2V5AQUGYnVybmVyCQBkAgUXdG90YWxCdXJuVGlsbERhdGVCeVVzZXIFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDmdldExhc3RCdXJuS2V5AAUGYW1vdW50BQNuaWwBaQEMYnVybkR1Y2tsaW5nAAQIcGF5bWVudHMIBQFpCHBheW1lbnRzAwkBAiE9AgkAkAMBBQhwYXltZW50cwABCQACAQIvQkJEOiBQbGVhc2UgbWFrZSBzdXJlIHRvIGF0dGFjaCBvbmx5IDEgcGF5bWVudCEEB3BheW1lbnQJAQV2YWx1ZQEJAJEDAgUIcGF5bWVudHMAAAMJAQIhPQIIBQdwYXltZW50BmFtb3VudAABCQACAQIoQkJEOiBQbGVhc2UgbWFrZSBzdXJlIHRvIGF0dGFjaCB0aGUgTkZUIQMJAQIhPQIICQEFdmFsdWUBCQDsBwEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQGaXNzdWVyCQESZ2V0QmFieWR1Y2tBZGRyZXNzAAkAAgECGUJCRDogVGhpcyBpcyBubyBkdWNrbGluZyEEBmFtb3VudACAiXoEBmJ1cm5lcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIEEXRvdGFsQnVyblRpbGxEYXRlCQENdHJ5R2V0SW50ZWdlcgEJAQ9nZXRUb3RhbEJ1cm5LZXkABBd0b3RhbEJ1cm5UaWxsRGF0ZUJ5VXNlcgkBDXRyeUdldEludGVnZXIBCQEOZ2V0VXNlckJ1cm5LZXkBBQZidXJuZXIEE3RvdGFsRHVja2xpbmdCdXJuZWQJAQ10cnlHZXRJbnRlZ2VyAQkBFHRvdGFsRHVja2xpbmdzQnVybmVkAAQZdG90YWxEdWNrbGluZ0J1cm5lZEJ5VXNlcgkBDXRyeUdldEludGVnZXIBCQEWZ2V0VXNlckJ1cm5EdWNrbGluZ0tleQEFBmJ1cm5lcgkAzAgCCQEEQnVybgIJAQ1nZXRFZ2dBc3NldElkAAUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESZ2V0VG90YWxCdXJuS2V5T2xkAAURdG90YWxCdXJuVGlsbERhdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJARFnZXRVc2VyQnVybktleU9sZAEFBmJ1cm5lcgUXdG90YWxCdXJuVGlsbERhdGVCeVVzZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJARd0b3RhbER1Y2tsaW5nc0J1cm5lZE9sZAAFE3RvdGFsRHVja2xpbmdCdXJuZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARlnZXRVc2VyQnVybkR1Y2tsaW5nS2V5T2xkAQUGYnVybmVyBRl0b3RhbER1Y2tsaW5nQnVybmVkQnlVc2VyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPZ2V0VG90YWxCdXJuS2V5AAkAZAIFEXRvdGFsQnVyblRpbGxEYXRlBQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5nZXRVc2VyQnVybktleQEFBmJ1cm5lcgkAZAIFF3RvdGFsQnVyblRpbGxEYXRlQnlVc2VyBQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJARR0b3RhbER1Y2tsaW5nc0J1cm5lZAAFE3RvdGFsRHVja2xpbmdCdXJuZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARZnZXRVc2VyQnVybkR1Y2tsaW5nS2V5AQUGYnVybmVyBRl0b3RhbER1Y2tsaW5nQnVybmVkQnlVc2VyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOZ2V0TGFzdEJ1cm5LZXkABQZhbW91bnQFA25pbAFpAQxidXJuQnlJbnZva2UBBmFtb3VudAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECGEJCSTogQWRtaW4gZmVhdHVyZSBvbmx5IQQGYnVybmVyCQClCAEIBQFpDG9yaWdpbkNhbGxlcgQRdG90YWxCdXJuVGlsbERhdGUJAQ10cnlHZXRJbnRlZ2VyAQkBD2dldFRvdGFsQnVybktleQAEF3RvdGFsQnVyblRpbGxEYXRlQnlVc2VyCQENdHJ5R2V0SW50ZWdlcgEJAQ5nZXRVc2VyQnVybktleQEFBmJ1cm5lcgkAzAgCCQEEQnVybgIJAQ1nZXRFZ2dBc3NldElkAAUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESZ2V0VG90YWxCdXJuS2V5T2xkAAURdG90YWxCdXJuVGlsbERhdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJARFnZXRVc2VyQnVybktleU9sZAEFBmJ1cm5lcgUXdG90YWxCdXJuVGlsbERhdGVCeVVzZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9nZXRUb3RhbEJ1cm5LZXkACQBkAgURdG90YWxCdXJuVGlsbERhdGUFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDmdldFVzZXJCdXJuS2V5AQUGYnVybmVyCQBkAgUXdG90YWxCdXJuVGlsbERhdGVCeVVzZXIFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDmdldExhc3RCdXJuS2V5AAUGYW1vdW50BQNuaWwAk4w42Q==", "height": 3212217, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: HaayFGYivpxjFSsP9ZfALSqZy7wMrT3oabVPLgJnuWPK Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func tryGetString (key) = match getString(this, key) {
5+ case a: String =>
6+ a
7+ case _ =>
8+ ""
9+}
10+
11+
12+func tryGetInteger (key) = match getInteger(this, key) {
13+ case a: Int =>
14+ a
15+ case _ =>
16+ 0
17+}
18+
19+
20+func tryGetStringExternal (address,key) = match getString(address, key) {
21+ case a: String =>
22+ a
23+ case _ =>
24+ ""
25+}
26+
27+
28+func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
29+
30+
31+func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), "static_eggAssetId"))
32+
33+
34+func getBabyduckAddress () = Address(fromBase58String(tryGetString("static_babyDuckAddress")))
35+
36+
37+func getTotalBurnKey () = "BURN_TOTAL_AMOUNT_NEW"
38+
39+
40+func getTotalBurnKeyOld () = "BURN_TOTAL_AMOUNT_OLD"
41+
42+
43+func getLastBurnKey () = "BURN_LAST_AMOUNT"
44+
45+
46+func getUserBurnKey (address) = (("BURN_" + address) + "_AMOUNT_NEW")
47+
48+
49+func getUserBurnKeyOld (address) = (("BURN_" + address) + "_AMOUNT_OLD")
50+
51+
52+func totalDucklingsBurned () = "BURN_TOTAL_AMOUNT_DUCKLING_NEW"
53+
54+
55+func totalDucklingsBurnedOld () = "BURN_TOTAL_AMOUNT_DUCKLING_OLD"
56+
57+
58+func getUserBurnDucklingKey (address) = (("BURN_" + address) + "_AMOUNT_DUCKLING_NEW")
59+
60+
61+func getUserBurnDucklingKeyOld (address) = (("BURN_" + address) + "_AMOUNT_DUCKLING_OLD")
62+
63+
64+@Callable(i)
65+func configureOracle (oracle) = if ((i.caller != this))
66+ then throw("admin only")
67+ else [StringEntry("static_oracleAddress", oracle)]
68+
69+
70+
71+@Callable(i)
72+func burnAttachedPayments () = {
73+ let payments = i.payments
74+ if ((size(payments) != 1))
75+ then throw("BAP: Please make sure to attach only 1 payment!")
76+ else {
77+ let paymentEgg = value(payments[0])
78+ if ((paymentEgg.assetId == getEggAssetId()))
79+ then throw("BAP: You can only burn $EGG!")
80+ else {
81+ let burner = toString(i.originCaller)
82+ let amount = paymentEgg.amount
83+ let totalBurnTillDate = tryGetInteger(getTotalBurnKey())
84+ let totalBurnTillDateByUser = tryGetInteger(getUserBurnKey(burner))
85+[Burn(getEggAssetId(), amount), IntegerEntry(getTotalBurnKeyOld(), totalBurnTillDate), IntegerEntry(getUserBurnKeyOld(burner), totalBurnTillDateByUser), IntegerEntry(getTotalBurnKey(), (totalBurnTillDate + amount)), IntegerEntry(getUserBurnKey(burner), (totalBurnTillDateByUser + amount)), IntegerEntry(getLastBurnKey(), amount)]
86+ }
87+ }
88+ }
89+
90+
91+
92+@Callable(i)
93+func burnDuckling () = {
94+ let payments = i.payments
95+ if ((size(payments) != 1))
96+ then throw("BBD: Please make sure to attach only 1 payment!")
97+ else {
98+ let payment = value(payments[0])
99+ if ((payment.amount != 1))
100+ then throw("BBD: Please make sure to attach the NFT!")
101+ else if ((value(assetInfo(value(payment.assetId))).issuer != getBabyduckAddress()))
102+ then throw("BBD: This is no duckling!")
103+ else {
104+ let amount = 2000000
105+ let burner = toString(i.originCaller)
106+ let totalBurnTillDate = tryGetInteger(getTotalBurnKey())
107+ let totalBurnTillDateByUser = tryGetInteger(getUserBurnKey(burner))
108+ let totalDucklingBurned = tryGetInteger(totalDucklingsBurned())
109+ let totalDucklingBurnedByUser = tryGetInteger(getUserBurnDucklingKey(burner))
110+[Burn(getEggAssetId(), amount), IntegerEntry(getTotalBurnKeyOld(), totalBurnTillDate), IntegerEntry(getUserBurnKeyOld(burner), totalBurnTillDateByUser), IntegerEntry(totalDucklingsBurnedOld(), totalDucklingBurned), IntegerEntry(getUserBurnDucklingKeyOld(burner), totalDucklingBurnedByUser), IntegerEntry(getTotalBurnKey(), (totalBurnTillDate + amount)), IntegerEntry(getUserBurnKey(burner), (totalBurnTillDateByUser + amount)), IntegerEntry(totalDucklingsBurned(), totalDucklingBurned), IntegerEntry(getUserBurnDucklingKey(burner), totalDucklingBurnedByUser), IntegerEntry(getLastBurnKey(), amount)]
111+ }
112+ }
113+ }
114+
115+
116+
117+@Callable(i)
118+func burnByInvoke (amount) = if ((i.caller != this))
119+ then throw("BBI: Admin feature only!")
120+ else {
121+ let burner = toString(i.originCaller)
122+ let totalBurnTillDate = tryGetInteger(getTotalBurnKey())
123+ let totalBurnTillDateByUser = tryGetInteger(getUserBurnKey(burner))
124+[Burn(getEggAssetId(), amount), IntegerEntry(getTotalBurnKeyOld(), totalBurnTillDate), IntegerEntry(getUserBurnKeyOld(burner), totalBurnTillDateByUser), IntegerEntry(getTotalBurnKey(), (totalBurnTillDate + amount)), IntegerEntry(getUserBurnKey(burner), (totalBurnTillDateByUser + amount)), IntegerEntry(getLastBurnKey(), amount)]
125+ }
126+
127+

github/deemru/w8io/3ef1775 
21.42 ms