tx · 45Bt8N9suyfqKfoLjzTtKbPAHvzkQ3u9FUH9MKos9dZH

3NBwZbvD45CscLGF78qTaDRBZ7mDBHt3Yib:  -0.01400000 Waves

2022.09.15 05:16 [2229602] smart account 3NBwZbvD45CscLGF78qTaDRBZ7mDBHt3Yib > SELF 0.00000000 Waves

{ "type": 13, "id": "45Bt8N9suyfqKfoLjzTtKbPAHvzkQ3u9FUH9MKos9dZH", "fee": 1400000, "feeAssetId": null, "timestamp": 1663208230453, "version": 2, "chainId": 84, "sender": "3NBwZbvD45CscLGF78qTaDRBZ7mDBHt3Yib", "senderPublicKey": "3q3N8Kv49DbzNHyTB4A87UYz2DdquXCgP3GNCcD9Zj66", "proofs": [ "24rHcxmtdW1E86nRyJgb1mCSzqX9wUidfSgebuCtATE5h18mHXq3vkCscHnXCo1KTGwh7M3pvWWKYHkPqghvVNCj" ], "script": "base64:BgJGCAISDQoLCAgICAgBCAgBAQQSBAoCCAgSBAoCCAESBAoCAQESAwoBBBIECgIICBIFCgMICAgSBAoCCAgSBAoCBAgSAwoBCD0AB3ZlcnNpb24CAzEuMAALQ09ORl9JTklUX0sCC2NvbmZpZ19pbml0AAtDT05GX0FNSU5fSwIMY29uZmlnX2FkbWluAA1DT05GX09SQUNMRV9LAg1jb25maWdfb3JhY2xlABNDT05GX0FSVFdPUktfREFQUF9LAhNjb25maWdfYXJ0d29ya19kYXBwABFDT05GX1VTRVJTX0RBUFBfSwIRY29uZmlnX3VzZXJzX2RhcHAAEENPTkZfRkVFX0FTU0VUX0sCEGNvbmZpZ19mZWVfYXNzZXQAEUNPTkZfRkVFX0FNT1VOVF9LAhFjb25maWdfZmVlX2Ftb3VudAAVQ09ORl9TV09QX1NJR05fREFQUF9LAhVjb25maWdfc3dvcF9zaWduX2RhcHAAFENPTkZfU1dPUF9FVEhfREFQUF9LAhRjb25maWdfc3dvcF9ldGhfZGFwcAAfQ09ORl9DT05GSVJNQVRJT05TX0ZST01fV0FWRVNfSwIfY29uZmlnX2NvbmZpcm1hdGlvbnNfZnJvbV93YXZlcwAdQ09ORl9DT05GSVJNQVRJT05TX0ZST01fRVRIX0sCHWNvbmZpZ19jb25maXJtYXRpb25zX2Zyb21fZXRoAA9DT05GX0FVVE9TV0FQX0sCD2NvbmZpZ19hdXRvc3dhcAANZGFwcFJ1bm5pbmdfSwIUY29uZl9kYXBwX2lzX3J1bm5pbmcAEG1haW50ZW5hbmNlTVNHX0sCFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ1kYXBwUnVubmluZ19LBgAObWFpbnRlbmFuY2VNU0cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUQbWFpbnRlbmFuY2VNU0dfSwIAAA1zdGF0dXNfTE9DS0VEAgZMT0NLRUQAD3N0YXR1c19VTkxPQ0tFRAIIVU5MT0NLRUQADnN0YXR1c19QRU5ESU5HAgdQRU5ESU5HAA1zdGF0dXNfQ0xPU0VEAgZDTE9TRUQAEWNyZWF0b3JSZWdpc3RlcmVkAgpSRUdJU1RFUkVEAA9jcmVhdG9yVmVyaWZpZWQCCFZFUklGSUVEAAphcnRGbGFnZ2VkAgdGTEFHR0VEAAphcnRJbGxlZ2FsAgdJTExFR0FMAAphcnRQZW5kaW5nAg9DSEFOR0VfUkVRVUlSRUQACE5FVFdPUktTCQDMCAICA0VUSAUDbmlsAQxrZXlORlRzdGF0dXMBBW5mdElkCQCsAgIJAKwCAgIEbmZ0XwUFbmZ0SWQCB19zdGF0dXMBDmtleVRyYW5zZmVyTkZUAwVuZnRJZAR0eGlkBmNhbGxlcgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCXRyYW5zZmVyXwUFbmZ0SWQCAV8FBHR4aWQCAV8FBmNhbGxlcgAPa2V5RmVlTm9uTWludGVkAg9jb3N0X25vbl9taW50ZWQADGtleUZlZU1pbnRlZAILY29zdF9taW50ZWQBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAQ9nZXRCb29sZWFuQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQNrZXkHAAVhZG1pbgkBBXZhbHVlAQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBDmdldFN0cmluZ0J5S2V5AQULQ09ORl9BTUlOX0sADGFydHdvcmtzRGFwcAkBBXZhbHVlAQkApggBCQEOZ2V0U3RyaW5nQnlLZXkBBRNDT05GX0FSVFdPUktfREFQUF9LAAl1c2Vyc0RhcHAJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQURQ09ORl9VU0VSU19EQVBQX0sACm9yYWNsZUFkZHIJAQV2YWx1ZQEJAKYIAQkBDmdldFN0cmluZ0J5S2V5AQUNQ09ORl9PUkFDTEVfSwAIYXV0b3N3YXAJAQt2YWx1ZU9yRWxzZQIJAQ9nZXRCb29sZWFuQnlLZXkBBQ9DT05GX0FVVE9TV0FQX0sHABBmZWVBY2NlcHRlZEFzc2V0CQEOZ2V0U3RyaW5nQnlLZXkBBRBDT05GX0ZFRV9BU1NFVF9LABhmZWVBY2NlcHRlZEFtb3VudEZvclNpZ24JAQ9nZXRJbnRlZ2VyQnlLZXkBBRFDT05GX0ZFRV9BTU9VTlRfSwEXZ2V0U3RyaW5nRnJvbVVzZXJzQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQl1c2Vyc0RhcHAFA2tleQIAARpnZXRTdHJpbmdGcm9tQXJ0d29ya3NCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCdCAIFDGFydHdvcmtzRGFwcAUDa2V5AgABGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFCm9yYWNsZUFkZHIFA2tleQIbSW50ZWdlciB1bmRlZmluZWQgaW4gb3JhY2xlAQxhc3NldElzVmFsaWQBDGFzc2V0RGV0YWlscwMDAwkAAAIIBQxhc3NldERldGFpbHMIcXVhbnRpdHkAAQkAAAIIBQxhc3NldERldGFpbHMIZGVjaW1hbHMAAAcJAAACCAUMYXNzZXREZXRhaWxzCnJlaXNzdWFibGUHBwkAAAIIBQxhc3NldERldGFpbHMGaXNzdWVyBQxhcnR3b3Jrc0RhcHAHAQxpc1NpZ25BcnRORlQBAmlkBAxhc3NldERldGFpbHMJAQV2YWx1ZQEJAOwHAQUCaWQJAQxhc3NldElzVmFsaWQBBQxhc3NldERldGFpbHMBCWlzUGF5bWVudAEBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAgkAAgECGU5lZWQgdG8gYXR0YWNoIDIgcGF5bWVudHMEC25mdF9wYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAECm5mdF9hbW91bnQJAQV2YWx1ZQEIBQtuZnRfcGF5bWVudAZhbW91bnQED2dhdGV3YXlfcGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwABBA5nYXRld2F5X2Ftb3VudAkBBXZhbHVlAQgFD2dhdGV3YXlfcGF5bWVudAZhbW91bnQJAJYKBAULbmZ0X3BheW1lbnQFCm5mdF9hbW91bnQFD2dhdGV3YXlfcGF5bWVudAUOZ2F0ZXdheV9hbW91bnQABmlzSW5pdAkBC3ZhbHVlT3JFbHNlAgkBD2dldEJvb2xlYW5CeUtleQEFC0NPTkZfSU5JVF9LBwEJb3duZXJPbmx5AQFpBAZjYWxsZXIJAKUIAQgFAWkGY2FsbGVyBAJpZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAphbGxvd2VkQXJyAwUGaXNJbml0CQDMCAIJAKUIAQUFYWRtaW4JAMwIAgkApQgBBQR0aGlzBQNuaWwJAMwIAgkApQgBBQR0aGlzBQNuaWwJAQ9jb250YWluc0VsZW1lbnQCBQphbGxvd2VkQXJyBQZjYWxsZXIBDGlkQ2FsbGVyRGF0ZQEBaQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwkAlQoDCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwgFCWxhc3RCbG9jawl0aW1lc3RhbXABE2dldENyZWF0b3JGcm9tTkZUaWQBBW5mdGlkBAduZnREYXRhCQEaZ2V0U3RyaW5nRnJvbUFydHdvcmtzQnlLZXkBCQCsAgICBG5mdF8FBW5mdGlkBAdjcmVhdG9yCQCRAwIJALUJAgUHbmZ0RGF0YQIBXwAGBAVhcnRJZAkAkQMCCQC1CQIFB25mdERhdGECAV8ABQkAlAoCBQdjcmVhdG9yBQVhcnRJZAETZ2V0Q3JlYXRvckVSQzIwQWRkcgEEYWRkcgkBF2dldFN0cmluZ0Zyb21Vc2Vyc0J5S2V5AQkArAICAgt1c2VyX0VSQzIwXwUEYWRkcgEQZ2V0Q3JlYXRvclN0YXR1cwEEYWRkcgkBF2dldFN0cmluZ0Zyb21Vc2Vyc0J5S2V5AQkArAICAgx1c2VyX3N0YXR1c18FBGFkZHIBDGdldEFydFN0YXR1cwIFYXJ0SWQEYWRkcgkBGmdldFN0cmluZ0Zyb21BcnR3b3Jrc0J5S2V5AQkArAICCQCsAgIJAKwCAgIJYXJ0X2ZsYWdfBQVhcnRJZAIBXwUEYWRkcgEOaXNWYWxpZENyZWF0b3IBBnN0YXR1cwMJAAACBQZzdGF0dXMFEWNyZWF0b3JSZWdpc3RlcmVkBgkAAAIFBnN0YXR1cwUPY3JlYXRvclZlcmlmaWVkAQppc1ZhbGlkQXJ0AQZzdGF0dXMDAwkBAiE9AgUGc3RhdHVzBQphcnRGbGFnZ2VkCQECIT0CBQZzdGF0dXMFCmFydElsbGVnYWwHCQECIT0CBQZzdGF0dXMFCmFydFBlbmRpbmcHAQxpc0V2bUFkZHJlc3MBBGFkZHIDCQAAAgkAsQIBBQRhZGRyACoJAAACCQCvAgIFBGFkZHIAAgICMHgHARBzZXRTd29wRGFwcHNGdW5jAghzaWduRGFwcAdldGhEYXBwCQDMCAIJAQtTdHJpbmdFbnRyeQIFFUNPTkZfU1dPUF9TSUdOX0RBUFBfSwUIc2lnbkRhcHAJAMwIAgkBC1N0cmluZ0VudHJ5AgUUQ09ORl9TV09QX0VUSF9EQVBQX0sFB2V0aERhcHAFA25pbAEKc2V0RmVlRnVuYwIIZmVlQXNzZXQJZmVlQW1vdW50BAxhc3NldERldGFpbHMJAOwHAQkA2QQBBQhmZWVBc3NldAQHZGVjaW1hbAgJAQV2YWx1ZQEFDGFzc2V0RGV0YWlscwhkZWNpbWFscwQPYmFzZTEwRmVlQW1vdW50CQBsBgUJZmVlQW1vdW50AAAACgABBQdkZWNpbWFsBQZIQUxGVVAJAMwIAgkBC1N0cmluZ0VudHJ5AgUQQ09ORl9GRUVfQVNTRVRfSwUIZmVlQXNzZXQJAMwIAgkBDEludGVnZXJFbnRyeQIFEUNPTkZfRkVFX0FNT1VOVF9LBQ9iYXNlMTBGZWVBbW91bnQFA25pbAEUc2V0Q29uZmlybWF0aW9uc0Z1bmMCEGNvbmZpcm1mcm9tV2F2ZXMOY29uZmlybWZyb21FdGgJAMwIAgkBDEludGVnZXJFbnRyeQIFH0NPTkZfQ09ORklSTUFUSU9OU19GUk9NX1dBVkVTX0sFEGNvbmZpcm1mcm9tV2F2ZXMJAMwIAgkBDEludGVnZXJFbnRyeQIFHUNPTkZfQ09ORklSTUFUSU9OU19GUk9NX0VUSF9LBQ5jb25maXJtZnJvbUV0aAUDbmlsAQ9zZXRBdXRvU3dhcEZ1bmMBCGF1dG9zd2FwCQDMCAIJAQxCb29sZWFuRW50cnkCBQ9DT05GX0FVVE9TV0FQX0sFCGF1dG9zd2FwBQNuaWwKAWkBBGluaXQLCWFkbWluQWRkcgpvcmFjbGVBZGRyDGFydHdvcmtzRGFwcAl1c2Vyc0RhcHAIZmVlQXNzZXQJZmVlQW1vdW50CHNpZ25EYXBwB2V0aERhcHAQY29uZmlybWZyb21XYXZlcw5jb25maXJtZnJvbUV0aAhhdXRvc3dhcAMJAQlvd25lck9ubHkBBQFpBAxzZXRTd29wRGFwcHMJARBzZXRTd29wRGFwcHNGdW5jAgUIc2lnbkRhcHAFB2V0aERhcHAEBnNldEZlZQkBCnNldEZlZUZ1bmMCBQhmZWVBc3NldAUJZmVlQW1vdW50BBBzZXRDb25maXJtYXRpb25zCQEUc2V0Q29uZmlybWF0aW9uc0Z1bmMCBRBjb25maXJtZnJvbVdhdmVzBQ5jb25maXJtZnJvbUV0aAQLc2V0QXV0b1N3YXAJAQ9zZXRBdXRvU3dhcEZ1bmMBBQhhdXRvc3dhcAkAzggCCQDOCAIJAM4IAgkAzggCCQDMCAIJAQtTdHJpbmdFbnRyeQIFC0NPTkZfQU1JTl9LBQlhZG1pbkFkZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgUNQ09ORl9PUkFDTEVfSwUKb3JhY2xlQWRkcgkAzAgCCQELU3RyaW5nRW50cnkCBRNDT05GX0FSVFdPUktfREFQUF9LBQxhcnR3b3Jrc0RhcHAJAMwIAgkBC1N0cmluZ0VudHJ5AgURQ09ORl9VU0VSU19EQVBQX0sFCXVzZXJzRGFwcAkAzAgCCQEMQm9vbGVhbkVudHJ5AgULQ09ORl9JTklUX0sGBQNuaWwFDHNldFN3b3BEYXBwcwUGc2V0RmVlBRBzZXRDb25maXJtYXRpb25zBQtzZXRBdXRvU3dhcAkAAgECC05vdCBhbGxvd2VkAWkBDHNldFN3b3BEYXBwcwIIc2lnbkRhcHAHZXRoRGFwcAMJAQlvd25lck9ubHkBBQFpCQEQc2V0U3dvcERhcHBzRnVuYwIFCHNpZ25EYXBwBQdldGhEYXBwCQACAQILTm90IGFsbG93ZWQBaQEGc2V0RmVlAghmZWVBc3NldAlmZWVBbW91bnQDCQEJb3duZXJPbmx5AQUBaQkBCnNldEZlZUZ1bmMCBQhmZWVBc3NldAUJZmVlQW1vdW50CQACAQILTm90IGFsbG93ZWQBaQEQc2V0Q29uZmlybWF0aW9ucwIQY29uZmlybWZyb21XYXZlcw5jb25maXJtZnJvbUV0aAMJAQlvd25lck9ubHkBBQFpCQEUc2V0Q29uZmlybWF0aW9uc0Z1bmMCBRBjb25maXJtZnJvbVdhdmVzBQ5jb25maXJtZnJvbUV0aAkAAgECC05vdCBhbGxvd2VkAWkBC3NldEF1dG9zd2FwAQhhdXRvc3dhcAMJAQlvd25lck9ubHkBBQFpCQEPc2V0QXV0b1N3YXBGdW5jAQUIYXV0b3N3YXAJAAIBAgtOb3QgYWxsb3dlZAFpAQRsb2NrAglyZWNpcGllbnQHbmV0d29yawMJAQEhAQUGaXNJbml0CQACAQIOZEFwcCBub3QgcmVhZHkDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCBQhORVRXT1JLUwUHbmV0d29yawkAAgECFU5ldHdvcmsgbm90IHN1cHBvcnRlZAMJAQEhAQkBDGlzRXZtQWRkcmVzcwEFCXJlY2lwaWVudAkAAgECF1dyb25nIHJlY2lwaWVudCBhZGRyZXNzBAskdDA3MjEyNzI1MQkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAULJHQwNzIxMjcyNTECXzEEBmNhbGxlcggFCyR0MDcyMTI3MjUxAl8yBARkYXRlCAULJHQwNzIxMjcyNTECXzMECyR0MDcyNTQ3MzMxCQEJaXNQYXltZW50AQUBaQQLbmZ0X3BheW1lbnQIBQskdDA3MjU0NzMzMQJfMQQKbmZ0X2Ftb3VudAgFCyR0MDcyNTQ3MzMxAl8yBA9nYXRld2F5X3BheW1lbnQIBQskdDA3MjU0NzMzMQJfMwQOZ2F0ZXdheV9hbW91bnQIBQskdDA3MjU0NzMzMQJfNAMJAQIhPQIFCm5mdF9hbW91bnQAAQkAAgECD05vIE5GVCBhdHRhY2hlZAQFbmZ0SWQDAwkBCWlzRGVmaW5lZAEIBQtuZnRfcGF5bWVudAdhc3NldElkCQEMaXNTaWduQXJ0TkZUAQkBBXZhbHVlAQgFC25mdF9wYXltZW50B2Fzc2V0SWQHCQDYBAEJAQV2YWx1ZQEIBQtuZnRfcGF5bWVudAdhc3NldElkCQACAQIbT25seSBTSUdOIEFydCBORlQgYWNjZXB0ZWQuBAskdDA3NjE4NzcwMAkBE2dldENyZWF0b3JGcm9tTkZUaWQBBQVuZnRJZAQHY3JlYXRvcggFCyR0MDc2MTg3NzAwAl8xBAVhcnRJZAgFCyR0MDc2MTg3NzAwAl8yAwkBASEBCQEOaXNWYWxpZENyZWF0b3IBCQEQZ2V0Q3JlYXRvclN0YXR1cwEFB2NyZWF0b3IJAAIBCQCsAgICE0NyZWF0b3Igc3RhdHVzIGlzIDoJARBnZXRDcmVhdG9yU3RhdHVzAQUHY3JlYXRvcgMJAQEhAQkBCmlzVmFsaWRBcnQBCQEMZ2V0QXJ0U3RhdHVzAgUFYXJ0SWQFB2NyZWF0b3IJAAIBCQCsAgICE0FydHdvcmsgc3RhdHVzIGlzIDoJAQxnZXRBcnRTdGF0dXMCBQVhcnRJZAUHY3JlYXRvcgQJZXJjMjBBZGRyCQETZ2V0Q3JlYXRvckVSQzIwQWRkcgEFB2NyZWF0b3IDCQAAAgkAsQIBBQllcmMyMEFkZHIAAAkAAgECLFRoaXMgYXJ0aXN0IGRpZG4ndCBhbGxvdyBjcm9zc2NoYWluIHRyYW5zZmVyBAluZnRTdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlORlRzdGF0dXMBBQVuZnRJZAMDCQAAAgUJbmZ0U3RhdHVzBQ1zdGF0dXNfTE9DS0VEBgkAAAIFCW5mdFN0YXR1cwUOc3RhdHVzX1BFTkRJTkcJAAIBAhJORlQgYWxyZWFkeSBsb2NrZWQED2dhc0ZlZU5vbk1pbnRlZAkBGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUBBQ9rZXlGZWVOb25NaW50ZWQEDGdhc0ZlZU1pbnRlZAkBGWdldEludGVnZXJCeUtleUZyb21PcmFjbGUBBQxrZXlGZWVNaW50ZWQECGlzTWludGVkAwkAAAIFCW5mdFN0YXR1cwUPc3RhdHVzX1VOTE9DS0VEBgcDAwkBASEBCQEJaXNEZWZpbmVkAQgFD2dhdGV3YXlfcGF5bWVudAdhc3NldElkBgkBAiE9AgkA2AQBCQEFdmFsdWUBCAUPZ2F0ZXdheV9wYXltZW50B2Fzc2V0SWQFEGZlZUFjY2VwdGVkQXNzZXQJAAIBAhNXcm9uZyBwYXltZW50IGFzc2V0AwMFCGlzTWludGVkCQBmAgUOZ2F0ZXdheV9hbW91bnQJAGQCBQxnYXNGZWVNaW50ZWQFGGZlZUFjY2VwdGVkQW1vdW50Rm9yU2lnbgcJAAIBAh5Xcm9uZyBwYXltZW50IGFtb3VudCB0byB1bmxvY2sDAwkBASEBBQhpc01pbnRlZAkAZgIFDmdhdGV3YXlfYW1vdW50CQBkAgUPZ2FzRmVlTm9uTWludGVkBRhmZWVBY2NlcHRlZEFtb3VudEZvclNpZ24HCQACAQInV3JvbmcgcGF5bWVudCBhbW91bnQgdG8gbWludCBhbmQgdW5sb2NrBBB1c2RuVG9Td2FwRm9yRXRoAwUIaXNNaW50ZWQFDGdhc0ZlZU1pbnRlZAUPZ2FzRmVlTm9uTWludGVkBBFzd2FwX3VzZG5fdG9fc2lnbgMFCGF1dG9zd2FwCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQ5nZXRTdHJpbmdCeUtleQEFFUNPTkZfU1dPUF9TSUdOX0RBUFBfSwIIZXhjaGFuZ2UJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUQZmVlQWNjZXB0ZWRBc3NldAUYZmVlQWNjZXB0ZWRBbW91bnRGb3JTaWduBQNuaWwFBHVuaXQDCQAAAgURc3dhcF91c2RuX3RvX3NpZ24FEXN3YXBfdXNkbl90b19zaWduBBBzd2FwX3VzZG5fdG9fZXRoAwUIYXV0b3N3YXAJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBDmdldFN0cmluZ0J5S2V5AQUUQ09ORl9TV09QX0VUSF9EQVBQX0sCCGV4Y2hhbmdlCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFEGZlZUFjY2VwdGVkQXNzZXQFEHVzZG5Ub1N3YXBGb3JFdGgFA25pbAUEdW5pdAMJAAACBRBzd2FwX3VzZG5fdG9fZXRoBRBzd2FwX3VzZG5fdG9fZXRoCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlORlRzdGF0dXMBBQVuZnRJZAUOc3RhdHVzX1BFTkRJTkcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAQ5rZXlUcmFuc2Zlck5GVAMFBW5mdElkBQJpZAUGY2FsbGVyAgFfBQ5zdGF0dXNfUEVORElORwkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUJcmVjaXBpZW50AgFfBQduZXR3b3JrAgFfBQZjYWxsZXICAV8FAmlkAgFfCAkBBXZhbHVlAQkA7AcBCQEFdmFsdWUBCAULbmZ0X3BheW1lbnQHYXNzZXRJZARuYW1lAgFfCQCkAwEFBGRhdGUCAV8JAKQDAQUGaGVpZ2h0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELY29uZmlybUxvY2sDBW5mdElkCnRyYW5zZmVySWQGY2FsbGVyAwkBASEBBQZpc0luaXQJAAIBAg5kQXBwIG5vdCByZWFkeQMJAQlvd25lck9ubHkBBQFpBAluZnRTdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlORlRzdGF0dXMBBQVuZnRJZAMJAQIhPQIFCW5mdFN0YXR1cwUOc3RhdHVzX1BFTkRJTkcJAAIBAg9ORlQgbm90IHBlbmRpbmcEA3ZhbAkBDmdldFN0cmluZ0J5S2V5AQkArAICCQCsAgIJAQ5rZXlUcmFuc2Zlck5GVAMFBW5mdElkBQp0cmFuc2ZlcklkBQZjYWxsZXICAV8FDnN0YXR1c19QRU5ESU5HBAZuZXdLZXkJAKwCAgkArAICCQEOa2V5VHJhbnNmZXJORlQDBQVuZnRJZAUKdHJhbnNmZXJJZAUGY2FsbGVyAgFfBQ1zdGF0dXNfQ0xPU0VECQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICCQEOa2V5VHJhbnNmZXJORlQDBQVuZnRJZAUKdHJhbnNmZXJJZAUGY2FsbGVyAgFfBQ5zdGF0dXNfUEVORElORwkAzAgCCQELU3RyaW5nRW50cnkCBQZuZXdLZXkFA3ZhbAkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5TkZUc3RhdHVzAQUFbmZ0SWQFDXN0YXR1c19MT0NLRUQFA25pbAkAAgECC05vdCBhbGxvd2VkAWkBBnVubG9jawIJcmVjaXBpZW50BW5mdElkAwkBASEBBQZpc0luaXQJAAIBAg5kQXBwIG5vdCByZWFkeQMJAQlvd25lck9ubHkBBQFpBAluZnRTdGF0dXMJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlORlRzdGF0dXMBBQVuZnRJZAMJAQIhPQIFCW5mdFN0YXR1cwUNc3RhdHVzX0xPQ0tFRAkAAgECKU5GVCBub3QgbG9ja2VkLCBmaW5hbGl6ZSBmaXJzdCBpZiBwZW5kaW5nCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlORlRzdGF0dXMBBQVuZnRJZAUPc3RhdHVzX1VOTE9DS0VECQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQlyZWNpcGllbnQAAQkA2QQBBQVuZnRJZAUDbmlsCQACAQILTm90IGFsbG93ZWQBaQEKYXBwUnVubmluZwIGaXNMaXZlB21lc3NhZ2UDCQEBIQEFBmlzSW5pdAkAAgECDmRBcHAgbm90IHJlYWR5AwkBCW93bmVyT25seQEFAWkJAMwIAgkBDEJvb2xlYW5FbnRyeQIFDWRhcHBSdW5uaW5nX0sFBmlzTGl2ZQkAzAgCCQELU3RyaW5nRW50cnkCBRBtYWludGVuYW5jZU1TR19LBQdtZXNzYWdlBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzAWkBC2RlbGV0ZUVudHJ5AQVlbnRyeQMJAQlvd25lck9ubHkBBQFpCQDMCAIJAQtEZWxldGVFbnRyeQEFBWVudHJ5BQNuaWwJAAIBAgJubwC6iG45", "height": 2229602, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2MBpJFiBayanqWMKJAbd5PozsxAJA2kqGJ7gqh2VrBNh Next: DALUtW1dMsRCquyWm8svBxVim3jk8AkrT2SUyGswHwZM Diff:
OldNewDifferences
2525
2626 let l = "config_confirmations_from_eth"
2727
28-let m = "conf_dapp_is_running"
28+let m = "config_autoswap"
2929
30-let n = "conf_maintenance_msg"
30+let n = "conf_dapp_is_running"
3131
32-let o = valueOrElse(getBoolean(this, m), true)
32+let o = "conf_maintenance_msg"
3333
34-let p = valueOrElse(getString(this, n), "")
34+let p = valueOrElse(getBoolean(this, n), true)
3535
36-let q = "LOCKED"
36+let q = valueOrElse(getString(this, o), "")
3737
38-let r = "UNLOCKED"
38+let r = "LOCKED"
3939
40-let s = "PENDING"
40+let s = "UNLOCKED"
4141
42-let t = "CLOSED"
42+let t = "PENDING"
4343
44-let u = "REGISTERED"
44+let u = "CLOSED"
4545
46-let v = "VERIFIED"
46+let v = "REGISTERED"
4747
48-let w = "FLAGGED"
48+let w = "VERIFIED"
4949
50-let x = "ILLEGAL"
50+let x = "FLAGGED"
5151
52-let y = "CHANGE_REQUIRED"
52+let y = "ILLEGAL"
5353
54-let z = ["ETH"]
54+let z = "CHANGE_REQUIRED"
5555
56-func A (B) = (("nft_" + B) + "_status")
56+let A = ["ETH"]
57+
58+func B (C) = (("nft_" + C) + "_status")
5759
5860
59-func C (B,D,E) = ((((("transfer_" + B) + "_") + D) + "_") + E)
61+func D (C,E,F) = ((((("transfer_" + C) + "_") + E) + "_") + F)
6062
6163
62-let F = "cost_non_minted"
64+let G = "cost_non_minted"
6365
64-let G = "cost_minted"
66+let H = "cost_minted"
6567
66-func H (I) = valueOrElse(getString(this, I), "")
68+func I (J) = valueOrElse(getString(this, J), "")
6769
6870
69-func J (I) = valueOrElse(getInteger(this, I), 0)
71+func K (J) = valueOrElse(getInteger(this, J), 0)
7072
7173
72-func K (I) = valueOrElse(getBoolean(this, I), false)
74+func L (J) = valueOrElse(getBoolean(this, J), false)
7375
7476
75-let L = value(addressFromStringValue(H(c)))
77+let M = value(addressFromStringValue(I(c)))
7678
77-let M = value(addressFromString(H(e)))
79+let N = value(addressFromString(I(e)))
7880
79-let N = value(addressFromString(H(f)))
81+let O = value(addressFromString(I(f)))
8082
81-let O = value(addressFromString(H(d)))
83+let P = value(addressFromString(I(d)))
8284
83-let P = H(g)
85+let Q = valueOrElse(L(m), false)
8486
85-let Q = J(h)
87+let R = I(g)
8688
87-func R (I) = valueOrElse(getString(N, I), "")
89+let S = K(h)
90+
91+func T (J) = valueOrElse(getString(O, J), "")
8892
8993
90-func S (I) = valueOrElse(getString(M, I), "")
94+func U (J) = valueOrElse(getString(N, J), "")
9195
9296
93-func T (I) = valueOrErrorMessage(getInteger(O, I), "Integer undefined in oracle")
97+func V (J) = valueOrErrorMessage(getInteger(P, J), "Integer undefined in oracle")
9498
9599
96-func U (V) = if (if (if ((V.quantity == 1))
97- then (V.decimals == 0)
100+func W (X) = if (if (if ((X.quantity == 1))
101+ then (X.decimals == 0)
98102 else false)
99- then (V.reissuable == false)
103+ then (X.reissuable == false)
100104 else false)
101- then (V.issuer == M)
105+ then (X.issuer == N)
102106 else false
103107
104108
105-func W (X) = {
106- let V = value(assetInfo(X))
107- U(V)
109+func Y (Z) = {
110+ let X = value(assetInfo(Z))
111+ W(X)
108112 }
109113
110114
111-func Y (Z) = if ((size(Z.payments) != 2))
115+func aa (ab) = if ((size(ab.payments) != 2))
112116 then throw("Need to attach 2 payments")
113117 else {
114- let aa = value(Z.payments[0])
115- let ab = value(aa.amount)
116- let ac = value(Z.payments[1])
118+ let ac = value(ab.payments[0])
117119 let ad = value(ac.amount)
118- $Tuple4(aa, ab, ac, ad)
120+ let ae = value(ab.payments[1])
121+ let af = value(ae.amount)
122+ $Tuple4(ac, ad, ae, af)
119123 }
120124
121125
122-let ae = valueOrElse(K(b), false)
126+let ag = valueOrElse(L(b), false)
123127
124-func af (Z) = {
125- let E = toString(Z.caller)
126- let X = toBase58String(Z.transactionId)
127- let ag = if (ae)
128- then [toString(L), toString(this)]
128+func ah (ab) = {
129+ let F = toString(ab.caller)
130+ let Z = toBase58String(ab.transactionId)
131+ let ai = if (ag)
132+ then [toString(M), toString(this)]
129133 else [toString(this)]
130- containsElement(ag, E)
134+ containsElement(ai, F)
131135 }
132136
133137
134-func ah (Z) = if (!(o))
135- then throw(p)
136- else $Tuple3(toBase58String(Z.transactionId), toBase58String(Z.caller.bytes), lastBlock.timestamp)
138+func aj (ab) = if (!(p))
139+ then throw(q)
140+ else $Tuple3(toBase58String(ab.transactionId), toBase58String(ab.caller.bytes), lastBlock.timestamp)
137141
138142
139-func ai (aj) = {
140- let ak = S(("nft_" + aj))
141- let al = split(ak, "_")[6]
142- let am = split(ak, "_")[5]
143- $Tuple2(al, am)
143+func ak (al) = {
144+ let am = U(("nft_" + al))
145+ let an = split(am, "_")[6]
146+ let ao = split(am, "_")[5]
147+ $Tuple2(an, ao)
144148 }
145149
146150
147-func an (ao) = R(("user_ERC20_" + ao))
151+func ap (aq) = T(("user_ERC20_" + aq))
148152
149153
150-func ap (ao) = R(("user_status_" + ao))
154+func ar (aq) = T(("user_status_" + aq))
151155
152156
153-func aq (am,ao) = S(((("art_flag_" + am) + "_") + ao))
157+func as (ao,aq) = U(((("art_flag_" + ao) + "_") + aq))
154158
155159
156-func ar (as) = if ((as == u))
160+func at (au) = if ((au == v))
157161 then true
158- else (as == v)
162+ else (au == w)
159163
160164
161-func at (as) = if (if ((as != w))
162- then (as != x)
165+func av (au) = if (if ((au != x))
166+ then (au != y)
163167 else false)
164- then (as != y)
168+ then (au != z)
165169 else false
166170
167171
168-func au (ao) = if ((size(ao) == 42))
169- then (take(ao, 2) == "0x")
172+func aw (aq) = if ((size(aq) == 42))
173+ then (take(aq, 2) == "0x")
170174 else false
171175
172176
173-func av (aw,ax) = [StringEntry(i, aw), StringEntry(j, ax)]
177+func ax (ay,az) = [StringEntry(i, ay), StringEntry(j, az)]
174178
175179
176-func ay (az,aA) = {
177- let V = assetInfo(fromBase58String(az))
178- let aB = value(V).decimals
179- let aC = pow(aA, 0, 10, 1, aB, HALFUP)
180-[StringEntry(g, az), IntegerEntry(h, aC)]
180+func aA (aB,aC) = {
181+ let X = assetInfo(fromBase58String(aB))
182+ let aD = value(X).decimals
183+ let aE = pow(aC, 0, 10, 1, aD, HALFUP)
184+[StringEntry(g, aB), IntegerEntry(h, aE)]
181185 }
182186
183187
184-func aD (aE,aF) = [IntegerEntry(k, aE), IntegerEntry(l, aF)]
188+func aF (aG,aH) = [IntegerEntry(k, aG), IntegerEntry(l, aH)]
185189
186190
187-@Callable(Z)
188-func init (aG,O,M,N,az,aA,aw,ax,aE,aF) = if (af(Z))
191+func aI (Q) = [BooleanEntry(m, Q)]
192+
193+
194+@Callable(ab)
195+func init (aJ,P,N,O,aB,aC,ay,az,aG,aH,Q) = if (ah(ab))
189196 then {
190- let aH = av(aw, ax)
191- let aI = ay(az, aA)
192- let aJ = aD(aE, aF)
193- ((([StringEntry(c, aG), StringEntry(d, O), StringEntry(e, M), StringEntry(f, N), BooleanEntry(b, true)] ++ aH) ++ aI) ++ aJ)
197+ let aK = ax(ay, az)
198+ let aL = aA(aB, aC)
199+ let aM = aF(aG, aH)
200+ let aN = aI(Q)
201+ (((([StringEntry(c, aJ), StringEntry(d, P), StringEntry(e, N), StringEntry(f, O), BooleanEntry(b, true)] ++ aK) ++ aL) ++ aM) ++ aN)
194202 }
195203 else throw("Not allowed")
196204
197205
198206
199-@Callable(Z)
200-func setSwopDapps (aw,ax) = if (af(Z))
201- then av(aw, ax)
207+@Callable(ab)
208+func setSwopDapps (ay,az) = if (ah(ab))
209+ then ax(ay, az)
202210 else throw("Not allowed")
203211
204212
205213
206-@Callable(Z)
207-func setFee (az,aA) = if (af(Z))
208- then ay(az, aA)
214+@Callable(ab)
215+func setFee (aB,aC) = if (ah(ab))
216+ then aA(aB, aC)
209217 else throw("Not allowed")
210218
211219
212220
213-@Callable(Z)
214-func setConfirmations (aE,aF) = if (af(Z))
215- then aD(aE, aF)
221+@Callable(ab)
222+func setConfirmations (aG,aH) = if (ah(ab))
223+ then aF(aG, aH)
216224 else throw("Not allowed")
217225
218226
219227
220-@Callable(Z)
221-func lock (aK,aL) = if (!(ae))
228+@Callable(ab)
229+func setAutoswap (Q) = if (ah(ab))
230+ then aI(Q)
231+ else throw("Not allowed")
232+
233+
234+
235+@Callable(ab)
236+func lock (aO,aP) = if (!(ag))
222237 then throw("dApp not ready")
223- else if (!(containsElement(z, aL)))
238+ else if (!(containsElement(A, aP)))
224239 then throw("Network not supported")
225- else if (!(au(aK)))
240+ else if (!(aw(aO)))
226241 then throw("Wrong recipient address")
227242 else {
228- let aM = ah(Z)
229- let X = aM._1
230- let E = aM._2
231- let aN = aM._3
232- let aO = Y(Z)
233- let aa = aO._1
234- let ab = aO._2
235- let ac = aO._3
236- let ad = aO._4
237- if ((ab != 1))
243+ let aQ = aj(ab)
244+ let Z = aQ._1
245+ let F = aQ._2
246+ let aR = aQ._3
247+ let aS = aa(ab)
248+ let ac = aS._1
249+ let ad = aS._2
250+ let ae = aS._3
251+ let af = aS._4
252+ if ((ad != 1))
238253 then throw("No NFT attached")
239254 else {
240- let B = if (if (isDefined(aa.assetId))
241- then W(value(aa.assetId))
255+ let C = if (if (isDefined(ac.assetId))
256+ then Y(value(ac.assetId))
242257 else false)
243- then toBase58String(value(aa.assetId))
258+ then toBase58String(value(ac.assetId))
244259 else throw("Only SIGN Art NFT accepted.")
245- let aP = ai(B)
246- let al = aP._1
247- let am = aP._2
248- if (!(ar(ap(al))))
249- then throw(("Creator status is :" + ap(al)))
250- else if (!(at(aq(am, al))))
251- then throw(("Artwork status is :" + aq(am, al)))
260+ let aT = ak(C)
261+ let an = aT._1
262+ let ao = aT._2
263+ if (!(at(ar(an))))
264+ then throw(("Creator status is :" + ar(an)))
265+ else if (!(av(as(ao, an))))
266+ then throw(("Artwork status is :" + as(ao, an)))
252267 else {
253- let aQ = an(al)
254- if ((size(aQ) == 0))
268+ let aU = ap(an)
269+ if ((size(aU) == 0))
255270 then throw("This artist didn't allow crosschain transfer")
256271 else {
257- let aR = H(A(B))
258- if (if ((aR == q))
272+ let aV = I(B(C))
273+ if (if ((aV == r))
259274 then true
260- else (aR == s))
275+ else (aV == t))
261276 then throw("NFT already locked")
262277 else {
263- let aS = T(F)
264- let aT = T(G)
265- let aU = if ((aR == r))
278+ let aW = V(G)
279+ let aX = V(H)
280+ let aY = if ((aV == s))
266281 then true
267282 else false
268- if (if (!(isDefined(ac.assetId)))
283+ if (if (!(isDefined(ae.assetId)))
269284 then true
270- else (toBase58String(value(ac.assetId)) != P))
285+ else (toBase58String(value(ae.assetId)) != R))
271286 then throw("Wrong payment asset")
272- else if (if (aU)
273- then (ad > (aT + Q))
287+ else if (if (aY)
288+ then (af > (aX + S))
274289 else false)
275290 then throw("Wrong payment amount to unlock")
276- else if (if (!(aU))
277- then (ad > (aS + Q))
291+ else if (if (!(aY))
292+ then (af > (aW + S))
278293 else false)
279294 then throw("Wrong payment amount to mint and unlock")
280295 else {
281- let aV = if (aU)
282- then aT
283- else aS
284- let aW = invoke(addressFromStringValue(H(i)), "exchange", [1], [AttachedPayment(fromBase58String(P), Q)])
285- if ((aW == aW))
296+ let aZ = if (aY)
297+ then aX
298+ else aW
299+ let ba = if (Q)
300+ then invoke(addressFromStringValue(I(i)), "exchange", [1], [AttachedPayment(fromBase58String(R), S)])
301+ else unit
302+ if ((ba == ba))
286303 then {
287- let aX = invoke(addressFromStringValue(H(j)), "exchange", [1], [AttachedPayment(fromBase58String(P), aV)])
288- if ((aX == aX))
289- then [StringEntry(A(B), s), StringEntry(((C(B, X, E) + "_") + s), ((((((((((((aK + "_") + aL) + "_") + E) + "_") + X) + "_") + value(assetInfo(value(aa.assetId))).name) + "_") + toString(aN)) + "_") + toString(height)))]
304+ let bb = if (Q)
305+ then invoke(addressFromStringValue(I(j)), "exchange", [1], [AttachedPayment(fromBase58String(R), aZ)])
306+ else unit
307+ if ((bb == bb))
308+ then [StringEntry(B(C), t), StringEntry(((D(C, Z, F) + "_") + t), ((((((((((((aO + "_") + aP) + "_") + F) + "_") + Z) + "_") + value(assetInfo(value(ac.assetId))).name) + "_") + toString(aR)) + "_") + toString(height)))]
290309 else throw("Strict value is not equal to itself.")
291310 }
292311 else throw("Strict value is not equal to itself.")
299318
300319
301320
302-@Callable(Z)
303-func confirmLock (B,aY,E) = if (!(ae))
321+@Callable(ab)
322+func confirmLock (C,bc,F) = if (!(ag))
304323 then throw("dApp not ready")
305- else if (af(Z))
324+ else if (ah(ab))
306325 then {
307- let aR = H(A(B))
308- if ((aR != s))
326+ let aV = I(B(C))
327+ if ((aV != t))
309328 then throw("NFT not pending")
310329 else {
311- let aZ = H(((C(B, aY, E) + "_") + s))
312- let ba = ((C(B, aY, E) + "_") + t)
313-[DeleteEntry(((C(B, aY, E) + "_") + s)), StringEntry(ba, aZ), StringEntry(A(B), q)]
330+ let bd = I(((D(C, bc, F) + "_") + t))
331+ let be = ((D(C, bc, F) + "_") + u)
332+[DeleteEntry(((D(C, bc, F) + "_") + t)), StringEntry(be, bd), StringEntry(B(C), r)]
314333 }
315334 }
316335 else throw("Not allowed")
317336
318337
319338
320-@Callable(Z)
321-func unlock (aK,B) = if (!(ae))
339+@Callable(ab)
340+func unlock (aO,C) = if (!(ag))
322341 then throw("dApp not ready")
323- else if (af(Z))
342+ else if (ah(ab))
324343 then {
325- let aR = H(A(B))
326- if ((aR != q))
344+ let aV = I(B(C))
345+ if ((aV != r))
327346 then throw("NFT not locked, finalize first if pending")
328- else [StringEntry(A(B), r), ScriptTransfer(Address(fromBase58String(aK)), 1, fromBase58String(B))]
347+ else [StringEntry(B(C), s), ScriptTransfer(Address(fromBase58String(aO)), 1, fromBase58String(C))]
329348 }
330349 else throw("Not allowed")
331350
332351
333352
334-@Callable(Z)
335-func appRunning (bb,bc) = if (!(ae))
353+@Callable(ab)
354+func appRunning (bf,bg) = if (!(ag))
336355 then throw("dApp not ready")
337- else if (af(Z))
338- then [BooleanEntry(m, bb), StringEntry(n, bc)]
356+ else if (ah(ab))
357+ then [BooleanEntry(n, bf), StringEntry(o, bg)]
339358 else throw("You are not allowed to change this")
340359
341360
342361
343-@Callable(Z)
344-func deleteEntry (bd) = if (af(Z))
345- then [DeleteEntry(bd)]
362+@Callable(ab)
363+func deleteEntry (bh) = if (ah(ab))
364+ then [DeleteEntry(bh)]
346365 else throw("no")
347366
348367
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0"
55
66 let b = "config_init"
77
88 let c = "config_admin"
99
1010 let d = "config_oracle"
1111
1212 let e = "config_artwork_dapp"
1313
1414 let f = "config_users_dapp"
1515
1616 let g = "config_fee_asset"
1717
1818 let h = "config_fee_amount"
1919
2020 let i = "config_swop_sign_dapp"
2121
2222 let j = "config_swop_eth_dapp"
2323
2424 let k = "config_confirmations_from_waves"
2525
2626 let l = "config_confirmations_from_eth"
2727
28-let m = "conf_dapp_is_running"
28+let m = "config_autoswap"
2929
30-let n = "conf_maintenance_msg"
30+let n = "conf_dapp_is_running"
3131
32-let o = valueOrElse(getBoolean(this, m), true)
32+let o = "conf_maintenance_msg"
3333
34-let p = valueOrElse(getString(this, n), "")
34+let p = valueOrElse(getBoolean(this, n), true)
3535
36-let q = "LOCKED"
36+let q = valueOrElse(getString(this, o), "")
3737
38-let r = "UNLOCKED"
38+let r = "LOCKED"
3939
40-let s = "PENDING"
40+let s = "UNLOCKED"
4141
42-let t = "CLOSED"
42+let t = "PENDING"
4343
44-let u = "REGISTERED"
44+let u = "CLOSED"
4545
46-let v = "VERIFIED"
46+let v = "REGISTERED"
4747
48-let w = "FLAGGED"
48+let w = "VERIFIED"
4949
50-let x = "ILLEGAL"
50+let x = "FLAGGED"
5151
52-let y = "CHANGE_REQUIRED"
52+let y = "ILLEGAL"
5353
54-let z = ["ETH"]
54+let z = "CHANGE_REQUIRED"
5555
56-func A (B) = (("nft_" + B) + "_status")
56+let A = ["ETH"]
57+
58+func B (C) = (("nft_" + C) + "_status")
5759
5860
59-func C (B,D,E) = ((((("transfer_" + B) + "_") + D) + "_") + E)
61+func D (C,E,F) = ((((("transfer_" + C) + "_") + E) + "_") + F)
6062
6163
62-let F = "cost_non_minted"
64+let G = "cost_non_minted"
6365
64-let G = "cost_minted"
66+let H = "cost_minted"
6567
66-func H (I) = valueOrElse(getString(this, I), "")
68+func I (J) = valueOrElse(getString(this, J), "")
6769
6870
69-func J (I) = valueOrElse(getInteger(this, I), 0)
71+func K (J) = valueOrElse(getInteger(this, J), 0)
7072
7173
72-func K (I) = valueOrElse(getBoolean(this, I), false)
74+func L (J) = valueOrElse(getBoolean(this, J), false)
7375
7476
75-let L = value(addressFromStringValue(H(c)))
77+let M = value(addressFromStringValue(I(c)))
7678
77-let M = value(addressFromString(H(e)))
79+let N = value(addressFromString(I(e)))
7880
79-let N = value(addressFromString(H(f)))
81+let O = value(addressFromString(I(f)))
8082
81-let O = value(addressFromString(H(d)))
83+let P = value(addressFromString(I(d)))
8284
83-let P = H(g)
85+let Q = valueOrElse(L(m), false)
8486
85-let Q = J(h)
87+let R = I(g)
8688
87-func R (I) = valueOrElse(getString(N, I), "")
89+let S = K(h)
90+
91+func T (J) = valueOrElse(getString(O, J), "")
8892
8993
90-func S (I) = valueOrElse(getString(M, I), "")
94+func U (J) = valueOrElse(getString(N, J), "")
9195
9296
93-func T (I) = valueOrErrorMessage(getInteger(O, I), "Integer undefined in oracle")
97+func V (J) = valueOrErrorMessage(getInteger(P, J), "Integer undefined in oracle")
9498
9599
96-func U (V) = if (if (if ((V.quantity == 1))
97- then (V.decimals == 0)
100+func W (X) = if (if (if ((X.quantity == 1))
101+ then (X.decimals == 0)
98102 else false)
99- then (V.reissuable == false)
103+ then (X.reissuable == false)
100104 else false)
101- then (V.issuer == M)
105+ then (X.issuer == N)
102106 else false
103107
104108
105-func W (X) = {
106- let V = value(assetInfo(X))
107- U(V)
109+func Y (Z) = {
110+ let X = value(assetInfo(Z))
111+ W(X)
108112 }
109113
110114
111-func Y (Z) = if ((size(Z.payments) != 2))
115+func aa (ab) = if ((size(ab.payments) != 2))
112116 then throw("Need to attach 2 payments")
113117 else {
114- let aa = value(Z.payments[0])
115- let ab = value(aa.amount)
116- let ac = value(Z.payments[1])
118+ let ac = value(ab.payments[0])
117119 let ad = value(ac.amount)
118- $Tuple4(aa, ab, ac, ad)
120+ let ae = value(ab.payments[1])
121+ let af = value(ae.amount)
122+ $Tuple4(ac, ad, ae, af)
119123 }
120124
121125
122-let ae = valueOrElse(K(b), false)
126+let ag = valueOrElse(L(b), false)
123127
124-func af (Z) = {
125- let E = toString(Z.caller)
126- let X = toBase58String(Z.transactionId)
127- let ag = if (ae)
128- then [toString(L), toString(this)]
128+func ah (ab) = {
129+ let F = toString(ab.caller)
130+ let Z = toBase58String(ab.transactionId)
131+ let ai = if (ag)
132+ then [toString(M), toString(this)]
129133 else [toString(this)]
130- containsElement(ag, E)
134+ containsElement(ai, F)
131135 }
132136
133137
134-func ah (Z) = if (!(o))
135- then throw(p)
136- else $Tuple3(toBase58String(Z.transactionId), toBase58String(Z.caller.bytes), lastBlock.timestamp)
138+func aj (ab) = if (!(p))
139+ then throw(q)
140+ else $Tuple3(toBase58String(ab.transactionId), toBase58String(ab.caller.bytes), lastBlock.timestamp)
137141
138142
139-func ai (aj) = {
140- let ak = S(("nft_" + aj))
141- let al = split(ak, "_")[6]
142- let am = split(ak, "_")[5]
143- $Tuple2(al, am)
143+func ak (al) = {
144+ let am = U(("nft_" + al))
145+ let an = split(am, "_")[6]
146+ let ao = split(am, "_")[5]
147+ $Tuple2(an, ao)
144148 }
145149
146150
147-func an (ao) = R(("user_ERC20_" + ao))
151+func ap (aq) = T(("user_ERC20_" + aq))
148152
149153
150-func ap (ao) = R(("user_status_" + ao))
154+func ar (aq) = T(("user_status_" + aq))
151155
152156
153-func aq (am,ao) = S(((("art_flag_" + am) + "_") + ao))
157+func as (ao,aq) = U(((("art_flag_" + ao) + "_") + aq))
154158
155159
156-func ar (as) = if ((as == u))
160+func at (au) = if ((au == v))
157161 then true
158- else (as == v)
162+ else (au == w)
159163
160164
161-func at (as) = if (if ((as != w))
162- then (as != x)
165+func av (au) = if (if ((au != x))
166+ then (au != y)
163167 else false)
164- then (as != y)
168+ then (au != z)
165169 else false
166170
167171
168-func au (ao) = if ((size(ao) == 42))
169- then (take(ao, 2) == "0x")
172+func aw (aq) = if ((size(aq) == 42))
173+ then (take(aq, 2) == "0x")
170174 else false
171175
172176
173-func av (aw,ax) = [StringEntry(i, aw), StringEntry(j, ax)]
177+func ax (ay,az) = [StringEntry(i, ay), StringEntry(j, az)]
174178
175179
176-func ay (az,aA) = {
177- let V = assetInfo(fromBase58String(az))
178- let aB = value(V).decimals
179- let aC = pow(aA, 0, 10, 1, aB, HALFUP)
180-[StringEntry(g, az), IntegerEntry(h, aC)]
180+func aA (aB,aC) = {
181+ let X = assetInfo(fromBase58String(aB))
182+ let aD = value(X).decimals
183+ let aE = pow(aC, 0, 10, 1, aD, HALFUP)
184+[StringEntry(g, aB), IntegerEntry(h, aE)]
181185 }
182186
183187
184-func aD (aE,aF) = [IntegerEntry(k, aE), IntegerEntry(l, aF)]
188+func aF (aG,aH) = [IntegerEntry(k, aG), IntegerEntry(l, aH)]
185189
186190
187-@Callable(Z)
188-func init (aG,O,M,N,az,aA,aw,ax,aE,aF) = if (af(Z))
191+func aI (Q) = [BooleanEntry(m, Q)]
192+
193+
194+@Callable(ab)
195+func init (aJ,P,N,O,aB,aC,ay,az,aG,aH,Q) = if (ah(ab))
189196 then {
190- let aH = av(aw, ax)
191- let aI = ay(az, aA)
192- let aJ = aD(aE, aF)
193- ((([StringEntry(c, aG), StringEntry(d, O), StringEntry(e, M), StringEntry(f, N), BooleanEntry(b, true)] ++ aH) ++ aI) ++ aJ)
197+ let aK = ax(ay, az)
198+ let aL = aA(aB, aC)
199+ let aM = aF(aG, aH)
200+ let aN = aI(Q)
201+ (((([StringEntry(c, aJ), StringEntry(d, P), StringEntry(e, N), StringEntry(f, O), BooleanEntry(b, true)] ++ aK) ++ aL) ++ aM) ++ aN)
194202 }
195203 else throw("Not allowed")
196204
197205
198206
199-@Callable(Z)
200-func setSwopDapps (aw,ax) = if (af(Z))
201- then av(aw, ax)
207+@Callable(ab)
208+func setSwopDapps (ay,az) = if (ah(ab))
209+ then ax(ay, az)
202210 else throw("Not allowed")
203211
204212
205213
206-@Callable(Z)
207-func setFee (az,aA) = if (af(Z))
208- then ay(az, aA)
214+@Callable(ab)
215+func setFee (aB,aC) = if (ah(ab))
216+ then aA(aB, aC)
209217 else throw("Not allowed")
210218
211219
212220
213-@Callable(Z)
214-func setConfirmations (aE,aF) = if (af(Z))
215- then aD(aE, aF)
221+@Callable(ab)
222+func setConfirmations (aG,aH) = if (ah(ab))
223+ then aF(aG, aH)
216224 else throw("Not allowed")
217225
218226
219227
220-@Callable(Z)
221-func lock (aK,aL) = if (!(ae))
228+@Callable(ab)
229+func setAutoswap (Q) = if (ah(ab))
230+ then aI(Q)
231+ else throw("Not allowed")
232+
233+
234+
235+@Callable(ab)
236+func lock (aO,aP) = if (!(ag))
222237 then throw("dApp not ready")
223- else if (!(containsElement(z, aL)))
238+ else if (!(containsElement(A, aP)))
224239 then throw("Network not supported")
225- else if (!(au(aK)))
240+ else if (!(aw(aO)))
226241 then throw("Wrong recipient address")
227242 else {
228- let aM = ah(Z)
229- let X = aM._1
230- let E = aM._2
231- let aN = aM._3
232- let aO = Y(Z)
233- let aa = aO._1
234- let ab = aO._2
235- let ac = aO._3
236- let ad = aO._4
237- if ((ab != 1))
243+ let aQ = aj(ab)
244+ let Z = aQ._1
245+ let F = aQ._2
246+ let aR = aQ._3
247+ let aS = aa(ab)
248+ let ac = aS._1
249+ let ad = aS._2
250+ let ae = aS._3
251+ let af = aS._4
252+ if ((ad != 1))
238253 then throw("No NFT attached")
239254 else {
240- let B = if (if (isDefined(aa.assetId))
241- then W(value(aa.assetId))
255+ let C = if (if (isDefined(ac.assetId))
256+ then Y(value(ac.assetId))
242257 else false)
243- then toBase58String(value(aa.assetId))
258+ then toBase58String(value(ac.assetId))
244259 else throw("Only SIGN Art NFT accepted.")
245- let aP = ai(B)
246- let al = aP._1
247- let am = aP._2
248- if (!(ar(ap(al))))
249- then throw(("Creator status is :" + ap(al)))
250- else if (!(at(aq(am, al))))
251- then throw(("Artwork status is :" + aq(am, al)))
260+ let aT = ak(C)
261+ let an = aT._1
262+ let ao = aT._2
263+ if (!(at(ar(an))))
264+ then throw(("Creator status is :" + ar(an)))
265+ else if (!(av(as(ao, an))))
266+ then throw(("Artwork status is :" + as(ao, an)))
252267 else {
253- let aQ = an(al)
254- if ((size(aQ) == 0))
268+ let aU = ap(an)
269+ if ((size(aU) == 0))
255270 then throw("This artist didn't allow crosschain transfer")
256271 else {
257- let aR = H(A(B))
258- if (if ((aR == q))
272+ let aV = I(B(C))
273+ if (if ((aV == r))
259274 then true
260- else (aR == s))
275+ else (aV == t))
261276 then throw("NFT already locked")
262277 else {
263- let aS = T(F)
264- let aT = T(G)
265- let aU = if ((aR == r))
278+ let aW = V(G)
279+ let aX = V(H)
280+ let aY = if ((aV == s))
266281 then true
267282 else false
268- if (if (!(isDefined(ac.assetId)))
283+ if (if (!(isDefined(ae.assetId)))
269284 then true
270- else (toBase58String(value(ac.assetId)) != P))
285+ else (toBase58String(value(ae.assetId)) != R))
271286 then throw("Wrong payment asset")
272- else if (if (aU)
273- then (ad > (aT + Q))
287+ else if (if (aY)
288+ then (af > (aX + S))
274289 else false)
275290 then throw("Wrong payment amount to unlock")
276- else if (if (!(aU))
277- then (ad > (aS + Q))
291+ else if (if (!(aY))
292+ then (af > (aW + S))
278293 else false)
279294 then throw("Wrong payment amount to mint and unlock")
280295 else {
281- let aV = if (aU)
282- then aT
283- else aS
284- let aW = invoke(addressFromStringValue(H(i)), "exchange", [1], [AttachedPayment(fromBase58String(P), Q)])
285- if ((aW == aW))
296+ let aZ = if (aY)
297+ then aX
298+ else aW
299+ let ba = if (Q)
300+ then invoke(addressFromStringValue(I(i)), "exchange", [1], [AttachedPayment(fromBase58String(R), S)])
301+ else unit
302+ if ((ba == ba))
286303 then {
287- let aX = invoke(addressFromStringValue(H(j)), "exchange", [1], [AttachedPayment(fromBase58String(P), aV)])
288- if ((aX == aX))
289- then [StringEntry(A(B), s), StringEntry(((C(B, X, E) + "_") + s), ((((((((((((aK + "_") + aL) + "_") + E) + "_") + X) + "_") + value(assetInfo(value(aa.assetId))).name) + "_") + toString(aN)) + "_") + toString(height)))]
304+ let bb = if (Q)
305+ then invoke(addressFromStringValue(I(j)), "exchange", [1], [AttachedPayment(fromBase58String(R), aZ)])
306+ else unit
307+ if ((bb == bb))
308+ then [StringEntry(B(C), t), StringEntry(((D(C, Z, F) + "_") + t), ((((((((((((aO + "_") + aP) + "_") + F) + "_") + Z) + "_") + value(assetInfo(value(ac.assetId))).name) + "_") + toString(aR)) + "_") + toString(height)))]
290309 else throw("Strict value is not equal to itself.")
291310 }
292311 else throw("Strict value is not equal to itself.")
293312 }
294313 }
295314 }
296315 }
297316 }
298317 }
299318
300319
301320
302-@Callable(Z)
303-func confirmLock (B,aY,E) = if (!(ae))
321+@Callable(ab)
322+func confirmLock (C,bc,F) = if (!(ag))
304323 then throw("dApp not ready")
305- else if (af(Z))
324+ else if (ah(ab))
306325 then {
307- let aR = H(A(B))
308- if ((aR != s))
326+ let aV = I(B(C))
327+ if ((aV != t))
309328 then throw("NFT not pending")
310329 else {
311- let aZ = H(((C(B, aY, E) + "_") + s))
312- let ba = ((C(B, aY, E) + "_") + t)
313-[DeleteEntry(((C(B, aY, E) + "_") + s)), StringEntry(ba, aZ), StringEntry(A(B), q)]
330+ let bd = I(((D(C, bc, F) + "_") + t))
331+ let be = ((D(C, bc, F) + "_") + u)
332+[DeleteEntry(((D(C, bc, F) + "_") + t)), StringEntry(be, bd), StringEntry(B(C), r)]
314333 }
315334 }
316335 else throw("Not allowed")
317336
318337
319338
320-@Callable(Z)
321-func unlock (aK,B) = if (!(ae))
339+@Callable(ab)
340+func unlock (aO,C) = if (!(ag))
322341 then throw("dApp not ready")
323- else if (af(Z))
342+ else if (ah(ab))
324343 then {
325- let aR = H(A(B))
326- if ((aR != q))
344+ let aV = I(B(C))
345+ if ((aV != r))
327346 then throw("NFT not locked, finalize first if pending")
328- else [StringEntry(A(B), r), ScriptTransfer(Address(fromBase58String(aK)), 1, fromBase58String(B))]
347+ else [StringEntry(B(C), s), ScriptTransfer(Address(fromBase58String(aO)), 1, fromBase58String(C))]
329348 }
330349 else throw("Not allowed")
331350
332351
333352
334-@Callable(Z)
335-func appRunning (bb,bc) = if (!(ae))
353+@Callable(ab)
354+func appRunning (bf,bg) = if (!(ag))
336355 then throw("dApp not ready")
337- else if (af(Z))
338- then [BooleanEntry(m, bb), StringEntry(n, bc)]
356+ else if (ah(ab))
357+ then [BooleanEntry(n, bf), StringEntry(o, bg)]
339358 else throw("You are not allowed to change this")
340359
341360
342361
343-@Callable(Z)
344-func deleteEntry (bd) = if (af(Z))
345- then [DeleteEntry(bd)]
362+@Callable(ab)
363+func deleteEntry (bh) = if (ah(ab))
364+ then [DeleteEntry(bh)]
346365 else throw("no")
347366
348367

github/deemru/w8io/873ac7e 
231.67 ms