tx · 22iAgtg8xCHx5adVyxLGAv5tWQKJ682BjqeSoN2eYzLL

3NCCbzmJYurqgXL9bh85G7gzASswGVjkfRU:  -0.01400000 Waves

2024.03.22 15:25 [3029240] smart account 3NCCbzmJYurqgXL9bh85G7gzASswGVjkfRU > SELF 0.00000000 Waves

{ "type": 13, "id": "22iAgtg8xCHx5adVyxLGAv5tWQKJ682BjqeSoN2eYzLL", "fee": 1400000, "feeAssetId": null, "timestamp": 1711110362964, "version": 2, "chainId": 84, "sender": "3NCCbzmJYurqgXL9bh85G7gzASswGVjkfRU", "senderPublicKey": "7dYS4cBUtMS3qg16og5S9C9U6ygyVxgTqhJGoYcsuYzr", "proofs": [ "3YBR4ANHWXMAw5YpYibrh6sA5bM4udGAy5NBvyTnqCoEBNinTcqH3vbkTQmQddBPjALvyeoNH1shNSbg6M2dHxBb" ], "script": "base64:BwJPCAISBgoECAgICBIICgYICAgICAgSCQoHCAgBCAgBCBIICgYICAEICAgSCAoGCAgBCAgIEgUKAwEICBIFCgMBCAgSABIAEgMKAQgSAwoBCD4ACVNFUEFSQVRPUgICX18ADEtFWV9NVUxUSVNJRwIITVVMVElTSUcACktFWV9TVEFUVVMCBlNUQVRVUwAIS0VZX0lOSVQCBElOSVQACktFWV9QQVVTRUQCBlBBVVNFRAAKS0VZX1BBVVNFUgIGUEFVU0VSAAxLRVlfRVhFQ1VUT1ICCEVYRUNVVE9SABNLRVlfQ0FMTEVSX0NPTlRSQUNUAg9DQUxMRVJfQ09OVFJBQ1QAD0tFWV9XQVZFU19WQVVMVAILV0FWRVNfVkFVTFQAE0tFWV9BQ0NPVU5UX1NUT1JBR0UCD0FDQ09VTlRfU1RPUkFHRQAJS0VZX0NIQUlOAgVDSEFJTgASS0VZX0FTU0VUX0NVUlJFTkNZAg5BU1NFVF9DVVJSRU5DWQASS0VZX0FTU0VUX1JFU0VSVkVTAg5BU1NFVF9SRVNFUlZFUwAVS0VZX0NVUlJFTkNZX1JFU0VSVkVTAhFDVVJSRU5DWV9SRVNFUlZFUwAMRlVOQ19ERVBPU0lUAgdkZXBvc2l0AAVXQVZFUwIFV0FWRVMAC1NQT1RfV0FMTEVUAgRTUE9UAAdNQVhfSU5UAP//////////fwALWkVST19CSUdJTlQJALYCAQAAAApPTkVfQklHSU5UCQC2AgEAAQEQX3ZhbGlkYXRlQWRkcmVzcwIIYWRkcmVzc18EZXJyXwQHJG1hdGNoMAkApggBBQhhZGRyZXNzXwMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwBgkAAgEFBGVycl8BDF92YWxpZGF0ZUludAQEdmFsXw5sb3dlckJvdW5kYXJ5Xw51cHBlckJvdW5kYXJ5XwRlcnJfAwMJAGYCBQ5sb3dlckJvdW5kYXJ5XwUEdmFsXwYJAGYCBQR2YWxfBQ51cHBlckJvdW5kYXJ5XwkAAgEFBGVycl8GAQ9fdmFsaWRhdGVCaWdJbnQDBHZhbF8ObG93ZXJCb3VuZGFyeV8EZXJyXwMJAL8CAgUObG93ZXJCb3VuZGFyeV8FBHZhbF8JAAIBBQRlcnJfBgEPX3ZhbGlkYXRlU3RyaW5nAgR2YWxfBGVycl8DAwkAZwIAAAkAsQIBBQR2YWxfBgkBCGNvbnRhaW5zAgUEdmFsXwUJU0VQQVJBVE9SCQACAQUEZXJyXwYBCV9sb2FkSW5pdAAEByRtYXRjaDAJAKAIAQUIS0VZX0lOSVQDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYQUHJG1hdGNoMAUBYQcBCV9zYXZlSW5pdAEHaXNJbml0XwkAzAgCCQEMQm9vbGVhbkVudHJ5AgUIS0VZX0lOSVQFB2lzSW5pdF8FA25pbAEKX2xvYWRQYXVzZQAEByRtYXRjaDAJAKAIAQUKS0VZX1BBVVNFRAMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFhBQckbWF0Y2gwBQFhBwEKX3NhdmVQYXVzZQEJaXNQYXVzZWRfCQDMCAIJAQxCb29sZWFuRW50cnkCBQpLRVlfUEFVU0VEBQlpc1BhdXNlZF8FA25pbAELX2xvYWRQYXVzZXIABAckbWF0Y2gwCQCiCAEFCktFWV9QQVVTRVIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAELX3NhdmVQYXVzZXIBB3BhdXNlcl8JAMwIAgkBC1N0cmluZ0VudHJ5AgUKS0VZX1BBVVNFUgkApQgBBQdwYXVzZXJfBQNuaWwBDV9sb2FkTXVsdGlzaWcABAckbWF0Y2gwCQCiCAEFDEtFWV9NVUxUSVNJRwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAAQ1fc2F2ZU11bHRpc2lnAQltdWx0aXNpZ18JAMwIAgkBC1N0cmluZ0VudHJ5AgUMS0VZX01VTFRJU0lHCQClCAEFCW11bHRpc2lnXwUDbmlsARNfbG9hZENhbGxlckNvbnRyYWN0AQhjaGFpbklkXwQHJG1hdGNoMAkAoggBCQC5CQIJAMwIAgUTS0VZX0NBTExFUl9DT05UUkFDVAkAzAgCCQCkAwEFCGNoYWluSWRfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAETX3NhdmVDYWxsZXJDb250cmFjdAIIY2hhaW5JZF8PY2FsbGVyQ29udHJhY3RfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBRNLRVlfQ0FMTEVSX0NPTlRSQUNUCQDMCAIJAKQDAQUIY2hhaW5JZF8FA25pbAUJU0VQQVJBVE9SBQ9jYWxsZXJDb250cmFjdF8FA25pbAENX2xvYWRFeGVjdXRvcgAEByRtYXRjaDAJAKIIAQUMS0VZX0VYRUNVVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABDV9zYXZlRXhlY3V0b3IBCWV4ZWN1dG9yXwkAzAgCCQELU3RyaW5nRW50cnkCBQxLRVlfRVhFQ1VUT1IJAKUIAQUJZXhlY3V0b3JfBQNuaWwBE19sb2FkQWNjb3VudFN0b3JhZ2UABAckbWF0Y2gwCQCiCAEFE0tFWV9BQ0NPVU5UX1NUT1JBR0UDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAETX3NhdmVBY2NvdW50U3RvcmFnZQEPYWNjb3VudFN0b3JhZ2VfCQDMCAIJAQtTdHJpbmdFbnRyeQIFE0tFWV9BQ0NPVU5UX1NUT1JBR0UJAKUIAQUPYWNjb3VudFN0b3JhZ2VfBQNuaWwBD19sb2FkV2F2ZXNWYXVsdAAEByRtYXRjaDAJAKIIAQUPS0VZX1dBVkVTX1ZBVUxUAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABD19zYXZlV2F2ZXNWYXVsdAELd2F2ZXNWYXVsdF8JAMwIAgkBC1N0cmluZ0VudHJ5AgUPS0VZX1dBVkVTX1ZBVUxUCQClCAEFC3dhdmVzVmF1bHRfBQNuaWwBCl9sb2FkQ2hhaW4BCGNoYWluSWRfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBQlLRVlfQ0hBSU4JAMwIAgkApAMBBQhjaGFpbklkXwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABCl9zYXZlQ2hhaW4CCGNoYWluSWRfBW5hbWVfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBQlLRVlfQ0hBSU4JAMwIAgkApAMBBQhjaGFpbklkXwUDbmlsBQlTRVBBUkFUT1IFBW5hbWVfBQNuaWwBEl9sb2FkQXNzZXRDdXJyZW5jeQIIY2hhaW5JZF8GYXNzZXRfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBRJLRVlfQVNTRVRfQ1VSUkVOQ1kJAMwIAgkApAMBBQhjaGFpbklkXwkAzAgCBQZhc3NldF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAARJfc2F2ZUFzc2V0Q3VycmVuY3kDCGNoYWluSWRfBmFzc2V0XwljdXJyZW5jeV8JAMwIAgkBC1N0cmluZ0VudHJ5AgkAuQkCCQDMCAIFEktFWV9BU1NFVF9DVVJSRU5DWQkAzAgCCQCkAwEFCGNoYWluSWRfCQDMCAIFBmFzc2V0XwUDbmlsBQlTRVBBUkFUT1IFCWN1cnJlbmN5XwUDbmlsARJfbG9hZEFzc2V0UmVzZXJ2ZXMCCGNoYWluSWRfBmFzc2V0XwQHJG1hdGNoMAkAoggBCQC5CQIJAMwIAgUSS0VZX0FTU0VUX1JFU0VSVkVTCQDMCAIJAKQDAQUIY2hhaW5JZF8JAMwIAgUGYXNzZXRfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJAKcDAQUBYQULWkVST19CSUdJTlQBEl9zYXZlQXNzZXRSZXNlcnZlcwMIY2hhaW5JZF8GYXNzZXRfCXJlc2VydmVzXwkAzAgCCQELU3RyaW5nRW50cnkCCQC5CQIJAMwIAgUSS0VZX0FTU0VUX1JFU0VSVkVTCQDMCAIJAKQDAQUIY2hhaW5JZF8JAMwIAgUGYXNzZXRfBQNuaWwFCVNFUEFSQVRPUgkApgMBBQlyZXNlcnZlc18FA25pbAEVX2xvYWRDdXJyZW5jeVJlc2VydmVzAQljdXJyZW5jeV8EByRtYXRjaDAJAKIIAQkAuQkCCQDMCAIFFUtFWV9DVVJSRU5DWV9SRVNFUlZFUwkAzAgCBQljdXJyZW5jeV8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkApwMBBQFhBQtaRVJPX0JJR0lOVAEVX3NhdmVDdXJyZW5jeVJlc2VydmVzAgljdXJyZW5jeV8JcmVzZXJ2ZXNfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBRVLRVlfQ1VSUkVOQ1lfUkVTRVJWRVMJAMwIAgUJY3VycmVuY3lfBQNuaWwFCVNFUEFSQVRPUgkApgMBBQlyZXNlcnZlc18FA25pbAERX29ubHlUaGlzQ29udHJhY3QBB2NhbGxlcl8DCQECIT0CBQdjYWxsZXJfBQR0aGlzCQACAQIZX29ubHlUaGlzQ29udHJhY3Q6IHJldmVydAYBEF93aGVuTXVsdGlzaWdTZXQAAwkAAAIJAQ1fbG9hZE11bHRpc2lnAAkBB0FkZHJlc3MBAQAJAAIBAhhfd2hlbk11bHRpc2lnU2V0OiByZXZlcnQGARNfd2hlbk5vdEluaXRpYWxpemVkAAMJAQlfbG9hZEluaXQACQACAQIbX3doZW5Ob3RJbml0aWFsaXplZDogcmV2ZXJ0BgEQX3doZW5Jbml0aWFsaXplZAADCQEBIQEJAQlfbG9hZEluaXQACQACAQIYX3doZW5Jbml0aWFsaXplZDogcmV2ZXJ0BgEOX3doZW5Ob3RQYXVzZWQAAwkBCl9sb2FkUGF1c2UACQACAQIWX3doZW5Ob3RQYXVzZWQ6IHJldmVydAYBC193aGVuUGF1c2VkAAMJAQEhAQkBCl9sb2FkUGF1c2UACQACAQITX3doZW5QYXVzZWQ6IHJldmVydAYBC19vbmx5UGF1c2VyAQdjYWxsZXJfAwkBAiE9AgUHY2FsbGVyXwkBC19sb2FkUGF1c2VyAAkAAgECE19vbmx5UGF1c2VyOiByZXZlcnQGARFfdmFsaWRhdGVFeGVjdXRvcgIEdmFsXwRlcnJfAwkBAiE9AgUEdmFsXwkBDV9sb2FkRXhlY3V0b3IACQACAQUEZXJyXwYBF192YWxpZGF0ZUNhbGxlckNvbnRyYWN0AwhjaGFpbklkXw9jYWxsZXJDb250cmFjdF8EZXJyXwMJAQIhPQIJARNfbG9hZENhbGxlckNvbnRyYWN0AQUIY2hhaW5JZF8FD2NhbGxlckNvbnRyYWN0XwkAAgEFBGVycl8GAQxfY2hhaW5FeGlzdHMCCGNoYWluSWRfBGVycl8DCQBnAgAACQCxAgEJAQpfbG9hZENoYWluAQUIY2hhaW5JZF8JAAIBBQRlcnJfBgEOX2NoYWluTm90RXhpc3QCCGNoYWluSWRfBGVycl8DCQBmAgkAsQIBCQEKX2xvYWRDaGFpbgEFCGNoYWluSWRfAAAJAAIBBQRlcnJfBgEUX2Fzc2V0Q3VycmVuY3lFeGlzdHMDCGNoYWluSWRfBmFzc2V0XwRlcnJfAwkAZwIAAAkAsQIBCQESX2xvYWRBc3NldEN1cnJlbmN5AgUIY2hhaW5JZF8FBmFzc2V0XwkAAgEFBGVycl8GARZfYXNzZXRDdXJyZW5jeU5vdEV4aXN0AwhjaGFpbklkXwZhc3NldF8EZXJyXwMJAGYCCQCxAgEJARJfbG9hZEFzc2V0Q3VycmVuY3kCBQhjaGFpbklkXwUGYXNzZXRfAAAJAAIBBQRlcnJfBgETX3ZhbGlkYXRlV2F2ZXNWYXVsdAIGY2FsbGVyBGVycl8DCQECIT0CCQEPX2xvYWRXYXZlc1ZhdWx0AAUGY2FsbGVyCQACAQUEZXJyXwYLAWkBBGluaXQECWV4ZWN1dG9yXwdwYXVzZXJfD2FjY291bnRTdG9yYWdlXwt3YXZlc1ZhdWx0XwQDZXJyAwMDAwMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARNfd2hlbk5vdEluaXRpYWxpemVkAAcJARBfd2hlbk11bHRpc2lnU2V0AAcJARBfdmFsaWRhdGVBZGRyZXNzAgUJZXhlY3V0b3JfAhZpbml0OiBpbnZhbGlkIGV4ZWN1dG9yBwkBEF92YWxpZGF0ZUFkZHJlc3MCBQdwYXVzZXJfAhRpbml0OiBpbnZhbGlkIHBhdXNlcgcJARBfdmFsaWRhdGVBZGRyZXNzAgUPYWNjb3VudFN0b3JhZ2VfAhxpbml0OiBpbnZhbGlkIGFjY291bnRTdG9yYWdlBwkBEF92YWxpZGF0ZUFkZHJlc3MCBQt3YXZlc1ZhdWx0XwIYaW5pdDogaW52YWxpZCB3YXZlc1ZhdWx0BwMJAAACBQNlcnIFA2VycgkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIJAQlfc2F2ZUluaXQBBgkBDV9zYXZlRXhlY3V0b3IBCQERQGV4dHJOYXRpdmUoMTA2MikBBQlleGVjdXRvcl8JAQtfc2F2ZVBhdXNlcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB3BhdXNlcl8JARNfc2F2ZUFjY291bnRTdG9yYWdlAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUPYWNjb3VudFN0b3JhZ2VfCQEPX3NhdmVXYXZlc1ZhdWx0AQkBEUBleHRyTmF0aXZlKDEwNjIpAQULd2F2ZXNWYXVsdF8FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHZGVwb3NpdAYPY2FsbGVyQ29udHJhY3RfBWZyb21fA3RvXwhjaGFpbklkXwZhc3NldF8HYW1vdW50XwQHY2hhaW5JZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFCGNoYWluSWRfAhhkZXBvc2l0OiBjaGFpbklkIG5vdCBpbnQEBmFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEFB2Ftb3VudF8CF2RlcG9zaXQ6IGFtb3VudCBub3QgaW50BANlcnIDAwMDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJAQxfY2hhaW5FeGlzdHMCBQdjaGFpbklkAhhkZXBvc2l0OiBpbnZhbGlkIGNoYWluSWQHCQEPX3ZhbGlkYXRlU3RyaW5nAgUFZnJvbV8CFWRlcG9zaXQ6IGludmFsaWQgZnJvbQcJAQ9fdmFsaWRhdGVTdHJpbmcCBQN0b18CE2RlcG9zaXQ6IGludmFsaWQgdG8HCQEUX2Fzc2V0Q3VycmVuY3lFeGlzdHMDBQdjaGFpbklkBQZhc3NldF8CFmRlcG9zaXQ6IGludmFsaWQgYXNzZXQHCQEPX3ZhbGlkYXRlQmlnSW50AwUGYW1vdW50BQtaRVJPX0JJR0lOVAIXZGVwb3NpdDogaW52YWxpZCBhbW91bnQHAwkAAAIFA2VycgUDZXJyBARlcnIxAwkAAAIJAQpfbG9hZENoYWluAQUHY2hhaW5JZAUFV0FWRVMJARNfdmFsaWRhdGVXYXZlc1ZhdWx0AggFAWkGY2FsbGVyAhxkZXBvc2l0OiBpbnZhbGlkIHdhdmVzIHZhdWx0AwkBEV92YWxpZGF0ZUV4ZWN1dG9yAggFAWkGY2FsbGVyAhlkZXBvc2l0OiBpbnZhbGlkIGV4ZWN1dG9yCQEXX3ZhbGlkYXRlQ2FsbGVyQ29udHJhY3QDBQdjaGFpbklkBQ9jYWxsZXJDb250cmFjdF8CIGRlcG9zaXQ6IGludmFsaWQgY2FsbGVyIGNvbnRyYWN0BwMJAAACBQRlcnIxBQRlcnIxBBBuZXdBc3NldFJlc2VydmVzCQC3AgIJARJfbG9hZEFzc2V0UmVzZXJ2ZXMCBQdjaGFpbklkBQZhc3NldF8FBmFtb3VudAQIY3VycmVuY3kJARJfbG9hZEFzc2V0Q3VycmVuY3kCBQdjaGFpbklkBQZhc3NldF8EE25ld0N1cnJlbmN5UmVzZXJ2ZXMJALcCAgkBFV9sb2FkQ3VycmVuY3lSZXNlcnZlcwEFCGN1cnJlbmN5BQZhbW91bnQECmludm9jYXRpb24JAPwHBAkBE19sb2FkQWNjb3VudFN0b3JhZ2UABQxGVU5DX0RFUE9TSVQJAMwIAgUDdG9fCQDMCAIFC1NQT1RfV0FMTEVUCQDMCAIFCGN1cnJlbmN5CQDMCAIFB2Ftb3VudF8FA25pbAUDbmlsAwkAAAIFCmludm9jYXRpb24FCmludm9jYXRpb24JAJQKAgkAzggCCQESX3NhdmVBc3NldFJlc2VydmVzAwUHY2hhaW5JZAUGYXNzZXRfBRBuZXdBc3NldFJlc2VydmVzCQEVX3NhdmVDdXJyZW5jeVJlc2VydmVzAgUIY3VycmVuY3kFE25ld0N1cnJlbmN5UmVzZXJ2ZXMFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEId2l0aGRyYXcHBWZyb21fA3RvXwhjaGFpbklkXwZhc3NldF8HYW1vdW50Xwp0aW1lc3RhbXBfCnNpZ25hdHVyZV8JAJQKAgUDbmlsBQR1bml0AWkBEXJlcXVlc3RXaXRoZHJhd2FsBgVmcm9tXwN0b18IY2hhaW5JZF8GYXNzZXRfB2Ftb3VudF8Kc2lnbmF0dXJlXwkAlAoCBQNuaWwFBHVuaXQBaQERZXhlY3V0ZVdpdGhkcmF3YWwGBWZyb21fA3RvXwhjaGFpbklkXwZhc3NldF8HYW1vdW50XwpzaWduYXR1cmVfCQCUCgIFA25pbAUEdW5pdAFpAQhhZGRDaGFpbgMIY2hhaW5JZF8FbmFtZV8PY2FsbGVyQ29udHJhY3RfBANlcnIDAwMDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQEMX3ZhbGlkYXRlSW50BAUIY2hhaW5JZF8AAAUHTUFYX0lOVAIZYWRkQ2hhaW46IGludmFsaWQgY2hhaW5JZAcJAQ9fdmFsaWRhdGVTdHJpbmcCBQVuYW1lXwIWYWRkQ2hhaW46IGludmFsaWQgbmFtZQcJAQ9fdmFsaWRhdGVTdHJpbmcCBQ9jYWxsZXJDb250cmFjdF8CIGFkZENoYWluOiBpbnZhbGlkIGNhbGxlckNvbnRyYWN0BwkBDl9jaGFpbk5vdEV4aXN0AgUIY2hhaW5JZF8CGGFkZENoYWluOiBhbHJlYWR5IGV4aXN0cwcDCQAAAgUDZXJyBQNlcnIJAJQKAgkAzggCCQEKX3NhdmVDaGFpbgIFCGNoYWluSWRfBQVuYW1lXwkBE19zYXZlQ2FsbGVyQ29udHJhY3QCBQhjaGFpbklkXwUPY2FsbGVyQ29udHJhY3RfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGFkZEFzc2V0AwhjaGFpbklkXwZhc3NldF8JY3VycmVuY3lfBANlcnIDAwMDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQEMX2NoYWluRXhpc3RzAgUIY2hhaW5JZF8CGWFkZEFzc2V0OiBpbnZhbGlkIGNoYWluSWQHCQEPX3ZhbGlkYXRlU3RyaW5nAgUGYXNzZXRfAhdhZGRBc3NldDogaW52YWxpZCBhc3NldAcJAQ9fdmFsaWRhdGVTdHJpbmcCBQljdXJyZW5jeV8CGmFkZEFzc2V0OiBpbnZhbGlkIGN1cnJlbmN5BwkBFl9hc3NldEN1cnJlbmN5Tm90RXhpc3QDBQhjaGFpbklkXwUGYXNzZXRfAhhhZGRBc3NldDogYWxyZWFkeSBleGlzdHMHAwkAAAIFA2VycgUDZXJyCQCUCgIJARJfc2F2ZUFzc2V0Q3VycmVuY3kDBQhjaGFpbklkXwUGYXNzZXRfBQljdXJyZW5jeV8FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFcGF1c2UABANlcnIDAwkBC19vbmx5UGF1c2VyAQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQEOX3doZW5Ob3RQYXVzZWQABwMJAAACBQNlcnIFA2VycgkAlAoCCQEKX3NhdmVQYXVzZQEGBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBB3VucGF1c2UABANlcnIDAwkBC19vbmx5UGF1c2VyAQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQELX3doZW5QYXVzZWQABwMJAAACBQNlcnIFA2VycgkAlAoCCQEKX3NhdmVQYXVzZQEHBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDHVwZGF0ZVBhdXNlcgEHcGF1c2VyXwQDZXJyAwMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBEF92YWxpZGF0ZUFkZHJlc3MCBQdwYXVzZXJfAhx1cGRhdGVQYXVzZXI6IGludmFsaWQgcGF1c2VyBwMJAAACBQNlcnIFA2VycgkAlAoCCQELX3NhdmVQYXVzZXIBCQERQGV4dHJOYXRpdmUoMTA2MikBBQdwYXVzZXJfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC3NldE11bHRpc2lnAQltdWx0aXNpZ18EA2VycgMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF92YWxpZGF0ZUFkZHJlc3MCBQltdWx0aXNpZ18CHXNldE11bHRpc2lnOiBpbnZhbGlkIG11bHRpc2lnBwMJAAACBQNlcnIFA2VycgkAlAoCCQENX3NhdmVNdWx0aXNpZwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCW11bHRpc2lnXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEByRtYXRjaDAJAKIIAQUMS0VZX01VTFRJU0lHAwkAAQIFByRtYXRjaDACBlN0cmluZwQIbXVsdGlzaWcFByRtYXRjaDAJAQt2YWx1ZU9yRWxzZQIJAJsIAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUIbXVsdGlzaWcJALkJAgkAzAgCBQpLRVlfU1RBVFVTCQDMCAIJAKUIAQUEdGhpcwkAzAgCCQDYBAEIBQJ0eAJpZAUDbmlsBQlTRVBBUkFUT1IHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5JVk0yw==", "height": 3029240, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CLk4CVvdQTVRU3ieWRkRFxpCDa1h1QrAJPCPCMGJaSTo Next: none Diff:
OldNewDifferences
2323
2424 let k = "CHAIN"
2525
26-let l = "ASSET_TICKER"
26+let l = "ASSET_CURRENCY"
2727
2828 let m = "ASSET_RESERVES"
2929
30-let n = "TICKER_RESERVES"
30+let n = "CURRENCY_RESERVES"
3131
3232 let o = "deposit"
3333
416416 else false)
417417 then E(ai, "addAsset: invalid asset")
418418 else false)
419- then E(ak, "addAsset: invalid ticker")
419+ then E(ak, "addAsset: invalid currency")
420420 else false)
421421 then aD(S, ai, "addAsset: already exists")
422422 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 7 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "MULTISIG"
77
88 let c = "STATUS"
99
1010 let d = "INIT"
1111
1212 let e = "PAUSED"
1313
1414 let f = "PAUSER"
1515
1616 let g = "EXECUTOR"
1717
1818 let h = "CALLER_CONTRACT"
1919
2020 let i = "WAVES_VAULT"
2121
2222 let j = "ACCOUNT_STORAGE"
2323
2424 let k = "CHAIN"
2525
26-let l = "ASSET_TICKER"
26+let l = "ASSET_CURRENCY"
2727
2828 let m = "ASSET_RESERVES"
2929
30-let n = "TICKER_RESERVES"
30+let n = "CURRENCY_RESERVES"
3131
3232 let o = "deposit"
3333
3434 let p = "WAVES"
3535
3636 let q = "SPOT"
3737
3838 let r = 9223372036854775807
3939
4040 let s = toBigInt(0)
4141
4242 let t = toBigInt(1)
4343
4444 func u (v,w) = {
4545 let x = addressFromString(v)
4646 if ($isInstanceOf(x, "Address"))
4747 then {
4848 let y = x
4949 true
5050 }
5151 else throw(w)
5252 }
5353
5454
5555 func z (A,B,C,w) = if (if ((B > A))
5656 then true
5757 else (A > C))
5858 then throw(w)
5959 else true
6060
6161
6262 func D (A,B,w) = if ((B > A))
6363 then throw(w)
6464 else true
6565
6666
6767 func E (A,w) = if (if ((0 >= size(A)))
6868 then true
6969 else contains(A, a))
7070 then throw(w)
7171 else true
7272
7373
7474 func F () = {
7575 let x = getBoolean(d)
7676 if ($isInstanceOf(x, "Boolean"))
7777 then {
7878 let y = x
7979 y
8080 }
8181 else false
8282 }
8383
8484
8585 func G (H) = [BooleanEntry(d, H)]
8686
8787
8888 func I () = {
8989 let x = getBoolean(e)
9090 if ($isInstanceOf(x, "Boolean"))
9191 then {
9292 let y = x
9393 y
9494 }
9595 else false
9696 }
9797
9898
9999 func J (K) = [BooleanEntry(e, K)]
100100
101101
102102 func L () = {
103103 let x = getString(f)
104104 if ($isInstanceOf(x, "String"))
105105 then {
106106 let y = x
107107 addressFromStringValue(y)
108108 }
109109 else Address(base58'')
110110 }
111111
112112
113113 func M (N) = [StringEntry(f, toString(N))]
114114
115115
116116 func O () = {
117117 let x = getString(b)
118118 if ($isInstanceOf(x, "String"))
119119 then {
120120 let y = x
121121 addressFromStringValue(y)
122122 }
123123 else Address(base58'')
124124 }
125125
126126
127127 func P (Q) = [StringEntry(b, toString(Q))]
128128
129129
130130 func R (S) = {
131131 let x = getString(makeString([h, toString(S)], a))
132132 if ($isInstanceOf(x, "String"))
133133 then {
134134 let y = x
135135 y
136136 }
137137 else ""
138138 }
139139
140140
141141 func T (S,U) = [StringEntry(makeString([h, toString(S)], a), U)]
142142
143143
144144 func V () = {
145145 let x = getString(g)
146146 if ($isInstanceOf(x, "String"))
147147 then {
148148 let y = x
149149 addressFromStringValue(y)
150150 }
151151 else Address(base58'')
152152 }
153153
154154
155155 func W (X) = [StringEntry(g, toString(X))]
156156
157157
158158 func Y () = {
159159 let x = getString(j)
160160 if ($isInstanceOf(x, "String"))
161161 then {
162162 let y = x
163163 addressFromStringValue(y)
164164 }
165165 else Address(base58'')
166166 }
167167
168168
169169 func Z (aa) = [StringEntry(j, toString(aa))]
170170
171171
172172 func ab () = {
173173 let x = getString(i)
174174 if ($isInstanceOf(x, "String"))
175175 then {
176176 let y = x
177177 addressFromStringValue(y)
178178 }
179179 else Address(base58'')
180180 }
181181
182182
183183 func ac (ad) = [StringEntry(i, toString(ad))]
184184
185185
186186 func ae (S) = {
187187 let x = getString(makeString([k, toString(S)], a))
188188 if ($isInstanceOf(x, "String"))
189189 then {
190190 let y = x
191191 y
192192 }
193193 else ""
194194 }
195195
196196
197197 func af (S,ag) = [StringEntry(makeString([k, toString(S)], a), ag)]
198198
199199
200200 func ah (S,ai) = {
201201 let x = getString(makeString([l, toString(S), ai], a))
202202 if ($isInstanceOf(x, "String"))
203203 then {
204204 let y = x
205205 y
206206 }
207207 else ""
208208 }
209209
210210
211211 func aj (S,ai,ak) = [StringEntry(makeString([l, toString(S), ai], a), ak)]
212212
213213
214214 func al (S,ai) = {
215215 let x = getString(makeString([m, toString(S), ai], a))
216216 if ($isInstanceOf(x, "String"))
217217 then {
218218 let y = x
219219 parseBigIntValue(y)
220220 }
221221 else s
222222 }
223223
224224
225225 func am (S,ai,an) = [StringEntry(makeString([m, toString(S), ai], a), toString(an))]
226226
227227
228228 func ao (ak) = {
229229 let x = getString(makeString([n, ak], a))
230230 if ($isInstanceOf(x, "String"))
231231 then {
232232 let y = x
233233 parseBigIntValue(y)
234234 }
235235 else s
236236 }
237237
238238
239239 func ap (ak,an) = [StringEntry(makeString([n, ak], a), toString(an))]
240240
241241
242242 func aq (ar) = if ((ar != this))
243243 then throw("_onlyThisContract: revert")
244244 else true
245245
246246
247247 func as () = if ((O() == Address(base58'')))
248248 then throw("_whenMultisigSet: revert")
249249 else true
250250
251251
252252 func at () = if (F())
253253 then throw("_whenNotInitialized: revert")
254254 else true
255255
256256
257257 func au () = if (!(F()))
258258 then throw("_whenInitialized: revert")
259259 else true
260260
261261
262262 func av () = if (I())
263263 then throw("_whenNotPaused: revert")
264264 else true
265265
266266
267267 func aw () = if (!(I()))
268268 then throw("_whenPaused: revert")
269269 else true
270270
271271
272272 func ax (ar) = if ((ar != L()))
273273 then throw("_onlyPauser: revert")
274274 else true
275275
276276
277277 func ay (A,w) = if ((A != V()))
278278 then throw(w)
279279 else true
280280
281281
282282 func az (S,U,w) = if ((R(S) != U))
283283 then throw(w)
284284 else true
285285
286286
287287 func aA (S,w) = if ((0 >= size(ae(S))))
288288 then throw(w)
289289 else true
290290
291291
292292 func aB (S,w) = if ((size(ae(S)) > 0))
293293 then throw(w)
294294 else true
295295
296296
297297 func aC (S,ai,w) = if ((0 >= size(ah(S, ai))))
298298 then throw(w)
299299 else true
300300
301301
302302 func aD (S,ai,w) = if ((size(ah(S, ai)) > 0))
303303 then throw(w)
304304 else true
305305
306306
307307 func aE (aF,w) = if ((ab() != aF))
308308 then throw(w)
309309 else true
310310
311311
312312 @Callable(aG)
313313 func init (X,N,aa,ad) = {
314314 let aH = if (if (if (if (if (if (aq(aG.caller))
315315 then at()
316316 else false)
317317 then as()
318318 else false)
319319 then u(X, "init: invalid executor")
320320 else false)
321321 then u(N, "init: invalid pauser")
322322 else false)
323323 then u(aa, "init: invalid accountStorage")
324324 else false)
325325 then u(ad, "init: invalid wavesVault")
326326 else false
327327 if ((aH == aH))
328328 then $Tuple2(((((G(true) ++ W(addressFromStringValue(X))) ++ M(addressFromStringValue(N))) ++ Z(addressFromStringValue(aa))) ++ ac(addressFromStringValue(ad))), unit)
329329 else throw("Strict value is not equal to itself.")
330330 }
331331
332332
333333
334334 @Callable(aG)
335335 func deposit (U,aI,aJ,S,ai,aK) = {
336336 let aL = valueOrErrorMessage(parseInt(S), "deposit: chainId not int")
337337 let aM = valueOrErrorMessage(parseBigInt(aK), "deposit: amount not int")
338338 let aH = if (if (if (if (if (if (au())
339339 then av()
340340 else false)
341341 then aA(aL, "deposit: invalid chainId")
342342 else false)
343343 then E(aI, "deposit: invalid from")
344344 else false)
345345 then E(aJ, "deposit: invalid to")
346346 else false)
347347 then aC(aL, ai, "deposit: invalid asset")
348348 else false)
349349 then D(aM, s, "deposit: invalid amount")
350350 else false
351351 if ((aH == aH))
352352 then {
353353 let aN = if ((ae(aL) == p))
354354 then aE(aG.caller, "deposit: invalid waves vault")
355355 else if (ay(aG.caller, "deposit: invalid executor"))
356356 then az(aL, U, "deposit: invalid caller contract")
357357 else false
358358 if ((aN == aN))
359359 then {
360360 let aO = (al(aL, ai) + aM)
361361 let aP = ah(aL, ai)
362362 let aQ = (ao(aP) + aM)
363363 let aR = invoke(Y(), o, [aJ, q, aP, aK], nil)
364364 if ((aR == aR))
365365 then $Tuple2((am(aL, ai, aO) ++ ap(aP, aQ)), unit)
366366 else throw("Strict value is not equal to itself.")
367367 }
368368 else throw("Strict value is not equal to itself.")
369369 }
370370 else throw("Strict value is not equal to itself.")
371371 }
372372
373373
374374
375375 @Callable(aG)
376376 func withdraw (aI,aJ,S,ai,aK,aS,aT) = $Tuple2(nil, unit)
377377
378378
379379
380380 @Callable(aG)
381381 func requestWithdrawal (aI,aJ,S,ai,aK,aT) = $Tuple2(nil, unit)
382382
383383
384384
385385 @Callable(aG)
386386 func executeWithdrawal (aI,aJ,S,ai,aK,aT) = $Tuple2(nil, unit)
387387
388388
389389
390390 @Callable(aG)
391391 func addChain (S,ag,U) = {
392392 let aH = if (if (if (if (if (aq(aG.caller))
393393 then au()
394394 else false)
395395 then z(S, 0, r, "addChain: invalid chainId")
396396 else false)
397397 then E(ag, "addChain: invalid name")
398398 else false)
399399 then E(U, "addChain: invalid callerContract")
400400 else false)
401401 then aB(S, "addChain: already exists")
402402 else false
403403 if ((aH == aH))
404404 then $Tuple2((af(S, ag) ++ T(S, U)), unit)
405405 else throw("Strict value is not equal to itself.")
406406 }
407407
408408
409409
410410 @Callable(aG)
411411 func addAsset (S,ai,ak) = {
412412 let aH = if (if (if (if (if (aq(aG.caller))
413413 then au()
414414 else false)
415415 then aA(S, "addAsset: invalid chainId")
416416 else false)
417417 then E(ai, "addAsset: invalid asset")
418418 else false)
419- then E(ak, "addAsset: invalid ticker")
419+ then E(ak, "addAsset: invalid currency")
420420 else false)
421421 then aD(S, ai, "addAsset: already exists")
422422 else false
423423 if ((aH == aH))
424424 then $Tuple2(aj(S, ai, ak), unit)
425425 else throw("Strict value is not equal to itself.")
426426 }
427427
428428
429429
430430 @Callable(aG)
431431 func pause () = {
432432 let aH = if (if (ax(aG.caller))
433433 then au()
434434 else false)
435435 then av()
436436 else false
437437 if ((aH == aH))
438438 then $Tuple2(J(true), unit)
439439 else throw("Strict value is not equal to itself.")
440440 }
441441
442442
443443
444444 @Callable(aG)
445445 func unpause () = {
446446 let aH = if (if (ax(aG.caller))
447447 then au()
448448 else false)
449449 then aw()
450450 else false
451451 if ((aH == aH))
452452 then $Tuple2(J(false), unit)
453453 else throw("Strict value is not equal to itself.")
454454 }
455455
456456
457457
458458 @Callable(aG)
459459 func updatePauser (N) = {
460460 let aH = if (if (aq(aG.caller))
461461 then au()
462462 else false)
463463 then u(N, "updatePauser: invalid pauser")
464464 else false
465465 if ((aH == aH))
466466 then $Tuple2(M(addressFromStringValue(N)), unit)
467467 else throw("Strict value is not equal to itself.")
468468 }
469469
470470
471471
472472 @Callable(aG)
473473 func setMultisig (Q) = {
474474 let aH = if (aq(aG.caller))
475475 then u(Q, "setMultisig: invalid multisig")
476476 else false
477477 if ((aH == aH))
478478 then $Tuple2(P(addressFromStringValue(Q)), unit)
479479 else throw("Strict value is not equal to itself.")
480480 }
481481
482482
483483 @Verifier(aU)
484484 func aV () = {
485485 let x = getString(b)
486486 if ($isInstanceOf(x, "String"))
487487 then {
488488 let aW = x
489489 valueOrElse(getBoolean(addressFromStringValue(aW), makeString([c, toString(this), toBase58String(aU.id)], a)), false)
490490 }
491491 else sigVerify(aU.bodyBytes, aU.proofs[0], aU.senderPublicKey)
492492 }
493493

github/deemru/w8io/169f3d6 
46.46 ms