tx · DnyYzkkRAsvcMKwEZy6nZVgz3Xn53iy4wgbnr6HdpaXz

3N8YkRZsgDVNAxtmwU1F65EpcYMb8f7QPos:  -0.01400000 Waves

2024.05.28 11:17 [3125578] smart account 3N8YkRZsgDVNAxtmwU1F65EpcYMb8f7QPos > SELF 0.00000000 Waves

{ "type": 13, "id": "DnyYzkkRAsvcMKwEZy6nZVgz3Xn53iy4wgbnr6HdpaXz", "fee": 1400000, "feeAssetId": null, "timestamp": 1716884291990, "version": 2, "chainId": 84, "sender": "3N8YkRZsgDVNAxtmwU1F65EpcYMb8f7QPos", "senderPublicKey": "F7SLwr7RYVQpyocmVScFC6ooaAwewaGq6wNRDYvyiPj1", "proofs": [ "392LG3VAjwoA3RNwEYXosvWBYDqacTid4WBABPVuC2923kj6R7USYnV6hiwtmya6Dbbu2svviWK6nrBCbR8GWPaX" ], "script": "base64:AAIFAAAAAAAAABIIAhIGCgQIGAgIEgQKAggIEgAAAAALAAAAABRwcmVkaWN0aW9uTWF4Q291bnRlcgAAAAAAAAAAAwAAAAAKbWF4Q291bnRlcgAAAAAAAAAABgAAAAANZGVmYXVsdFJhdGluZwAAAAAAAAAAZAAAAAAOcmF0ZUFkanVzdG1lbnQAAAAAAAAAABQAAAAAB3Rva2VuSWQBAAAAIG33eiemmz/8i1OVqeOeBVscIi9bTehRMFsBoQapAMYYAAAAAAxwYXlvdXRBbW91bnQAAAAAAAX14QAAAAAADHJhdGluZ0N1dG9mZgAAAAAAAAAAMgEAAAARc2VhcmNoRm9yQ291bnRlcnMAAAACAAAABml0ZW1JZAAAAAdjb3VudGVyBAAAABFzZWFyY2hGb3JDb3VudGVycwQAAAAHJG1hdGNoMAkABCIAAAABCQABLAAAAAIJAAEsAAAAAgUAAAAGaXRlbUlkAgAAAAFfCQABpAAAAAEFAAAAB2NvdW50ZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwIAAAAHTm8gVXNlcgUAAAARc2VhcmNoRm9yQ291bnRlcnMBAAAAD3NlYXJjaEZvclJhdGluZwAAAAEAAAAHYWRkcmVzcwQAAAAGcmF0aW5nBAAAAAckbWF0Y2gwCQAEHwAAAAEFAAAAB2FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABcgUAAAAHJG1hdGNoMAUAAAABcgUAAAANZGVmYXVsdFJhdGluZwUAAAAGcmF0aW5nAQAAABpzZWFyY2hGb3JBZGRyZXNzUHJlZGljdGlvbgAAAAIAAAAGaXRlbUlkAAAABmFkcmVzcwQAAAATc2VhcmNoRm9yUHJlZGljdGlvbgQAAAAHJG1hdGNoMAkABCIAAAABCQABLAAAAAIJAAEsAAAAAgUAAAAGaXRlbUlkAgAAAAFfBQAAAAZhZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwIAAAAJTm90IEZvdW5kBQAAABNzZWFyY2hGb3JQcmVkaWN0aW9uAQAAABZmaW5kUHJlZGljdGlvbkFkcmVzc2VzAAAAAgAAAAZpdGVtSWQAAAAHY291bnRlcgQAAAAKYWRyZXNzTGlzdAMJAABnAAAAAgUAAAAHY291bnRlcgAAAAAAAAAABQQAAAAHYWRyZXNzMQkBAAAAEXNlYXJjaEZvckNvdW50ZXJzAAAAAgUAAAAGaXRlbUlkAAAAAAAAAAABBAAAAAdhZHJlc3MyCQEAAAARc2VhcmNoRm9yQ291bnRlcnMAAAACBQAAAAZpdGVtSWQAAAAAAAAAAAIEAAAAB2FkcmVzczMJAQAAABFzZWFyY2hGb3JDb3VudGVycwAAAAIFAAAABml0ZW1JZAAAAAAAAAAAAwQAAAAHYWRyZXNzNAkBAAAAEXNlYXJjaEZvckNvdW50ZXJzAAAAAgUAAAAGaXRlbUlkAAAAAAAAAAAEBAAAAAdhZHJlc3M1CQEAAAARc2VhcmNoRm9yQ291bnRlcnMAAAACBQAAAAZpdGVtSWQAAAAAAAAAAAUJAARNAAAAAgkABE0AAAACCQAETQAAAAIJAARNAAAAAgkABE0AAAACBQAAAANuaWwFAAAAB2FkcmVzczEFAAAAB2FkcmVzczIFAAAAB2FkcmVzczMFAAAAB2FkcmVzczQFAAAAB2FkcmVzczUDCQAAZwAAAAIFAAAAB2NvdW50ZXIAAAAAAAAAAAQEAAAAB2FkcmVzczEJAQAAABFzZWFyY2hGb3JDb3VudGVycwAAAAIFAAAABml0ZW1JZAAAAAAAAAAAAQQAAAAHYWRyZXNzMgkBAAAAEXNlYXJjaEZvckNvdW50ZXJzAAAAAgUAAAAGaXRlbUlkAAAAAAAAAAACBAAAAAdhZHJlc3MzCQEAAAARc2VhcmNoRm9yQ291bnRlcnMAAAACBQAAAAZpdGVtSWQAAAAAAAAAAAMEAAAAB2FkcmVzczQJAQAAABFzZWFyY2hGb3JDb3VudGVycwAAAAIFAAAABml0ZW1JZAAAAAAAAAAABAkABE0AAAACCQAETQAAAAIJAARNAAAAAgkABE0AAAACBQAAAANuaWwFAAAAB2FkcmVzczEFAAAAB2FkcmVzczIFAAAAB2FkcmVzczMFAAAAB2FkcmVzczQDCQAAZwAAAAIFAAAAB2NvdW50ZXIAAAAAAAAAAAMEAAAAB2FkcmVzczEJAQAAABFzZWFyY2hGb3JDb3VudGVycwAAAAIFAAAABml0ZW1JZAAAAAAAAAAAAQQAAAAHYWRyZXNzMgkBAAAAEXNlYXJjaEZvckNvdW50ZXJzAAAAAgUAAAAGaXRlbUlkAAAAAAAAAAACBAAAAAdhZHJlc3MzCQEAAAARc2VhcmNoRm9yQ291bnRlcnMAAAACBQAAAAZpdGVtSWQAAAAAAAAAAAMJAARNAAAAAgkABE0AAAACCQAETQAAAAIFAAAAA25pbAUAAAAHYWRyZXNzMQUAAAAHYWRyZXNzMgUAAAAHYWRyZXNzMwMJAABnAAAAAgUAAAAHY291bnRlcgAAAAAAAAAAAgQAAAAHYWRyZXNzMQkBAAAAEXNlYXJjaEZvckNvdW50ZXJzAAAAAgUAAAAGaXRlbUlkAAAAAAAAAAABBAAAAAdhZHJlc3MyCQEAAAARc2VhcmNoRm9yQ291bnRlcnMAAAACBQAAAAZpdGVtSWQAAAAAAAAAAAIJAARNAAAAAgkABE0AAAACBQAAAANuaWwFAAAAB2FkcmVzczEFAAAAB2FkcmVzczIEAAAAB2FkcmVzczEJAQAAABFzZWFyY2hGb3JDb3VudGVycwAAAAIFAAAABml0ZW1JZAAAAAAAAAAAAQkABE0AAAACBQAAAANuaWwFAAAAB2FkcmVzczEFAAAACmFkcmVzc0xpc3QAAAADAAAAAWkBAAAAImFkanVzdFJhdGluZ3NBbmRQYXlvdXRQYXJ0aWNpcGFudHMAAAAEAAAABml0ZW1JZAAAAAthZGRyZXNzTGlzdAAAABFsYXN0Q2FsbGVyQWRkcmVzcwAAAA9maW5hbFByZWRpY3Rpb24EAAAABmNhbGxlcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIKAQAAABF1cGRhdGVSYXRpbmdzRnVuYwAAAAIAAAAFYWNjdW0AAAAHYWRkcmVzcwQAAAAGcmF0aW5nCQEAAAAPc2VhcmNoRm9yUmF0aW5nAAAAAQUAAAAHYWRkcmVzcwQAAAAKcHJlZGljdGlvbgkBAAAAGnNlYXJjaEZvckFkZHJlc3NQcmVkaWN0aW9uAAAAAgUAAAAGaXRlbUlkBQAAAAdhZGRyZXNzBAAAAA11cGRhdGVkUmF0aW5nAwkAAAAAAAACBQAAAApwcmVkaWN0aW9uBQAAAA9maW5hbFByZWRpY3Rpb24JAABkAAAAAgUAAAAGcmF0aW5nBQAAAA5yYXRlQWRqdXN0bWVudAkAAGUAAAACBQAAAAZyYXRpbmcFAAAADnJhdGVBZGp1c3RtZW50BAAAAAZwYXlvdXQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24FAAAAD2ZpbmFsUHJlZGljdGlvbgUAAAAMcGF5b3V0QW1vdW50AAAAAAAAAAAABAAAAA51cGRhdGVkRW50cmllcwkABE0AAAACBQAAAAVhY2N1bQkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAB2FkZHJlc3MFAAAADXVwZGF0ZWRSYXRpbmcDCQAAZgAAAAIFAAAABnBheW91dAAAAAAAAAAAAAkABE0AAAACBQAAAA51cGRhdGVkRW50cmllcwkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAAB2FkZHJlc3MFAAAABnBheW91dAUAAAAHdG9rZW5JZAUAAAAOdXBkYXRlZEVudHJpZXMEAAAADnVwZGF0ZWRSYXRpbmdzCgAAAAACJGwFAAAAC2FkZHJlc3NMaXN0CgAAAAACJHMJAAGQAAAAAQUAAAACJGwKAAAAAAUkYWNjMAUAAAADbmlsCgEAAAAFJGYwXzEAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQEAAAARdXBkYXRlUmF0aW5nc0Z1bmMAAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAUkZjBfMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZHMgNQkBAAAABSRmMF8yAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUJAARNAAAAAgkABE0AAAACBQAAAA51cGRhdGVkUmF0aW5ncwkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgUAAAAGaXRlbUlkAgAAAAlfYWRqdXN0ZWQGCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAVUZXN0MQUAAAAGY2FsbGVyAAAAAWkBAAAADnNhdmVQcmVkaWN0aW9uAAAAAgAAAAZpdGVtSWQAAAAKcHJlZGljdGlvbgQAAAAMY2xpZW50QWRyZXNzCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAANc2VhcmNoRm9yVXNlcgQAAAAHJG1hdGNoMAkABB8AAAABBQAAAAxjbGllbnRBZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwIAAAATVXNlciBkb2VzIG5vdCBleGlzdAMJAAAAAAAAAgUAAAANc2VhcmNoRm9yVXNlcgIAAAATVXNlciBkb2VzIG5vdCBleGlzdAkAAAIAAAABAgAAABNVc2VyIGRvZXMgbm90IGV4aXN0BAAAAAdpc0ZpbmFsBAAAAAckbWF0Y2gwCQAEIAAAAAEJAAEsAAAAAgUAAAAGaXRlbUlkAgAAAAZfZmluYWwDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMHAwUAAAAHaXNGaW5hbAkAAAIAAAABAgAAAB1GaW5hbCBwcmVkaWN0aW9uIGFscmVhZHkgbWFkZQQAAAAKaXNDYW5jZWxlZAQAAAAHJG1hdGNoMAkABCAAAAABCQABLAAAAAIFAAAABml0ZW1JZAIAAAAKX2NhbmNlbGxlZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwcDBQAAAAppc0NhbmNlbGVkCQAAAgAAAAECAAAAHUZpbmFsIHByZWRpY3Rpb24gYWxyZWFkeSBtYWRlBAAAAAxjbGllbnRSYXRpbmcJAQAAAA9zZWFyY2hGb3JSYXRpbmcAAAABBQAAAAxjbGllbnRBZHJlc3MDCQAAZwAAAAIFAAAADHJhdGluZ0N1dG9mZgUAAAAMY2xpZW50UmF0aW5nCQAAAgAAAAECAAAAKllvdSBhcmUgbm90IGFsbG93ZWQgdG8gcGFydGljaXBhdGUgYW55bW9yZQQAAAAQc2VhcmNoRm9yQ291bnRlcgQAAAAHJG1hdGNoMAkABB8AAAABCQABLAAAAAIFAAAABml0ZW1JZAIAAAAIX2NvdW50ZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwD//////////wMJAABnAAAAAgUAAAAQc2VhcmNoRm9yQ291bnRlcgAAAAAAAAAAAQQAAAAKYWRyZXNzTGlzdAkBAAAAFmZpbmRQcmVkaWN0aW9uQWRyZXNzZXMAAAACBQAAAAZpdGVtSWQFAAAAEHNlYXJjaEZvckNvdW50ZXIDCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAKYWRyZXNzTGlzdAUAAAAMY2xpZW50QWRyZXNzCQAAAgAAAAECAAAAI1RoaXMgVXNlciBhbHJlYWR5IGdhdmUgYSBQcmVkaWN0aW9uBAAAABFwcmVkaWN0aW9uQ291bnRlcgQAAAAHJG1hdGNoMAkABB8AAAABCQABLAAAAAIFAAAABml0ZW1JZAIAAAASX3ByZWRpY3Rpb25Db3VudGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMA//////////8EAAAAFGxhc3RQcmVkaWN0aW9uQWRyZXNzCQABkQAAAAIFAAAACmFkcmVzc0xpc3QJAABlAAAAAgkAAZAAAAABBQAAAAphZHJlc3NMaXN0AAAAAAAAAAABBAAAAA5sYXN0UHJlZGljdGlvbgQAAAAHJG1hdGNoMAkABCIAAAABCQABLAAAAAIJAAEsAAAAAgUAAAAGaXRlbUlkAgAAAAFfBQAAABRsYXN0UHJlZGljdGlvbkFkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzAgAAABNubyBQcmVkaWN0aW9uIEZvdW5kBAAAAApuZXdDb3VudGVyCQAAZAAAAAIFAAAAEHNlYXJjaEZvckNvdW50ZXIAAAAAAAAAAAEDCQAAAAAAAAIFAAAADmxhc3RQcmVkaWN0aW9uBQAAAApwcmVkaWN0aW9uAwkAAAAAAAACCQAAZAAAAAIFAAAAEXByZWRpY3Rpb25Db3VudGVyAAAAAAAAAAABBQAAABRwcmVkaWN0aW9uTWF4Q291bnRlcgQAAAASaW52b2tlQWRqdXN0UmF0aW5nCQAD/AAAAAQFAAAABHRoaXMCAAAAImFkanVzdFJhdGluZ3NBbmRQYXlvdXRQYXJ0aWNpcGFudHMJAARMAAAAAgUAAAAGaXRlbUlkCQAETAAAAAIFAAAACmFkcmVzc0xpc3QJAARMAAAAAgUAAAAMY2xpZW50QWRyZXNzCQAETAAAAAIFAAAACnByZWRpY3Rpb24FAAAAA25pbAUAAAADbmlsAwkBAAAAAiE9AAAAAgUAAAASaW52b2tlQWRqdXN0UmF0aW5nBQAAABJpbnZva2VBZGp1c3RSYXRpbmcJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAAAV8JAAGkAAAAAQUAAAAKbmV3Q291bnRlcgUAAAAMY2xpZW50QWRyZXNzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAAAV8FAAAADGNsaWVudEFkcmVzcwUAAAAKcHJlZGljdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAACF9jb3VudGVyBQAAAApuZXdDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABml0ZW1JZAIAAAASX3ByZWRpY3Rpb25Db3VudGVyCQAAZAAAAAIFAAAAEXByZWRpY3Rpb25Db3VudGVyAAAAAAAAAAABCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIFAAAABml0ZW1JZAIAAAAGX2ZpbmFsBgkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAACl9jYW5jZWxsZWQHCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAxjbGllbnRBZHJlc3MFAAAADHBheW91dEFtb3VudAUAAAAHdG9rZW5JZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMY2xpZW50QWRyZXNzCQAAZAAAAAIFAAAADGNsaWVudFJhdGluZwAAAAAAAAAAFAUAAAADbmlsCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAAAV8JAAGkAAAAAQUAAAAKbmV3Q291bnRlcgUAAAAMY2xpZW50QWRyZXNzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAAAV8FAAAADGNsaWVudEFkcmVzcwUAAAAKcHJlZGljdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAACF9jb3VudGVyBQAAAApuZXdDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABml0ZW1JZAIAAAASX3ByZWRpY3Rpb25Db3VudGVyCQAAZAAAAAIFAAAAEXByZWRpY3Rpb25Db3VudGVyAAAAAAAAAAABCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIFAAAABml0ZW1JZAIAAAAGX2ZpbmFsBwkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAACl9jYW5jZWxsZWQHBQAAAANuaWwDCQAAZwAAAAIFAAAACm5ld0NvdW50ZXIFAAAACm1heENvdW50ZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAABml0ZW1JZAIAAAABXwkAAaQAAAABBQAAAApuZXdDb3VudGVyBQAAAAxjbGllbnRBZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAABml0ZW1JZAIAAAABXwUAAAAMY2xpZW50QWRyZXNzBQAAAApwcmVkaWN0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABml0ZW1JZAIAAAAIX2NvdW50ZXIFAAAACm5ld0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAGaXRlbUlkAgAAABJfcHJlZGljdGlvbkNvdW50ZXIJAABlAAAAAgUAAAARcHJlZGljdGlvbkNvdW50ZXIAAAAAAAAAAAEJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgUAAAAGaXRlbUlkAgAAAApfY2FuY2VsbGVkBgkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAABl9maW5hbAcFAAAAA25pbAMJAAAAAAAAAgkAAGUAAAACBQAAABFwcmVkaWN0aW9uQ291bnRlcgAAAAAAAAAAAQAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAGaXRlbUlkAgAAAAFfCQABpAAAAAEFAAAACm5ld0NvdW50ZXIFAAAADGNsaWVudEFkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAGaXRlbUlkAgAAAAFfBQAAAAxjbGllbnRBZHJlc3MFAAAACnByZWRpY3Rpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAGaXRlbUlkAgAAAAhfY291bnRlcgUAAAAKbmV3Q291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAAEl9wcmVkaWN0aW9uQ291bnRlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAACl9jYW5jZWxsZWQHCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIFAAAABml0ZW1JZAIAAAAGX2ZpbmFsBwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAR0ZXN0BQAAAA5sYXN0UHJlZGljdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAFdGVzdDIJAAGQAAAAAQUAAAAKYWRyZXNzTGlzdAUAAAADbmlsCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAAAV8JAAGkAAAAAQUAAAAKbmV3Q291bnRlcgUAAAAMY2xpZW50QWRyZXNzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAAAV8FAAAADGNsaWVudEFkcmVzcwUAAAAKcHJlZGljdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAACF9jb3VudGVyBQAAAApuZXdDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABml0ZW1JZAIAAAASX3ByZWRpY3Rpb25Db3VudGVyCQAAZQAAAAIFAAAAEXByZWRpY3Rpb25Db3VudGVyAAAAAAAAAAABCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIFAAAABml0ZW1JZAIAAAAKX2NhbmNlbGxlZAcJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgUAAAAGaXRlbUlkAgAAAAZfZmluYWwHCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAABHRlc3QFAAAADmxhc3RQcmVkaWN0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAV0ZXN0MgkAAZAAAAABBQAAAAphZHJlc3NMaXN0BQAAAANuaWwEAAAAEHNlYXJjaEZvck5ld0l0ZW0EAAAAByRtYXRjaDAJAAQiAAAAAQkAASwAAAACAgAAAARuZXdfBQAAAAZpdGVtSWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwIAAAAOSXRlbSBub3QgRm91bmQDCQAAAAAAAAIFAAAAEHNlYXJjaEZvck5ld0l0ZW0CAAAADkl0ZW0gbm90IEZvdW5kCQAAAgAAAAECAAAADkl0ZW0gbm90IGZvdW5kCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAAAV8JAAGkAAAAAQAAAAAAAAAAAQUAAAAMY2xpZW50QWRyZXNzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAAAV8FAAAADGNsaWVudEFkcmVzcwUAAAAKcHJlZGljdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAZpdGVtSWQCAAAACF9jb3VudGVyAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABml0ZW1JZAIAAAASX3ByZWRpY3Rpb25Db3VudGVyAAAAAAAAAAABCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgIAAAAEbmV3XwUAAAAGaXRlbUlkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAIdXBkYXRlZF8FAAAABml0ZW1JZAUAAAAGaXRlbUlkBQAAAANuaWwAAAABaQEAAAAMcmVnaXN0ZXJVc2VyAAAAAAQAAAAMY2xpZW50QWRyZXNzCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAANc2VhcmNoRm9yVXNlcgQAAAAHJG1hdGNoMAkABB8AAAABBQAAAAxjbGllbnRBZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwD//////////wMJAQAAAAIhPQAAAAIFAAAADXNlYXJjaEZvclVzZXIA//////////8JAAACAAAAAQIAAAATVXNlciBhbHJlYWR5IGV4aXN0cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMY2xpZW50QWRyZXNzBQAAAA1kZWZhdWx0UmF0aW5nBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tlebSQahE=", "height": 3125578, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BYDqHfWL2ZtbyAjDWSeji468h9XirGuDAtq2tgmKZBw2 Next: 8GKfovNdPx94daFZHUpSV8YKdY2AmNHq2XXKvpzkh1eo Diff:
OldNewDifferences
8989
9090 @Callable(i)
9191 func adjustRatingsAndPayoutParticipants (itemId,addressList,lastCallerAddress,finalPrediction) = {
92+ let caller = toString(i.caller)
9293 func updateRatingsFunc (accum,address) = {
9394 let rating = searchForRating(address)
9495 let prediction = searchForAddressPrediction(itemId, address)
118119
119120 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
120121 }
121- (updatedRatings :+ BooleanEntry((itemId + "_adjusted"), true))
122+ ((updatedRatings :+ BooleanEntry((itemId + "_adjusted"), true)) :+ StringEntry("Test1", caller))
122123 }
123124
124125
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let predictionMaxCounter = 3
55
66 let maxCounter = 6
77
88 let defaultRating = 100
99
1010 let rateAdjustment = 20
1111
1212 let tokenId = base58'8QGJvsXqJ43q5ksFymoPKF1NWWhwUfr2F7h52oeWgVhH'
1313
1414 let payoutAmount = 100000000
1515
1616 let ratingCutoff = 50
1717
1818 func searchForCounters (itemId,counter) = {
1919 let searchForCounters = match getString(((itemId + "_") + toString(counter))) {
2020 case s: String =>
2121 s
2222 case _ =>
2323 "No User"
2424 }
2525 searchForCounters
2626 }
2727
2828
2929 func searchForRating (address) = {
3030 let rating = match getInteger(address) {
3131 case r: Int =>
3232 r
3333 case _ =>
3434 defaultRating
3535 }
3636 rating
3737 }
3838
3939
4040 func searchForAddressPrediction (itemId,adress) = {
4141 let searchForPrediction = match getString(((itemId + "_") + adress)) {
4242 case s: String =>
4343 s
4444 case _ =>
4545 "Not Found"
4646 }
4747 searchForPrediction
4848 }
4949
5050
5151 func findPredictionAdresses (itemId,counter) = {
5252 let adressList = if ((counter >= 5))
5353 then {
5454 let adress1 = searchForCounters(itemId, 1)
5555 let adress2 = searchForCounters(itemId, 2)
5656 let adress3 = searchForCounters(itemId, 3)
5757 let adress4 = searchForCounters(itemId, 4)
5858 let adress5 = searchForCounters(itemId, 5)
5959 (((((nil :+ adress1) :+ adress2) :+ adress3) :+ adress4) :+ adress5)
6060 }
6161 else if ((counter >= 4))
6262 then {
6363 let adress1 = searchForCounters(itemId, 1)
6464 let adress2 = searchForCounters(itemId, 2)
6565 let adress3 = searchForCounters(itemId, 3)
6666 let adress4 = searchForCounters(itemId, 4)
6767 ((((nil :+ adress1) :+ adress2) :+ adress3) :+ adress4)
6868 }
6969 else if ((counter >= 3))
7070 then {
7171 let adress1 = searchForCounters(itemId, 1)
7272 let adress2 = searchForCounters(itemId, 2)
7373 let adress3 = searchForCounters(itemId, 3)
7474 (((nil :+ adress1) :+ adress2) :+ adress3)
7575 }
7676 else if ((counter >= 2))
7777 then {
7878 let adress1 = searchForCounters(itemId, 1)
7979 let adress2 = searchForCounters(itemId, 2)
8080 ((nil :+ adress1) :+ adress2)
8181 }
8282 else {
8383 let adress1 = searchForCounters(itemId, 1)
8484 (nil :+ adress1)
8585 }
8686 adressList
8787 }
8888
8989
9090 @Callable(i)
9191 func adjustRatingsAndPayoutParticipants (itemId,addressList,lastCallerAddress,finalPrediction) = {
92+ let caller = toString(i.caller)
9293 func updateRatingsFunc (accum,address) = {
9394 let rating = searchForRating(address)
9495 let prediction = searchForAddressPrediction(itemId, address)
9596 let updatedRating = if ((prediction == finalPrediction))
9697 then (rating + rateAdjustment)
9798 else (rating - rateAdjustment)
9899 let payout = if ((prediction == finalPrediction))
99100 then payoutAmount
100101 else 0
101102 let updatedEntries = (accum :+ IntegerEntry(address, updatedRating))
102103 if ((payout > 0))
103104 then (updatedEntries :+ ScriptTransfer(Address(fromBase58String(address)), payout, tokenId))
104105 else updatedEntries
105106 }
106107
107108 let updatedRatings = {
108109 let $l = addressList
109110 let $s = size($l)
110111 let $acc0 = nil
111112 func $f0_1 ($a,$i) = if (($i >= $s))
112113 then $a
113114 else updateRatingsFunc($a, $l[$i])
114115
115116 func $f0_2 ($a,$i) = if (($i >= $s))
116117 then $a
117118 else throw("List size exceeds 5")
118119
119120 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
120121 }
121- (updatedRatings :+ BooleanEntry((itemId + "_adjusted"), true))
122+ ((updatedRatings :+ BooleanEntry((itemId + "_adjusted"), true)) :+ StringEntry("Test1", caller))
122123 }
123124
124125
125126
126127 @Callable(i)
127128 func savePrediction (itemId,prediction) = {
128129 let clientAdress = toString(i.caller)
129130 let searchForUser = match getInteger(clientAdress) {
130131 case s: Int =>
131132 s
132133 case _ =>
133134 "User does not exist"
134135 }
135136 if ((searchForUser == "User does not exist"))
136137 then throw("User does not exist")
137138 else {
138139 let isFinal = match getBoolean((itemId + "_final")) {
139140 case s: Boolean =>
140141 s
141142 case _ =>
142143 false
143144 }
144145 if (isFinal)
145146 then throw("Final prediction already made")
146147 else {
147148 let isCanceled = match getBoolean((itemId + "_cancelled")) {
148149 case s: Boolean =>
149150 s
150151 case _ =>
151152 false
152153 }
153154 if (isCanceled)
154155 then throw("Final prediction already made")
155156 else {
156157 let clientRating = searchForRating(clientAdress)
157158 if ((ratingCutoff >= clientRating))
158159 then throw("You are not allowed to participate anymore")
159160 else {
160161 let searchForCounter = match getInteger((itemId + "_counter")) {
161162 case s: Int =>
162163 s
163164 case _ =>
164165 -1
165166 }
166167 if ((searchForCounter >= 1))
167168 then {
168169 let adressList = findPredictionAdresses(itemId, searchForCounter)
169170 if (containsElement(adressList, clientAdress))
170171 then throw("This User already gave a Prediction")
171172 else {
172173 let predictionCounter = match getInteger((itemId + "_predictionCounter")) {
173174 case s: Int =>
174175 s
175176 case _ =>
176177 -1
177178 }
178179 let lastPredictionAdress = adressList[(size(adressList) - 1)]
179180 let lastPrediction = match getString(((itemId + "_") + lastPredictionAdress)) {
180181 case s: String =>
181182 s
182183 case _ =>
183184 "no Prediction Found"
184185 }
185186 let newCounter = (searchForCounter + 1)
186187 if ((lastPrediction == prediction))
187188 then if (((predictionCounter + 1) == predictionMaxCounter))
188189 then {
189190 let invokeAdjustRating = invoke(this, "adjustRatingsAndPayoutParticipants", [itemId, adressList, clientAdress, prediction], nil)
190191 if ((invokeAdjustRating != invokeAdjustRating))
191192 then throw("Strict value is not equal to itself.")
192193 else [StringEntry(((itemId + "_") + toString(newCounter)), clientAdress), StringEntry(((itemId + "_") + clientAdress), prediction), IntegerEntry((itemId + "_counter"), newCounter), IntegerEntry((itemId + "_predictionCounter"), (predictionCounter + 1)), BooleanEntry((itemId + "_final"), true), BooleanEntry((itemId + "_cancelled"), false), ScriptTransfer(Address(fromBase58String(clientAdress)), payoutAmount, tokenId), IntegerEntry(clientAdress, (clientRating + 20))]
193194 }
194195 else [StringEntry(((itemId + "_") + toString(newCounter)), clientAdress), StringEntry(((itemId + "_") + clientAdress), prediction), IntegerEntry((itemId + "_counter"), newCounter), IntegerEntry((itemId + "_predictionCounter"), (predictionCounter + 1)), BooleanEntry((itemId + "_final"), false), BooleanEntry((itemId + "_cancelled"), false)]
195196 else if ((newCounter >= maxCounter))
196197 then [StringEntry(((itemId + "_") + toString(newCounter)), clientAdress), StringEntry(((itemId + "_") + clientAdress), prediction), IntegerEntry((itemId + "_counter"), newCounter), IntegerEntry((itemId + "_predictionCounter"), (predictionCounter - 1)), BooleanEntry((itemId + "_cancelled"), true), BooleanEntry((itemId + "_final"), false)]
197198 else if (((predictionCounter - 1) == 0))
198199 then [StringEntry(((itemId + "_") + toString(newCounter)), clientAdress), StringEntry(((itemId + "_") + clientAdress), prediction), IntegerEntry((itemId + "_counter"), newCounter), IntegerEntry((itemId + "_predictionCounter"), 1), BooleanEntry((itemId + "_cancelled"), false), BooleanEntry((itemId + "_final"), false), StringEntry("test", lastPrediction), IntegerEntry("test2", size(adressList))]
199200 else [StringEntry(((itemId + "_") + toString(newCounter)), clientAdress), StringEntry(((itemId + "_") + clientAdress), prediction), IntegerEntry((itemId + "_counter"), newCounter), IntegerEntry((itemId + "_predictionCounter"), (predictionCounter - 1)), BooleanEntry((itemId + "_cancelled"), false), BooleanEntry((itemId + "_final"), false), StringEntry("test", lastPrediction), IntegerEntry("test2", size(adressList))]
200201 }
201202 }
202203 else {
203204 let searchForNewItem = match getString(("new_" + itemId)) {
204205 case s: String =>
205206 s
206207 case _ =>
207208 "Item not Found"
208209 }
209210 if ((searchForNewItem == "Item not Found"))
210211 then throw("Item not found")
211212 else [StringEntry(((itemId + "_") + toString(1)), clientAdress), StringEntry(((itemId + "_") + clientAdress), prediction), IntegerEntry((itemId + "_counter"), 1), IntegerEntry((itemId + "_predictionCounter"), 1), DeleteEntry(("new_" + itemId)), StringEntry(("updated_" + itemId), itemId)]
212213 }
213214 }
214215 }
215216 }
216217 }
217218 }
218219
219220
220221
221222 @Callable(i)
222223 func registerUser () = {
223224 let clientAdress = toString(i.caller)
224225 let searchForUser = match getInteger(clientAdress) {
225226 case s: Int =>
226227 s
227228 case _ =>
228229 -1
229230 }
230231 if ((searchForUser != -1))
231232 then throw("User already exists")
232233 else [IntegerEntry(clientAdress, defaultRating)]
233234 }
234235
235236
236237 @Verifier(tx)
237238 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
238239

github/deemru/w8io/169f3d6 
41.16 ms