2023.03.09 13:33 [3547956] smart account 3P57np8oou9yBbg85Nk4FDYTC46exnTsQk1 > SELF 0.00000000 Waves

{ "type": 13, "id": "6M3KraL32VXtu9FWevsc9wRNvYmpEU7yaw8KMm8rmjVC", "fee": 1000000, "feeAssetId": null, "timestamp": 1678358015251, "version": 2, "chainId": 87, "sender": "3P57np8oou9yBbg85Nk4FDYTC46exnTsQk1", "senderPublicKey": "9aYt9YfVbbAXjN9X2s857yfvP1JzrvL27zzn6ioPrUcG", "proofs": [ "2maCKukAPqdSViXEGp5sfPxN8RVU21KiYxLpPPSkuKZVFB8dbuxQC6xK7jNtrBzfxeEwZeGe5LXji4JBbnpGYJN1" ], "script": "base64:BgIQCAISAwoBCBIAEgASAwoBARMBDHRyeUdldFN0cmluZwEDa2V5BAckbWF0Y2gwCQCdCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCdCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAEJZ2V0T3JhY2xlAAkBB0FkZHJlc3MBCQDZBAEJAQx0cnlHZXRTdHJpbmcBAhRzdGF0aWNfb3JhY2xlQWRkcmVzcwENZ2V0RWdnQXNzZXRJZAAJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACEXN0YXRpY19lZ2dBc3NldElkARJnZXRCYWJ5ZHVja0FkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACFnN0YXRpY19iYWJ5RHVja0FkZHJlc3MBEWdldENvdXBvbnNBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUAAhVzdGF0aWNfY291cG9uc0FkZHJlc3MBD2dldFRvdGFsQnVybktleQACFUJVUk5fVE9UQUxfQU1PVU5UX05FVwESZ2V0VG90YWxCdXJuS2V5T2xkAAIVQlVSTl9UT1RBTF9BTU9VTlRfT0xEAQ5nZXRMYXN0QnVybktleQACEEJVUk5fTEFTVF9BTU9VTlQBDmdldFVzZXJCdXJuS2V5AQdhZGRyZXNzCQCsAgIJAKwCAgIFQlVSTl8FB2FkZHJlc3MCC19BTU9VTlRfTkVXARFnZXRVc2VyQnVybktleU9sZAEHYWRkcmVzcwkArAICCQCsAgICBUJVUk5fBQdhZGRyZXNzAgtfQU1PVU5UX09MRAENZ2V0QnVybkJ5RGFwcAEHYWRkcmVzcwkArAICCQCsAgICCkJVUk5fREFQUF8FB2FkZHJlc3MCB19BTU9VTlQBFHRvdGFsRHVja2xpbmdzQnVybmVkAAIeQlVSTl9UT1RBTF9BTU9VTlRfRFVDS0xJTkdfTkVXARd0b3RhbER1Y2tsaW5nc0J1cm5lZE9sZAACHkJVUk5fVE9UQUxfQU1PVU5UX0RVQ0tMSU5HX09MRAEWZ2V0VXNlckJ1cm5EdWNrbGluZ0tleQEHYWRkcmVzcwkArAICCQCsAgICBUJVUk5fBQdhZGRyZXNzAhRfQU1PVU5UX0RVQ0tMSU5HX05FVwEZZ2V0VXNlckJ1cm5EdWNrbGluZ0tleU9sZAEHYWRkcmVzcwkArAICCQCsAgICBUJVUk5fBQdhZGRyZXNzAhRfQU1PVU5UX0RVQ0tMSU5HX09MRAEHZ2V0Qm9vbAEDa2V5BAckbWF0Y2gwCQCbCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFiBQckbWF0Y2gwBQFiBwEJaXNUZXN0RW52AAkBB2dldEJvb2wBAgdURVNURU5WBAFpAQ9jb25maWd1cmVPcmFjbGUBBm9yYWNsZQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCmFkbWluIG9ubHkJAMwIAgkBC1N0cmluZ0VudHJ5AgIUc3RhdGljX29yYWNsZUFkZHJlc3MFBm9yYWNsZQUDbmlsAWkBFGJ1cm5BdHRhY2hlZFBheW1lbnRzAAQIcGF5bWVudHMIBQFpCHBheW1lbnRzAwkBAiE9AgkAkAMBBQhwYXltZW50cwABCQACAQIvQkFQOiBQbGVhc2UgbWFrZSBzdXJlIHRvIGF0dGFjaCBvbmx5IDEgcGF5bWVudCEECnBheW1lbnRFZ2cJAQV2YWx1ZQEJAJEDAgUIcGF5bWVudHMAAAMJAQIhPQIIBQpwYXltZW50RWdnB2Fzc2V0SWQJAQ1nZXRFZ2dBc3NldElkAAkAAgECHEJBUDogWW91IGNhbiBvbmx5IGJ1cm4gJEVHRyEEBmJ1cm5lcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIEBmFtb3VudAgFCnBheW1lbnRFZ2cGYW1vdW50BBF0b3RhbEJ1cm5UaWxsRGF0ZQkBDXRyeUdldEludGVnZXIBCQEPZ2V0VG90YWxCdXJuS2V5AAQXdG90YWxCdXJuVGlsbERhdGVCeVVzZXIJAQ10cnlHZXRJbnRlZ2VyAQkBDmdldFVzZXJCdXJuS2V5AQUGYnVybmVyBApidXJuQnlEYXBwCQENdHJ5R2V0SW50ZWdlcgEJAQ1nZXRCdXJuQnlEYXBwAQkApQgBCAUBaQZjYWxsZXIJAMwIAgkBBEJ1cm4CCQENZ2V0RWdnQXNzZXRJZAAFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmdldFRvdGFsQnVybktleU9sZAAFEXRvdGFsQnVyblRpbGxEYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERZ2V0VXNlckJ1cm5LZXlPbGQBBQZidXJuZXIFF3RvdGFsQnVyblRpbGxEYXRlQnlVc2VyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPZ2V0VG90YWxCdXJuS2V5AAkAZAIFEXRvdGFsQnVyblRpbGxEYXRlBQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5nZXRVc2VyQnVybktleQEFBmJ1cm5lcgkAZAIFF3RvdGFsQnVyblRpbGxEYXRlQnlVc2VyBQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5nZXRMYXN0QnVybktleQAFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWdldEJ1cm5CeURhcHABCQClCAEIBQFpBmNhbGxlcgkAZAIFCmJ1cm5CeURhcHAFBmFtb3VudAUDbmlsAWkBDGJ1cm5EdWNrbGluZwAECHBheW1lbnRzCAUBaQhwYXltZW50cwMJAQIhPQIJAJADAQUIcGF5bWVudHMAAQkAAgECL0JCRDogUGxlYXNlIG1ha2Ugc3VyZSB0byBhdHRhY2ggb25seSAxIHBheW1lbnQhBAdwYXltZW50CQEFdmFsdWUBCQCRAwIFCHBheW1lbnRzAAADCQECIT0CCAUHcGF5bWVudAZhbW91bnQAAQkAAgECKEJCRDogUGxlYXNlIG1ha2Ugc3VyZSB0byBhdHRhY2ggdGhlIE5GVCEDCQECIT0CCAkBBXZhbHVlAQkA7AcBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkBmlzc3VlcgkBEmdldEJhYnlkdWNrQWRkcmVzcwAJAAIBAhlCQkQ6IFRoaXMgaXMgbm8gZHVja2xpbmchBAZhbW91bnQAgIl6BAZidXJuZXIJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyBBF0b3RhbEJ1cm5UaWxsRGF0ZQkBDXRyeUdldEludGVnZXIBCQEPZ2V0VG90YWxCdXJuS2V5AAQXdG90YWxCdXJuVGlsbERhdGVCeVVzZXIJAQ10cnlHZXRJbnRlZ2VyAQkBDmdldFVzZXJCdXJuS2V5AQUGYnVybmVyBBN0b3RhbER1Y2tsaW5nQnVybmVkCQENdHJ5R2V0SW50ZWdlcgEJARR0b3RhbER1Y2tsaW5nc0J1cm5lZAAEGXRvdGFsRHVja2xpbmdCdXJuZWRCeVVzZXIJAQ10cnlHZXRJbnRlZ2VyAQkBFmdldFVzZXJCdXJuRHVja2xpbmdLZXkBBQZidXJuZXIJAMwIAgkBBEJ1cm4CCQENZ2V0RWdnQXNzZXRJZAAFBmFtb3VudAkAzAgCCQEEQnVybgIJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQIBQdwYXltZW50BmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmdldFRvdGFsQnVybktleU9sZAAFEXRvdGFsQnVyblRpbGxEYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERZ2V0VXNlckJ1cm5LZXlPbGQBBQZidXJuZXIFF3RvdGFsQnVyblRpbGxEYXRlQnlVc2VyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEXdG90YWxEdWNrbGluZ3NCdXJuZWRPbGQABRN0b3RhbER1Y2tsaW5nQnVybmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEZZ2V0VXNlckJ1cm5EdWNrbGluZ0tleU9sZAEFBmJ1cm5lcgUZdG90YWxEdWNrbGluZ0J1cm5lZEJ5VXNlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2dldFRvdGFsQnVybktleQAJAGQCBRF0b3RhbEJ1cm5UaWxsRGF0ZQUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOZ2V0VXNlckJ1cm5LZXkBBQZidXJuZXIJAGQCBRd0b3RhbEJ1cm5UaWxsRGF0ZUJ5VXNlcgUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUdG90YWxEdWNrbGluZ3NCdXJuZWQABRN0b3RhbER1Y2tsaW5nQnVybmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWZ2V0VXNlckJ1cm5EdWNrbGluZ0tleQEFBmJ1cm5lcgUZdG90YWxEdWNrbGluZ0J1cm5lZEJ5VXNlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDmdldExhc3RCdXJuS2V5AAUGYW1vdW50BQNuaWwBaQEMYnVybkJ5SW52b2tlAQZhbW91bnQDAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQECIT0CCAUBaQZjYWxsZXIJARFnZXRDb3Vwb25zQWRkcmVzcwAHCQACAQIYQkJJOiBBZG1pbiBmZWF0dXJlIG9ubHkhBAZidXJuZXIJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyBBF0b3RhbEJ1cm5UaWxsRGF0ZQkBDXRyeUdldEludGVnZXIBCQEPZ2V0VG90YWxCdXJuS2V5AAQXdG90YWxCdXJuVGlsbERhdGVCeVVzZXIJAQ10cnlHZXRJbnRlZ2VyAQkBDmdldFVzZXJCdXJuS2V5AQUGYnVybmVyBApidXJuQnlEYXBwCQENdHJ5R2V0SW50ZWdlcgEJAQ1nZXRCdXJuQnlEYXBwAQkApQgBCAUBaQZjYWxsZXIJAMwIAgkBBEJ1cm4CCQENZ2V0RWdnQXNzZXRJZAAFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmdldFRvdGFsQnVybktleU9sZAAFEXRvdGFsQnVyblRpbGxEYXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERZ2V0VXNlckJ1cm5LZXlPbGQBBQZidXJuZXIFF3RvdGFsQnVyblRpbGxEYXRlQnlVc2VyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPZ2V0VG90YWxCdXJuS2V5AAkAZAIFEXRvdGFsQnVyblRpbGxEYXRlBQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5nZXRVc2VyQnVybktleQEFBmJ1cm5lcgkAZAIFF3RvdGFsQnVyblRpbGxEYXRlQnlVc2VyBQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5nZXRMYXN0QnVybktleQAFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWdldEJ1cm5CeURhcHABCQClCAEIBQFpBmNhbGxlcgkAZAIFCmJ1cm5CeURhcHAFBmFtb3VudAUDbmlsAQJ0eAEGdmVyaWZ5AAMJAQlpc1Rlc3RFbnYACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5BAlmaXJzdFVzZXIBIN7WxlHkUxbQZYDrAZoqC9D3l1H6HHaRfpuOBkN3F70lBApzZWNvbmRVc2VyASDBbN+O7dONc4+Lovn6iQ/0dc1EG1RyUqO0nNJWpC3gdQQJdGhpcmRVc2VyASDnW/SOqtL5SZ5uhCa4+X4f3GeofdwruNTqe83yaArBJQQPZmlyc3RVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUJZmlyc3RVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQlmaXJzdFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFCWZpcnN0VXNlcgABAAAEEHNlY29uZFVzZXJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQpzZWNvbmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQpzZWNvbmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQpzZWNvbmRVc2VyAAEAAAQPdGhpcmRVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUJdGhpcmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQl0aGlyZFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFCXRoaXJkVXNlcgABAAAED3NpZ25hdHVyZXNDb3VudAkAZAIJAGQCBQ9maXJzdFVzZXJTaWduZWQFEHNlY29uZFVzZXJTaWduZWQFD3RoaXJkVXNlclNpZ25lZAQHJG1hdGNoMAUCdHgJAGcCBQ9zaWduYXR1cmVzQ291bnQAAhMbvBw=", "height": 3547956, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6HEjNnqEfmSPw1mvxz8VmbGjuEh4B9hNKbENhs3bTjgp Next: 2YeiF8o7erQfVhVkY2EP8E2UECT9wB5LUKZJ4LcfVHUD Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetString (key) = match getString(this, key) {
55 case a: String =>
66 a
77 case _ =>
88 ""
99 }
1010
1111
1212 func tryGetInteger (key) = match getInteger(this, key) {
1313 case a: Int =>
1414 a
1515 case _ =>
1616 0
1717 }
1818
1919
2020 func tryGetStringExternal (address,key) = match getString(address, key) {
2121 case a: String =>
2222 a
2323 case _ =>
2424 ""
2525 }
2626
2727
2828 func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
2929
3030
3131 func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), "static_eggAssetId"))
3232
3333
3434 func getBabyduckAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_babyDuckAddress")))
3535
3636
3737 func getCouponsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_couponsAddress")))
3838
3939
4040 func getTotalBurnKey () = "BURN_TOTAL_AMOUNT_NEW"
4141
4242
4343 func getTotalBurnKeyOld () = "BURN_TOTAL_AMOUNT_OLD"
4444
4545
4646 func getLastBurnKey () = "BURN_LAST_AMOUNT"
4747
4848
4949 func getUserBurnKey (address) = (("BURN_" + address) + "_AMOUNT_NEW")
5050
5151
5252 func getUserBurnKeyOld (address) = (("BURN_" + address) + "_AMOUNT_OLD")
5353
5454
5555 func getBurnByDapp (address) = (("BURN_DAPP_" + address) + "_AMOUNT")
5656
5757
5858 func totalDucklingsBurned () = "BURN_TOTAL_AMOUNT_DUCKLING_NEW"
5959
6060
6161 func totalDucklingsBurnedOld () = "BURN_TOTAL_AMOUNT_DUCKLING_OLD"
6262
6363
6464 func getUserBurnDucklingKey (address) = (("BURN_" + address) + "_AMOUNT_DUCKLING_NEW")
6565
6666
6767 func getUserBurnDucklingKeyOld (address) = (("BURN_" + address) + "_AMOUNT_DUCKLING_OLD")
6868
6969
7070 func getBool (key) = match getBoolean(this, key) {
7171 case b: Boolean =>
7272 b
7373 case _ =>
7474 false
7575 }
7676
7777
7878 func isTestEnv () = getBool("TESTENV")
7979
8080
8181 @Callable(i)
8282 func configureOracle (oracle) = if ((i.caller != this))
8383 then throw("admin only")
8484 else [StringEntry("static_oracleAddress", oracle)]
8585
8686
8787
8888 @Callable(i)
8989 func burnAttachedPayments () = {
9090 let payments = i.payments
9191 if ((size(payments) != 1))
9292 then throw("BAP: Please make sure to attach only 1 payment!")
9393 else {
9494 let paymentEgg = value(payments[0])
9595 if ((paymentEgg.assetId != getEggAssetId()))
9696 then throw("BAP: You can only burn $EGG!")
9797 else {
9898 let burner = toString(i.originCaller)
9999 let amount = paymentEgg.amount
100100 let totalBurnTillDate = tryGetInteger(getTotalBurnKey())
101101 let totalBurnTillDateByUser = tryGetInteger(getUserBurnKey(burner))
102102 let burnByDapp = tryGetInteger(getBurnByDapp(toString(i.caller)))
103103 [Burn(getEggAssetId(), amount), IntegerEntry(getTotalBurnKeyOld(), totalBurnTillDate), IntegerEntry(getUserBurnKeyOld(burner), totalBurnTillDateByUser), IntegerEntry(getTotalBurnKey(), (totalBurnTillDate + amount)), IntegerEntry(getUserBurnKey(burner), (totalBurnTillDateByUser + amount)), IntegerEntry(getLastBurnKey(), amount), IntegerEntry(getBurnByDapp(toString(i.caller)), (burnByDapp + amount))]
104104 }
105105 }
106106 }
107107
108108
109109
110110 @Callable(i)
111111 func burnDuckling () = {
112112 let payments = i.payments
113113 if ((size(payments) != 1))
114114 then throw("BBD: Please make sure to attach only 1 payment!")
115115 else {
116116 let payment = value(payments[0])
117117 if ((payment.amount != 1))
118118 then throw("BBD: Please make sure to attach the NFT!")
119119 else if ((value(assetInfo(value(payment.assetId))).issuer != getBabyduckAddress()))
120120 then throw("BBD: This is no duckling!")
121121 else {
122122 let amount = 2000000
123123 let burner = toString(i.originCaller)
124124 let totalBurnTillDate = tryGetInteger(getTotalBurnKey())
125125 let totalBurnTillDateByUser = tryGetInteger(getUserBurnKey(burner))
126126 let totalDucklingBurned = tryGetInteger(totalDucklingsBurned())
127127 let totalDucklingBurnedByUser = tryGetInteger(getUserBurnDucklingKey(burner))
128128 [Burn(getEggAssetId(), amount), Burn(value(payment.assetId), payment.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)]
129129 }
130130 }
131131 }
132132
133133
134134
135135 @Callable(i)
136136 func burnByInvoke (amount) = if (if ((i.caller != this))
137137 then (i.caller != getCouponsAddress())
138138 else false)
139139 then throw("BBI: Admin feature only!")
140140 else {
141141 let burner = toString(i.originCaller)
142142 let totalBurnTillDate = tryGetInteger(getTotalBurnKey())
143143 let totalBurnTillDateByUser = tryGetInteger(getUserBurnKey(burner))
144144 let burnByDapp = tryGetInteger(getBurnByDapp(toString(i.caller)))
145145 [Burn(getEggAssetId(), amount), IntegerEntry(getTotalBurnKeyOld(), totalBurnTillDate), IntegerEntry(getUserBurnKeyOld(burner), totalBurnTillDateByUser), IntegerEntry(getTotalBurnKey(), (totalBurnTillDate + amount)), IntegerEntry(getUserBurnKey(burner), (totalBurnTillDateByUser + amount)), IntegerEntry(getLastBurnKey(), amount), IntegerEntry(getBurnByDapp(toString(i.caller)), (burnByDapp + amount))]
146146 }
147147
148148
149149 @Verifier(tx)
150150 func verify () = if (isTestEnv())
151151 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
152152 else {
153153 let firstUser = base58'FzsTVRXqD46KW5yj6qGNVrsouvWjpCQvD1446A96iGt4'
154154 let secondUser = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
155155 let thirdUser = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
156156 let firstUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], firstUser))
157157 then 1
158158 else if (sigVerify(tx.bodyBytes, tx.proofs[1], firstUser))
159159 then 1
160160 else if (sigVerify(tx.bodyBytes, tx.proofs[2], firstUser))
161161 then 1
162162 else 0
163163 let secondUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], secondUser))
164164 then 1
165165 else if (sigVerify(tx.bodyBytes, tx.proofs[1], secondUser))
166166 then 1
167167 else if (sigVerify(tx.bodyBytes, tx.proofs[2], secondUser))
168168 then 1
169169 else 0
170170 let thirdUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], thirdUser))
171171 then 1
172172 else if (sigVerify(tx.bodyBytes, tx.proofs[1], thirdUser))
173173 then 1
174174 else if (sigVerify(tx.bodyBytes, tx.proofs[2], thirdUser))
175175 then 1
176176 else 0
177177 let signaturesCount = ((firstUserSigned + secondUserSigned) + thirdUserSigned)
178178 match tx {
179179 case _ =>
180180 (signaturesCount >= 2)
181181 }
182182 }
183183

github/deemru/w8io/786bc32 
25.43 ms