tx · AYFnp5rYW8kJxTU3XfHTS36TQmnTRmvNWWLoDDyZfUDy

3Mx4GxjrawhKHBgMKH9C5Hmbj8ePZDrs8ed:  -0.01400000 Waves

2023.04.18 17:01 [2540073] smart account 3Mx4GxjrawhKHBgMKH9C5Hmbj8ePZDrs8ed > SELF 0.00000000 Waves

{ "type": 13, "id": "AYFnp5rYW8kJxTU3XfHTS36TQmnTRmvNWWLoDDyZfUDy", "fee": 1400000, "feeAssetId": null, "timestamp": 1681826148359, "version": 2, "chainId": 84, "sender": "3Mx4GxjrawhKHBgMKH9C5Hmbj8ePZDrs8ed", "senderPublicKey": "9DpEgmia9fGpxtGGDeSMtER4g9qB7WQPPYTKTHzqSFuX", "proofs": [ "55A3Pkg1sZfrSxfFNUnViscLeULjWRXzFLig9eeKbXoyfXir346B8vEHLivJi9q3H2kn7KvY1vizhDafm2H4krgX" ], "script": "base64:BgJNCAISBgoECAgICBIJCgcICAgICAgIEgUKAwEIARIECgIBCBIDCgEIEgQKAgEEEgMKAQgSCwoJAQgIAQEBAQEEEgASABIDCgEIEgMKAQg7AAlTRVBBUkFUT1ICAl9fAAhLRVlfSU5JVAIESU5JVAAMS0VZX01VTFRJU0lHAghNVUxUSVNJRwAKS0VZX1NUQVRVUwIGU1RBVFVTAApLRVlfUEFVU0VEAgZQQVVTRUQACktFWV9QQVVTRVICBlBBVVNFUgAMS0VZX0VYRUNVVE9SAghFWEVDVVRPUgAQS0VZX1JPT1RfQURBUFRFUgIMUk9PVF9BREFQVEVSABNLRVlfQ0FMTEVSX0NPTlRSQUNUAg9DQUxMRVJfQ09OVFJBQ1QACUtFWV9DSEFJTgIFQ0hBSU4AC0tFWV9CSU5ESU5HAgdCSU5ESU5HAAdLRVlfRkVFAgNGRUUAEUtFWV9GRUVfUkVDSVBJRU5UAg1GRUVfUkVDSVBJRU5UABNGVU5DX1JFTEVBU0VfVE9LRU5TAg1yZWxlYXNlVG9rZW5zAAVXQVZFUwIFV0FWRVMADldBVkVTX0RFQ0lNQUxTAAgACERFQ0lNQUxTAAYADlBFUkNFTlRfRkFDVE9SAMCEPQAHTUFYX0lOVAD//////////38BEF92YWxpZGF0ZUFkZHJlc3MCCGFkZHJlc3NfBGVycl8EByRtYXRjaDAJAKYIAQUIYWRkcmVzc18DCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAYJAAIBBQRlcnJfAQ5fdmFsaWRhdGVBc3NldAIIYXNzZXRJZF8EZXJyXwQHJG1hdGNoMAkA7AcBCQDZBAEFCGFzc2V0SWRfAwkAAQIFByRtYXRjaDACBUFzc2V0BAFhBQckbWF0Y2gwBgkAAgEFBGVycl8BDF92YWxpZGF0ZUludAQEdmFsXw5sb3dlckJvdW5kYXJ5Xw51cHBlckJvdW5kYXJ5XwRlcnJfAwMJAGYCBQ5sb3dlckJvdW5kYXJ5XwUEdmFsXwYJAGYCBQR2YWxfBQ51cHBlckJvdW5kYXJ5XwkAAgEFBGVycl8GAQ1fdmFsaWRhdGVCb29sAwR2YWxfB3RhcmdldF8EZXJyXwMJAQIhPQIFBHZhbF8FB3RhcmdldF8JAAIBBQRlcnJfBgEVX3ZhbGlkYXRlUGF5bWVudHNTaXplAwlwYXltZW50c18HdGFyZ2V0XwRlcnJfAwkBAiE9AgkAkAMBBQlwYXltZW50c18FB3RhcmdldF8JAAIBBQRlcnJfBgESX25vcm1hbGl6ZURlY2ltYWxzAwdhbW91bnRfD3NvdXJjZURlY2ltYWxzXw90YXJnZXREZWNpbWFsc18DCQBnAgUPc291cmNlRGVjaW1hbHNfBQ90YXJnZXREZWNpbWFsc18JAGkCBQdhbW91bnRfCQBsBgAKAAAJAGUCBQ9zb3VyY2VEZWNpbWFsc18FD3RhcmdldERlY2ltYWxzXwAAAAAFBERPV04JAGgCBQdhbW91bnRfCQBsBgAKAAAJAGUCBQ90YXJnZXREZWNpbWFsc18FD3NvdXJjZURlY2ltYWxzXwAAAAAFBERPV04BCV9sb2FkSW5pdAAEByRtYXRjaDAJAKAIAQUIS0VZX0lOSVQDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYQUHJG1hdGNoMAUBYQcBCV9zYXZlSW5pdAEHaXNJbml0XwkAzAgCCQEMQm9vbGVhbkVudHJ5AgUIS0VZX0lOSVQFB2lzSW5pdF8FA25pbAEKX2xvYWRQYXVzZQAEByRtYXRjaDAJAKAIAQUKS0VZX1BBVVNFRAMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFhBQckbWF0Y2gwBQFhBwEKX3NhdmVQYXVzZQEJaXNQYXVzZWRfCQDMCAIJAQxCb29sZWFuRW50cnkCBQpLRVlfUEFVU0VEBQlpc1BhdXNlZF8FA25pbAELX2xvYWRQYXVzZXIABAckbWF0Y2gwCQCiCAEFCktFWV9QQVVTRVIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAELX3NhdmVQYXVzZXIBB3BhdXNlcl8JAMwIAgkBC1N0cmluZ0VudHJ5AgUKS0VZX1BBVVNFUgkApQgBBQdwYXVzZXJfBQNuaWwBDV9sb2FkTXVsdGlzaWcABAckbWF0Y2gwCQCiCAEFDEtFWV9NVUxUSVNJRwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAAQ1fc2F2ZU11bHRpc2lnAQltdWx0aXNpZ18JAMwIAgkBC1N0cmluZ0VudHJ5AgUMS0VZX01VTFRJU0lHCQClCAEFCW11bHRpc2lnXwUDbmlsAQ1fbG9hZEV4ZWN1dG9yAAQHJG1hdGNoMAkAoggBBQxLRVlfRVhFQ1VUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAENX3NhdmVFeGVjdXRvcgEJZXhlY3V0b3JfCQDMCAIJAQtTdHJpbmdFbnRyeQIFDEtFWV9FWEVDVVRPUgkApQgBBQlleGVjdXRvcl8FA25pbAETX2xvYWRDYWxsZXJDb250cmFjdAAEByRtYXRjaDAJAKIIAQUTS0VZX0NBTExFUl9DT05UUkFDVAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAETX3NhdmVDYWxsZXJDb250cmFjdAEHY2FsbGVyXwkAzAgCCQELU3RyaW5nRW50cnkCBRNLRVlfQ0FMTEVSX0NPTlRSQUNUBQdjYWxsZXJfBQNuaWwBCl9sb2FkQ2hhaW4BCGNoYWluSWRfBAckbWF0Y2gwCQCgCAEJALkJAgkAzAgCBQlLRVlfQ0hBSU4JAMwIAgkApAMBBQhjaGFpbklkXwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYQUHJG1hdGNoMAUBYQcBCl9zYXZlQ2hhaW4CCGNoYWluSWRfBHZhbF8JAMwIAgkBDEJvb2xlYW5FbnRyeQIJALkJAgkAzAgCBQlLRVlfQ0hBSU4JAMwIAgkApAMBBQhjaGFpbklkXwUDbmlsBQlTRVBBUkFUT1IFBHZhbF8FA25pbAEMX2xvYWRCaW5kaW5nAhFleGVjdXRpb25DaGFpbklkXwhhc3NldElkXwQHJG1hdGNoMAkAoggBCQC5CQIJAMwIAgULS0VZX0JJTkRJTkcJAMwIAgkApAMBBRFleGVjdXRpb25DaGFpbklkXwkAzAgCCQDYBAEFCGFzc2V0SWRfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAEBnN0cnVjdAkAtQkCBQFhBQlTRVBBUkFUT1IJAJoKCAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQZzdHJ1Y3QAAAkAkQMCBQZzdHJ1Y3QAAQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBnN0cnVjdAACCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGc3RydWN0AAMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQZzdHJ1Y3QABAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBnN0cnVjdAAFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGc3RydWN0AAYDCQAAAgkAkQMCBQZzdHJ1Y3QABwIBMQYHCQCaCggJAQdBZGRyZXNzAQEAAgAAAAAAAAAAAAAABwEMX3NhdmVCaW5kaW5nAxFleGVjdXRpb25DaGFpbklkXwhhc3NldElkXwhiaW5kaW5nXwkAzAgCCQELU3RyaW5nRW50cnkCCQC5CQIJAMwIAgULS0VZX0JJTkRJTkcJAMwIAgkApAMBBRFleGVjdXRpb25DaGFpbklkXwkAzAgCCQDYBAEFCGFzc2V0SWRfBQNuaWwFCVNFUEFSQVRPUgkAuQkCCQDMCAIJAKUIAQgFCGJpbmRpbmdfAl8xCQDMCAIIBQhiaW5kaW5nXwJfMgkAzAgCCQCkAwEIBQhiaW5kaW5nXwJfMwkAzAgCCQCkAwEIBQhiaW5kaW5nXwJfNAkAzAgCCQCkAwEIBQhiaW5kaW5nXwJfNQkAzAgCCQCkAwEIBQhiaW5kaW5nXwJfNgkAzAgCCQCkAwEIBQhiaW5kaW5nXwJfNwkAzAgCAwgFCGJpbmRpbmdfAl84AgExAgEwBQNuaWwFCVNFUEFSQVRPUgUDbmlsAQhfbG9hZEZlZQEIYXNzZXRJZF8EByRtYXRjaDAJAJ8IAQkAuQkCCQDMCAIFB0tFWV9GRUUJAMwIAgkA2AQBBQhhc3NldElkXwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAABCF9zYXZlRmVlAghhc3NldElkXwR2YWxfCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQC5CQIJAMwIAgUHS0VZX0ZFRQkAzAgCCQDYBAEFCGFzc2V0SWRfBQNuaWwFCVNFUEFSQVRPUgUEdmFsXwUDbmlsARBfbG9hZFJvb3RBZGFwdGVyAAQHJG1hdGNoMAkAoggBBRBLRVlfUk9PVF9BREFQVEVSAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABEF9zYXZlUm9vdEFkYXB0ZXIBCGFkYXB0ZXJfCQDMCAIJAQtTdHJpbmdFbnRyeQIFEEtFWV9ST09UX0FEQVBURVIJAKUIAQUIYWRhcHRlcl8FA25pbAERX2xvYWRGZWVSZWNpcGllbnQABAckbWF0Y2gwCQCiCAEFEUtFWV9GRUVfUkVDSVBJRU5UAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABEV9zYXZlRmVlUmVjaXBpZW50AQR2YWxfCQDMCAIJAQtTdHJpbmdFbnRyeQIFEUtFWV9GRUVfUkVDSVBJRU5UCQClCAEFBHZhbF8FA25pbAERX29ubHlUaGlzQ29udHJhY3QBB2NhbGxlcl8DCQECIT0CBQdjYWxsZXJfBQR0aGlzCQACAQIZX29ubHlUaGlzQ29udHJhY3Q6IHJldmVydAYBEF93aGVuTXVsdGlzaWdTZXQAAwkAAAIJAQ1fbG9hZE11bHRpc2lnAAkBB0FkZHJlc3MBAQAJAAIBAhhfd2hlbk11bHRpc2lnU2V0OiByZXZlcnQGARNfd2hlbk5vdEluaXRpYWxpemVkAAMJAQlfbG9hZEluaXQACQACAQIbX3doZW5Ob3RJbml0aWFsaXplZDogcmV2ZXJ0BgEQX3doZW5Jbml0aWFsaXplZAADCQEBIQEJAQlfbG9hZEluaXQACQACAQIYX3doZW5Jbml0aWFsaXplZDogcmV2ZXJ0BgEOX3doZW5Ob3RQYXVzZWQAAwkBCl9sb2FkUGF1c2UACQACAQIWX3doZW5Ob3RQYXVzZWQ6IHJldmVydAYBC193aGVuUGF1c2VkAAMJAQEhAQkBCl9sb2FkUGF1c2UACQACAQITX3doZW5QYXVzZWQ6IHJldmVydAYBC19vbmx5UGF1c2VyAQdjYWxsZXJfAwkBAiE9AgUHY2FsbGVyXwkBC19sb2FkUGF1c2VyAAkAAgECE19vbmx5UGF1c2VyOiByZXZlcnQGAQZfYXNJbnQBBHZhbF8EByRtYXRjaDAFBHZhbF8DCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhCQACAQIOX2FzSW50OiByZXZlcnQBCF9hc0J5dGVzAQR2YWxfBAckbWF0Y2gwBQR2YWxfAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWEFByRtYXRjaDAFAWEJAAIBAhBfYXNCeXRlczogcmV2ZXJ0ARFfdmFsaWRhdGVFeGVjdXRvcgIEdmFsXwRlcnJfAwkBAiE9AgUEdmFsXwkBDV9sb2FkRXhlY3V0b3IACQACAQUEZXJyXwYBD192YWxpZGF0ZUNhbGxlcgIEdmFsXwRlcnJfAwkBAiE9AgUEdmFsXwkBE19sb2FkQ2FsbGVyQ29udHJhY3QACQACAQUEZXJyXwYBDl92YWxpZGF0ZUNoYWluAhFleGVjdXRpb25DaGFpbklkXwRlcnJfAwkBASEBCQEKX2xvYWRDaGFpbgEFEWV4ZWN1dGlvbkNoYWluSWRfCQACAQUEZXJyXwYMAWkBBGluaXQECWV4ZWN1dG9yXwhhZGFwdGVyXwdwYXVzZXJfDWZlZVJlY2lwaWVudF8EA2VycgMDAwMDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQETX3doZW5Ob3RJbml0aWFsaXplZAAHCQEQX3doZW5NdWx0aXNpZ1NldAAHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFCWV4ZWN1dG9yXwIWaW5pdDogaW52YWxpZCBleGVjdXRvcgcJARBfdmFsaWRhdGVBZGRyZXNzAgUIYWRhcHRlcl8CFWluaXQ6IGludmFsaWQgYWRhcHRlcgcJARBfdmFsaWRhdGVBZGRyZXNzAgUHcGF1c2VyXwIUaW5pdDogaW52YWxpZCBwYXVzZXIHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFDWZlZVJlY2lwaWVudF8CGmluaXQ6IGludmFsaWQgZmVlUmVjaXBpZW50BwMJAAACBQNlcnIFA2VycgkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIJAQlfc2F2ZUluaXQBBgkBDV9zYXZlRXhlY3V0b3IBCQERQGV4dHJOYXRpdmUoMTA2MikBBQlleGVjdXRvcl8JARBfc2F2ZVJvb3RBZGFwdGVyAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUIYWRhcHRlcl8JAQtfc2F2ZVBhdXNlcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB3BhdXNlcl8JARFfc2F2ZUZlZVJlY2lwaWVudAEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDWZlZVJlY2lwaWVudF8FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKbWludFRva2VucwcPY2FsbGVyQ29udHJhY3RfDmFzc2V0Q29udHJhY3RfB2Ftb3VudF8KcmVjaXBpZW50Xw5nYXNsZXNzUmV3YXJkXwlyZWZlcnJlcl8McmVmZXJyZXJGZWVfBAZhbW91bnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBBQdhbW91bnRfAhdtaW50OiBhbW91bnQgaXMgbm90IEludAQNZ2FzbGVzc1Jld2FyZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEFDmdhc2xlc3NSZXdhcmRfAh5taW50OiBnYXNsZXNzUmV3YXJkIGlzIG5vdCBJbnQEC3JlZmVycmVyRmVlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQUMcmVmZXJyZXJGZWVfAhxtaW50OiByZWZlcnJlckZlZSBpcyBub3QgSW50BANlcnIDAwMDAwMDAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEOX3doZW5Ob3RQYXVzZWQABwkBEF92YWxpZGF0ZUFkZHJlc3MCBQ5hc3NldENvbnRyYWN0XwIcbWludDogaW52YWxpZCBhc3NldCBjb250cmFjdAcJARFfdmFsaWRhdGVFeGVjdXRvcgIIBQFpBmNhbGxlcgIWbWludDogaW52YWxpZCBleGVjdXRvcgcJAQ9fdmFsaWRhdGVDYWxsZXICBQ9jYWxsZXJDb250cmFjdF8CFG1pbnQ6IGludmFsaWQgY2FsbGVyBwkBEF92YWxpZGF0ZUFkZHJlc3MCBQpyZWNpcGllbnRfAh9taW50OiBpbnZhbGlkIHJlY2lwaWVudCBhZGRyZXNzBwkBDF92YWxpZGF0ZUludAQFBmFtb3VudAAABQdNQVhfSU5UAhRtaW50OiBpbnZhbGlkIGFtb3VudAcJAQxfdmFsaWRhdGVJbnQEBQ1nYXNsZXNzUmV3YXJkAAAFB01BWF9JTlQCG21pbnQ6IGludmFsaWQgZ2FzbGVzc1Jld2FyZAcJAQxfdmFsaWRhdGVJbnQEBQtyZWZlcnJlckZlZQAABQdNQVhfSU5UAhptaW50OiBpbnZhbGlkIHJlZmVycmVyIGZlZQcDCQAAAgUDZXJyBQNlcnIEB2Fzc2V0SWQJAQhfYXNCeXRlcwEJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUOYXNzZXRDb250cmFjdF8CCmdldEFzc2V0SWQFA25pbAUDbmlsAwkAAAIFB2Fzc2V0SWQFB2Fzc2V0SWQEDWFzc2V0RGVjaW1hbHMJAQZfYXNJbnQBCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFDmFzc2V0Q29udHJhY3RfAgtnZXREZWNpbWFscwUDbmlsBQNuaWwDCQAAAgUNYXNzZXREZWNpbWFscwUNYXNzZXREZWNpbWFscwQQbm9ybWFsaXplZEFtb3VudAkBEl9ub3JtYWxpemVEZWNpbWFscwMFBmFtb3VudAUIREVDSU1BTFMFDWFzc2V0RGVjaW1hbHMEEW5vcm1hbGl6ZWRHYXNsZXNzCQESX25vcm1hbGl6ZURlY2ltYWxzAwUNZ2FzbGVzc1Jld2FyZAUIREVDSU1BTFMFDWFzc2V0RGVjaW1hbHMECHJlZmVycmVyBAckbWF0Y2gwCQCmCAEFCXJlZmVycmVyXwMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBA5yZWZlcmVyQWRkcmVzcwUHJG1hdGNoMAQVbm9ybWFsaXplZFJlZmVycmVyRmVlCQESX25vcm1hbGl6ZURlY2ltYWxzAwULcmVmZXJyZXJGZWUFCERFQ0lNQUxTBQ1hc3NldERlY2ltYWxzCQCUCgIFFW5vcm1hbGl6ZWRSZWZlcnJlckZlZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ5yZWZlcmVyQWRkcmVzcwUVbm9ybWFsaXplZFJlZmVycmVyRmVlBQdhc3NldElkBQNuaWwJAJQKAgAABQNuaWwEFW5vcm1hbGl6ZWRSZWZlcnJlckZlZQgFCHJlZmVycmVyAl8xBA9yZWZlcnJlckFjdGlvbnMIBQhyZWZlcnJlcgJfMgQKaW52b2NhdGlvbgkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQ5hc3NldENvbnRyYWN0XwIEbWludAkAzAgCCQBkAgUQbm9ybWFsaXplZEFtb3VudAUVbm9ybWFsaXplZFJlZmVycmVyRmVlCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQAAAgUKaW52b2NhdGlvbgUKaW52b2NhdGlvbgQHYWN0aW9ucwMDCQBmAgURbm9ybWFsaXplZEdhc2xlc3MAAAkBAiE9AgkBEUBleHRyTmF0aXZlKDEwNjIpAQUKcmVjaXBpZW50XwgFAWkMb3JpZ2luQ2FsbGVyBwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQpyZWNpcGllbnRfCQBlAgUQbm9ybWFsaXplZEFtb3VudAURbm9ybWFsaXplZEdhc2xlc3MFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkMb3JpZ2luQ2FsbGVyBRFub3JtYWxpemVkR2FzbGVzcwUHYXNzZXRJZAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCnJlY2lwaWVudF8FEG5vcm1hbGl6ZWRBbW91bnQFB2Fzc2V0SWQFA25pbAkAlAoCCQDOCAIFB2FjdGlvbnMFD3JlZmVycmVyQWN0aW9ucwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpidXJuVG9rZW5zAxFleGVjdXRpb25DaGFpbklkXwpyZWNpcGllbnRfDmdhc2xlc3NSZXdhcmRfBANlcnIDAwMDCQEQX3doZW5Jbml0aWFsaXplZAAJAQ5fd2hlbk5vdFBhdXNlZAAHCQEOX3ZhbGlkYXRlQ2hhaW4CBRFleGVjdXRpb25DaGFpbklkXwIdYnVybjogaW52YWxpZCBleGVjdXRpb24gY2hhaW4HCQEVX3ZhbGlkYXRlUGF5bWVudHNTaXplAwgFAWkIcGF5bWVudHMAAQIQYnVybjogbm8gcGF5bWVudAcJAQxfdmFsaWRhdGVJbnQECAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAABQdNQVhfSU5UAhxidXJuOiBpbnZhbGlkIHBheW1lbnQgYW1vdW50BwMJAAACBQNlcnIFA2VycgQGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQHYXNzZXRJZAQHJG1hdGNoMAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWEFByRtYXRjaDAFAWEJAAIBAhNidXJuOiBpbnZhbGlkIGFzc2V0BAdiaW5kaW5nCQEMX2xvYWRCaW5kaW5nAgURZXhlY3V0aW9uQ2hhaW5JZF8FB2Fzc2V0SWQEDWFzc2V0Q29udHJhY3QIBQdiaW5kaW5nAl8xBA5leGVjdXRpb25Bc3NldAgFB2JpbmRpbmcCXzIECW1pbkFtb3VudAgFB2JpbmRpbmcCXzMEBm1pbkZlZQgFB2JpbmRpbmcCXzQEDHRocmVzaG9sZEZlZQgFB2JpbmRpbmcCXzUEEGJlZm9yZVBlcmNlbnRGZWUIBQdiaW5kaW5nAl82BA9hZnRlclBlcmNlbnRGZWUIBQdiaW5kaW5nAl83BAdlbmFibGVkCAUHYmluZGluZwJfOAQEZXJyMQMDCQEQX3ZhbGlkYXRlQWRkcmVzcwIJAKUIAQUNYXNzZXRDb250cmFjdAIVYnVybjogbm8gc3VjaCBiaW5kaW5nCQEMX3ZhbGlkYXRlSW50BAUGYW1vdW50BQltaW5BbW91bnQFB01BWF9JTlQCE2J1cm46IGxlc3MgdGhhbiBtaW4HCQENX3ZhbGlkYXRlQm9vbAMFB2VuYWJsZWQGAhdidXJuOiB0b2tlbiBpcyBkaXNhYmxlZAcDCQAAAgUEZXJyMQUEZXJyMQQNYXNzZXREZWNpbWFscwkBBl9hc0ludAEJAPwHBAUNYXNzZXRDb250cmFjdAILZ2V0RGVjaW1hbHMFA25pbAUDbmlsAwkAAAIFDWFzc2V0RGVjaW1hbHMFDWFzc2V0RGVjaW1hbHMEB3BlcmNlbnQDCQBmAgUGYW1vdW50BQx0aHJlc2hvbGRGZWUFD2FmdGVyUGVyY2VudEZlZQUQYmVmb3JlUGVyY2VudEZlZQQDZmVlCQBkAgUGbWluRmVlCQBrAwUGYW1vdW50BQdwZXJjZW50BQ5QRVJDRU5UX0ZBQ1RPUgQEZXJyMgkBDF92YWxpZGF0ZUludAQFBmFtb3VudAkAZAIFA2ZlZQABBQdNQVhfSU5UAhpidXJuOiBmZWUgbW9yZSB0aGFuIGFtb3VudAMJAAACBQRlcnIyBQRlcnIyBAxhbW91bnRUb1NlbmQJAGUCBQZhbW91bnQFA2ZlZQQEZXJyMwkBDF92YWxpZGF0ZUludAQFDGFtb3VudFRvU2VuZAkAZAIFDmdhc2xlc3NSZXdhcmRfAAEFB01BWF9JTlQCHWJ1cm46IHJld2FyZCBtb3JlIHRoYW4gYW1vdW50AwkAAAIFBGVycjMFBGVycjMECXVwZGF0ZUZlZQkAZAIJAQhfbG9hZEZlZQEFB2Fzc2V0SWQFA2ZlZQQQbm9ybWFsaXplZEFtb3VudAkBEl9ub3JtYWxpemVEZWNpbWFscwMFDGFtb3VudFRvU2VuZAUNYXNzZXREZWNpbWFscwUIREVDSU1BTFMEEW5vcm1hbGl6ZWRHYXNsZXNzCQESX25vcm1hbGl6ZURlY2ltYWxzAwUOZ2FzbGVzc1Jld2FyZF8FDWFzc2V0RGVjaW1hbHMFCERFQ0lNQUxTBAppbnZvY2F0aW9uCQD8BwQJARBfbG9hZFJvb3RBZGFwdGVyAAUTRlVOQ19SRUxFQVNFX1RPS0VOUwkAzAgCBRFleGVjdXRpb25DaGFpbklkXwkAzAgCBQ5leGVjdXRpb25Bc3NldAkAzAgCBRBub3JtYWxpemVkQW1vdW50CQDMCAIFCnJlY2lwaWVudF8JAMwIAgURbm9ybWFsaXplZEdhc2xlc3MFA25pbAUDbmlsAwkAAAIFCmludm9jYXRpb24FCmludm9jYXRpb24JAJQKAgkAzggCCQEIX3NhdmVGZWUCBQdhc3NldElkBQl1cGRhdGVGZWUJAMwIAgkBBEJ1cm4CBQdhc3NldElkBQxhbW91bnRUb1NlbmQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQt0cmFuc2ZlckZlZQIRZXhlY3V0aW9uQ2hhaW5JZF8IYXNzZXRJZF8EA2VycgMDCQEQX3doZW5Jbml0aWFsaXplZAAJAQ5fd2hlbk5vdFBhdXNlZAAHCQEOX3ZhbGlkYXRlQXNzZXQCBQhhc3NldElkXwIadHJhbnNmZXJGZWU6IGludmFsaWQgYXNzZXQHAwkAAAIFA2VycgUDZXJyBAdhc3NldElkCQDZBAEFCGFzc2V0SWRfBAdiaW5kaW5nCQEMX2xvYWRCaW5kaW5nAgURZXhlY3V0aW9uQ2hhaW5JZF8FB2Fzc2V0SWQEDWFzc2V0Q29udHJhY3QIBQdiaW5kaW5nAl8xBAdlbmFibGVkCAUHYmluZGluZwJfOAQEZXJyMQMJARBfdmFsaWRhdGVBZGRyZXNzAgkApQgBBQ1hc3NldENvbnRyYWN0Ahx0cmFuc2ZlckZlZTogbm8gc3VjaCBiaW5kaW5nCQENX3ZhbGlkYXRlQm9vbAMFB2VuYWJsZWQGAh50cmFuc2ZlckZlZTogdG9rZW4gaXMgZGlzYWJsZWQHAwkAAAIFBGVycjEFBGVycjEJAJQKAgkAzggCCQEIX3NhdmVGZWUCBQdhc3NldElkAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEV9sb2FkRmVlUmVjaXBpZW50AAkBCF9sb2FkRmVlAQUHYXNzZXRJZAUHYXNzZXRJZAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFHVwZGF0ZUNhbGxlckNvbnRyYWN0AQ9jYWxsZXJDb250cmFjdF8EA2VycgMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwMJAAACBQNlcnIFA2VycgkAlAoCCQETX3NhdmVDYWxsZXJDb250cmFjdAEFD2NhbGxlckNvbnRyYWN0XwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARR1cGRhdGVFeGVjdXRpb25DaGFpbgIRZXhlY3V0aW9uQ2hhaW5JZF8IZW5hYmxlZF8EA2VycgMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQxfdmFsaWRhdGVJbnQEBRFleGVjdXRpb25DaGFpbklkXwAABQdNQVhfSU5UAi51cGRhdGVFeGVjdXRpb25DaGFpbjogaW52YWxpZCBleGVjdXRpb25DaGFpbklkBwMJAAACBQNlcnIFA2VycgkAlAoCCQEKX3NhdmVDaGFpbgIFEWV4ZWN1dGlvbkNoYWluSWRfBQhlbmFibGVkXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARJ1cGRhdGVGZWVSZWNpcGllbnQBDWZlZVJlY2lwaWVudF8EA2VycgMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJARBfdmFsaWRhdGVBZGRyZXNzAgUNZmVlUmVjaXBpZW50XwIodXBkYXRlRmVlUmVjaXBpZW50OiBpbnZhbGlkIGZlZVJlY2lwaWVudAcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBEV9zYXZlRmVlUmVjaXBpZW50AQkBEUBleHRyTmF0aXZlKDEwNjIpAQUNZmVlUmVjaXBpZW50XwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARF1cGRhdGVCaW5kaW5nSW5mbwkRZXhlY3V0aW9uQ2hhaW5JZF8OYXNzZXRDb250cmFjdF8PZXhlY3V0aW9uQXNzZXRfCm1pbkFtb3VudF8HbWluRmVlXw10aHJlc2hvbGRGZWVfEWJlZm9yZVBlcmNlbnRGZWVfEGFmdGVyUGVyY2VudEZlZV8IZW5hYmxlZF8EA2VycgMDAwMDAwMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJARBfdmFsaWRhdGVBZGRyZXNzAgUOYXNzZXRDb250cmFjdF8CKXVwZGF0ZUJpbmRpbmdJbmZvOiBpbnZhbGlkIGFzc2V0IGNvbnRyYWN0BwkBDF92YWxpZGF0ZUludAQFEWV4ZWN1dGlvbkNoYWluSWRfAAAFB01BWF9JTlQCK3VwZGF0ZUJpbmRpbmdJbmZvOiBpbnZhbGlkIGV4ZWN1dGlvbkNoYWluSWQHCQEMX3ZhbGlkYXRlSW50BAUKbWluQW1vdW50XwAABQdNQVhfSU5UAiR1cGRhdGVCaW5kaW5nSW5mbzogaW52YWxpZCBtaW5BbW91bnQHCQEMX3ZhbGlkYXRlSW50BAUHbWluRmVlXwAABQdNQVhfSU5UAiF1cGRhdGVCaW5kaW5nSW5mbzogaW52YWxpZCBtaW5GZWUHCQEMX3ZhbGlkYXRlSW50BAUNdGhyZXNob2xkRmVlXwAABQdNQVhfSU5UAid1cGRhdGVCaW5kaW5nSW5mbzogaW52YWxpZCB0aHJlc2hvbGRGZWUHCQEMX3ZhbGlkYXRlSW50BAURYmVmb3JlUGVyY2VudEZlZV8AAAUHTUFYX0lOVAIrdXBkYXRlQmluZGluZ0luZm86IGludmFsaWQgYmVmb3JlUGVyY2VudEZlZQcJAQxfdmFsaWRhdGVJbnQEBRBhZnRlclBlcmNlbnRGZWVfAAAFB01BWF9JTlQCKnVwZGF0ZUJpbmRpbmdJbmZvOiBpbnZhbGlkIGFmdGVyUGVyY2VudEZlZQcDCQAAAgUDZXJyBQNlcnIEB2Fzc2V0SWQJAQhfYXNCeXRlcwEJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUOYXNzZXRDb250cmFjdF8CCmdldEFzc2V0SWQFA25pbAUDbmlsAwkAAAIFB2Fzc2V0SWQFB2Fzc2V0SWQEB2JpbmRpbmcJAJoKCAkBEUBleHRyTmF0aXZlKDEwNjIpAQUOYXNzZXRDb250cmFjdF8FD2V4ZWN1dGlvbkFzc2V0XwUKbWluQW1vdW50XwUHbWluRmVlXwUNdGhyZXNob2xkRmVlXwURYmVmb3JlUGVyY2VudEZlZV8FEGFmdGVyUGVyY2VudEZlZV8FCGVuYWJsZWRfCQCUCgIJAQxfc2F2ZUJpbmRpbmcDBRFleGVjdXRpb25DaGFpbklkXwUHYXNzZXRJZAUHYmluZGluZwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVwYXVzZQAEA2VycgMDCQELX29ubHlQYXVzZXIBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQ5fd2hlbk5vdFBhdXNlZAAHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQpfc2F2ZVBhdXNlAQYFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHdW5wYXVzZQAEA2VycgMDCQELX29ubHlQYXVzZXIBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQtfd2hlblBhdXNlZAAHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQpfc2F2ZVBhdXNlAQcFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMdXBkYXRlUGF1c2VyAQdwYXVzZXJfBANlcnIDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFB3BhdXNlcl8CFGluaXQ6IGludmFsaWQgcGF1c2VyBwMJAAACBQNlcnIFA2VycgkAlAoCCQELX3NhdmVQYXVzZXIBCQERQGV4dHJOYXRpdmUoMTA2MikBBQdwYXVzZXJfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC3NldE11bHRpc2lnAQltdWx0aXNpZ18EA2VycgMJARFfb25seVRoaXNDb250cmFjdAEIBQFpBmNhbGxlcgkBEF92YWxpZGF0ZUFkZHJlc3MCBQltdWx0aXNpZ18CHXNldE11bHRpc2lnOiBpbnZhbGlkIG11bHRpc2lnBwMJAAACBQNlcnIFA2VycgkAlAoCCQENX3NhdmVNdWx0aXNpZwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCW11bHRpc2lnXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEByRtYXRjaDAJAKIIAQUMS0VZX01VTFRJU0lHAwkAAQIFByRtYXRjaDACBlN0cmluZwQIbXVsdGlzaWcFByRtYXRjaDAJAQt2YWx1ZU9yRWxzZQIJAJsIAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUIbXVsdGlzaWcJALkJAgkAzAgCBQpLRVlfU1RBVFVTCQDMCAIJAKUIAQUEdGhpcwkAzAgCCQDYBAEIBQJ0eAJpZAUDbmlsBQlTRVBBUkFUT1IHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5HRbLwQ==", "height": 2540073, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EkmnDMW7YNFu146auHdnCg627annJ8gVjiBk9kdQm5GR Next: 5Z1JkyR2dz4cb2Dj5tp9UrMtWcPMpuen9D5L3xvJzgxu Diff:
OldNewDifferences
446446 let bl = if ((aO > bg))
447447 then bi
448448 else bh
449- let bm = (bf + ((aO * bl) / r))
449+ let bm = (bf + fraction(aO, bl, r))
450450 let bn = A(aO, (bm + 1), s, "burn: fee more than amount")
451451 if ((bn == bn))
452452 then {
476476
477477
478478 @Callable(aF)
479-func transferFee (aJ) = {
479+func transferFee (ai,z) = {
480480 let aH = if (if (aw())
481481 then ax()
482482 else false)
483- then t(aJ, "burnFee: invalid asset contract")
483+ then y(z, "transferFee: invalid asset")
484484 else false
485485 if ((aH == aH))
486486 then {
487- let aR = aB(invoke(addressFromStringValue(aJ), "getAssetId", nil, nil))
488- if ((aR == aR))
487+ let aR = fromBase58String(z)
488+ let bb = ah(ai, aR)
489+ let bc = bb._1
490+ let bj = bb._8
491+ let bk = if (t(toString(bc), "transferFee: no such binding"))
492+ then E(bj, true, "transferFee: token is disabled")
493+ else false
494+ if ((bk == bk))
489495 then $Tuple2((an(aR, 0) ++ [ScriptTransfer(ar(), am(aR), aR)]), unit)
490496 else throw("Strict value is not equal to itself.")
491497 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "INIT"
77
88 let c = "MULTISIG"
99
1010 let d = "STATUS"
1111
1212 let e = "PAUSED"
1313
1414 let f = "PAUSER"
1515
1616 let g = "EXECUTOR"
1717
1818 let h = "ROOT_ADAPTER"
1919
2020 let i = "CALLER_CONTRACT"
2121
2222 let j = "CHAIN"
2323
2424 let k = "BINDING"
2525
2626 let l = "FEE"
2727
2828 let m = "FEE_RECIPIENT"
2929
3030 let n = "releaseTokens"
3131
3232 let o = "WAVES"
3333
3434 let p = 8
3535
3636 let q = 6
3737
3838 let r = 1000000
3939
4040 let s = 9223372036854775807
4141
4242 func t (u,v) = {
4343 let w = addressFromString(u)
4444 if ($isInstanceOf(w, "Address"))
4545 then {
4646 let x = w
4747 true
4848 }
4949 else throw(v)
5050 }
5151
5252
5353 func y (z,v) = {
5454 let w = assetInfo(fromBase58String(z))
5555 if ($isInstanceOf(w, "Asset"))
5656 then {
5757 let x = w
5858 true
5959 }
6060 else throw(v)
6161 }
6262
6363
6464 func A (B,C,D,v) = if (if ((C > B))
6565 then true
6666 else (B > D))
6767 then throw(v)
6868 else true
6969
7070
7171 func E (B,F,v) = if ((B != F))
7272 then throw(v)
7373 else true
7474
7575
7676 func G (H,F,v) = if ((size(H) != F))
7777 then throw(v)
7878 else true
7979
8080
8181 func I (J,K,L) = if ((K >= L))
8282 then (J / pow(10, 0, (K - L), 0, 0, DOWN))
8383 else (J * pow(10, 0, (L - K), 0, 0, DOWN))
8484
8585
8686 func M () = {
8787 let w = getBoolean(b)
8888 if ($isInstanceOf(w, "Boolean"))
8989 then {
9090 let x = w
9191 x
9292 }
9393 else false
9494 }
9595
9696
9797 func N (O) = [BooleanEntry(b, O)]
9898
9999
100100 func P () = {
101101 let w = getBoolean(e)
102102 if ($isInstanceOf(w, "Boolean"))
103103 then {
104104 let x = w
105105 x
106106 }
107107 else false
108108 }
109109
110110
111111 func Q (R) = [BooleanEntry(e, R)]
112112
113113
114114 func S () = {
115115 let w = getString(f)
116116 if ($isInstanceOf(w, "String"))
117117 then {
118118 let x = w
119119 addressFromStringValue(x)
120120 }
121121 else Address(base58'')
122122 }
123123
124124
125125 func T (U) = [StringEntry(f, toString(U))]
126126
127127
128128 func V () = {
129129 let w = getString(c)
130130 if ($isInstanceOf(w, "String"))
131131 then {
132132 let x = w
133133 addressFromStringValue(x)
134134 }
135135 else Address(base58'')
136136 }
137137
138138
139139 func W (X) = [StringEntry(c, toString(X))]
140140
141141
142142 func Y () = {
143143 let w = getString(g)
144144 if ($isInstanceOf(w, "String"))
145145 then {
146146 let x = w
147147 addressFromStringValue(x)
148148 }
149149 else Address(base58'')
150150 }
151151
152152
153153 func Z (aa) = [StringEntry(g, toString(aa))]
154154
155155
156156 func ab () = {
157157 let w = getString(i)
158158 if ($isInstanceOf(w, "String"))
159159 then {
160160 let x = w
161161 x
162162 }
163163 else ""
164164 }
165165
166166
167167 func ac (ad) = [StringEntry(i, ad)]
168168
169169
170170 func ae (af) = {
171171 let w = getBoolean(makeString([j, toString(af)], a))
172172 if ($isInstanceOf(w, "Boolean"))
173173 then {
174174 let x = w
175175 x
176176 }
177177 else false
178178 }
179179
180180
181181 func ag (af,B) = [BooleanEntry(makeString([j, toString(af)], a), B)]
182182
183183
184184 func ah (ai,z) = {
185185 let w = getString(makeString([k, toString(ai), toBase58String(z)], a))
186186 if ($isInstanceOf(w, "String"))
187187 then {
188188 let x = w
189189 let aj = split(x, a)
190190 $Tuple8(addressFromStringValue(aj[0]), aj[1], parseIntValue(aj[2]), parseIntValue(aj[3]), parseIntValue(aj[4]), parseIntValue(aj[5]), parseIntValue(aj[6]), if ((aj[7] == "1"))
191191 then true
192192 else false)
193193 }
194194 else $Tuple8(Address(base58''), "", 0, 0, 0, 0, 0, false)
195195 }
196196
197197
198198 func ak (ai,z,al) = [StringEntry(makeString([k, toString(ai), toBase58String(z)], a), makeString([toString(al._1), al._2, toString(al._3), toString(al._4), toString(al._5), toString(al._6), toString(al._7), if (al._8)
199199 then "1"
200200 else "0"], a))]
201201
202202
203203 func am (z) = {
204204 let w = getInteger(makeString([l, toBase58String(z)], a))
205205 if ($isInstanceOf(w, "Int"))
206206 then {
207207 let x = w
208208 x
209209 }
210210 else 0
211211 }
212212
213213
214214 func an (z,B) = [IntegerEntry(makeString([l, toBase58String(z)], a), B)]
215215
216216
217217 func ao () = {
218218 let w = getString(h)
219219 if ($isInstanceOf(w, "String"))
220220 then {
221221 let x = w
222222 addressFromStringValue(x)
223223 }
224224 else Address(base58'')
225225 }
226226
227227
228228 func ap (aq) = [StringEntry(h, toString(aq))]
229229
230230
231231 func ar () = {
232232 let w = getString(m)
233233 if ($isInstanceOf(w, "String"))
234234 then {
235235 let x = w
236236 addressFromStringValue(x)
237237 }
238238 else Address(base58'')
239239 }
240240
241241
242242 func as (B) = [StringEntry(m, toString(B))]
243243
244244
245245 func at (ad) = if ((ad != this))
246246 then throw("_onlyThisContract: revert")
247247 else true
248248
249249
250250 func au () = if ((V() == Address(base58'')))
251251 then throw("_whenMultisigSet: revert")
252252 else true
253253
254254
255255 func av () = if (M())
256256 then throw("_whenNotInitialized: revert")
257257 else true
258258
259259
260260 func aw () = if (!(M()))
261261 then throw("_whenInitialized: revert")
262262 else true
263263
264264
265265 func ax () = if (P())
266266 then throw("_whenNotPaused: revert")
267267 else true
268268
269269
270270 func ay () = if (!(P()))
271271 then throw("_whenPaused: revert")
272272 else true
273273
274274
275275 func az (ad) = if ((ad != S()))
276276 then throw("_onlyPauser: revert")
277277 else true
278278
279279
280280 func aA (B) = {
281281 let w = B
282282 if ($isInstanceOf(w, "Int"))
283283 then {
284284 let x = w
285285 x
286286 }
287287 else throw("_asInt: revert")
288288 }
289289
290290
291291 func aB (B) = {
292292 let w = B
293293 if ($isInstanceOf(w, "ByteVector"))
294294 then {
295295 let x = w
296296 x
297297 }
298298 else throw("_asBytes: revert")
299299 }
300300
301301
302302 func aC (B,v) = if ((B != Y()))
303303 then throw(v)
304304 else true
305305
306306
307307 func aD (B,v) = if ((B != ab()))
308308 then throw(v)
309309 else true
310310
311311
312312 func aE (ai,v) = if (!(ae(ai)))
313313 then throw(v)
314314 else true
315315
316316
317317 @Callable(aF)
318318 func init (aa,aq,U,aG) = {
319319 let aH = if (if (if (if (if (if (at(aF.caller))
320320 then av()
321321 else false)
322322 then au()
323323 else false)
324324 then t(aa, "init: invalid executor")
325325 else false)
326326 then t(aq, "init: invalid adapter")
327327 else false)
328328 then t(U, "init: invalid pauser")
329329 else false)
330330 then t(aG, "init: invalid feeRecipient")
331331 else false
332332 if ((aH == aH))
333333 then $Tuple2(((((N(true) ++ Z(addressFromStringValue(aa))) ++ ap(addressFromStringValue(aq))) ++ T(addressFromStringValue(U))) ++ as(addressFromStringValue(aG))), unit)
334334 else throw("Strict value is not equal to itself.")
335335 }
336336
337337
338338
339339 @Callable(aF)
340340 func mintTokens (aI,aJ,J,aK,aL,aM,aN) = {
341341 let aO = valueOrErrorMessage(parseInt(J), "mint: amount is not Int")
342342 let aP = valueOrErrorMessage(parseInt(aL), "mint: gaslessReward is not Int")
343343 let aQ = valueOrErrorMessage(parseInt(aN), "mint: referrerFee is not Int")
344344 let aH = if (if (if (if (if (if (if (if (aw())
345345 then ax()
346346 else false)
347347 then t(aJ, "mint: invalid asset contract")
348348 else false)
349349 then aC(aF.caller, "mint: invalid executor")
350350 else false)
351351 then aD(aI, "mint: invalid caller")
352352 else false)
353353 then t(aK, "mint: invalid recipient address")
354354 else false)
355355 then A(aO, 0, s, "mint: invalid amount")
356356 else false)
357357 then A(aP, 0, s, "mint: invalid gaslessReward")
358358 else false)
359359 then A(aQ, 0, s, "mint: invalid referrer fee")
360360 else false
361361 if ((aH == aH))
362362 then {
363363 let aR = aB(invoke(addressFromStringValue(aJ), "getAssetId", nil, nil))
364364 if ((aR == aR))
365365 then {
366366 let aS = aA(invoke(addressFromStringValue(aJ), "getDecimals", nil, nil))
367367 if ((aS == aS))
368368 then {
369369 let aT = I(aO, q, aS)
370370 let aU = I(aP, q, aS)
371371 let aV = {
372372 let w = addressFromString(aM)
373373 if ($isInstanceOf(w, "Address"))
374374 then {
375375 let aW = w
376376 let aX = I(aQ, q, aS)
377377 $Tuple2(aX, [ScriptTransfer(aW, aX, aR)])
378378 }
379379 else $Tuple2(0, nil)
380380 }
381381 let aX = aV._1
382382 let aY = aV._2
383383 let aZ = invoke(addressFromStringValue(aJ), "mint", [(aT + aX), toString(this)], nil)
384384 if ((aZ == aZ))
385385 then {
386386 let ba = if (if ((aU > 0))
387387 then (addressFromStringValue(aK) != aF.originCaller)
388388 else false)
389389 then [ScriptTransfer(addressFromStringValue(aK), (aT - aU), aR), ScriptTransfer(aF.originCaller, aU, aR)]
390390 else [ScriptTransfer(addressFromStringValue(aK), aT, aR)]
391391 $Tuple2((ba ++ aY), unit)
392392 }
393393 else throw("Strict value is not equal to itself.")
394394 }
395395 else throw("Strict value is not equal to itself.")
396396 }
397397 else throw("Strict value is not equal to itself.")
398398 }
399399 else throw("Strict value is not equal to itself.")
400400 }
401401
402402
403403
404404 @Callable(aF)
405405 func burnTokens (ai,aK,aL) = {
406406 let aH = if (if (if (if (aw())
407407 then ax()
408408 else false)
409409 then aE(ai, "burn: invalid execution chain")
410410 else false)
411411 then G(aF.payments, 1, "burn: no payment")
412412 else false)
413413 then A(aF.payments[0].amount, 0, s, "burn: invalid payment amount")
414414 else false
415415 if ((aH == aH))
416416 then {
417417 let aO = aF.payments[0].amount
418418 let aR = {
419419 let w = aF.payments[0].assetId
420420 if ($isInstanceOf(w, "ByteVector"))
421421 then {
422422 let x = w
423423 x
424424 }
425425 else throw("burn: invalid asset")
426426 }
427427 let bb = ah(ai, aR)
428428 let bc = bb._1
429429 let bd = bb._2
430430 let be = bb._3
431431 let bf = bb._4
432432 let bg = bb._5
433433 let bh = bb._6
434434 let bi = bb._7
435435 let bj = bb._8
436436 let bk = if (if (t(toString(bc), "burn: no such binding"))
437437 then A(aO, be, s, "burn: less than min")
438438 else false)
439439 then E(bj, true, "burn: token is disabled")
440440 else false
441441 if ((bk == bk))
442442 then {
443443 let aS = aA(invoke(bc, "getDecimals", nil, nil))
444444 if ((aS == aS))
445445 then {
446446 let bl = if ((aO > bg))
447447 then bi
448448 else bh
449- let bm = (bf + ((aO * bl) / r))
449+ let bm = (bf + fraction(aO, bl, r))
450450 let bn = A(aO, (bm + 1), s, "burn: fee more than amount")
451451 if ((bn == bn))
452452 then {
453453 let bo = (aO - bm)
454454 let bp = A(bo, (aL + 1), s, "burn: reward more than amount")
455455 if ((bp == bp))
456456 then {
457457 let bq = (am(aR) + bm)
458458 let aT = I(bo, aS, q)
459459 let aU = I(aL, aS, q)
460460 let aZ = invoke(ao(), n, [ai, bd, aT, aK, aU], nil)
461461 if ((aZ == aZ))
462462 then $Tuple2((an(aR, bq) ++ [Burn(aR, bo)]), unit)
463463 else throw("Strict value is not equal to itself.")
464464 }
465465 else throw("Strict value is not equal to itself.")
466466 }
467467 else throw("Strict value is not equal to itself.")
468468 }
469469 else throw("Strict value is not equal to itself.")
470470 }
471471 else throw("Strict value is not equal to itself.")
472472 }
473473 else throw("Strict value is not equal to itself.")
474474 }
475475
476476
477477
478478 @Callable(aF)
479-func transferFee (aJ) = {
479+func transferFee (ai,z) = {
480480 let aH = if (if (aw())
481481 then ax()
482482 else false)
483- then t(aJ, "burnFee: invalid asset contract")
483+ then y(z, "transferFee: invalid asset")
484484 else false
485485 if ((aH == aH))
486486 then {
487- let aR = aB(invoke(addressFromStringValue(aJ), "getAssetId", nil, nil))
488- if ((aR == aR))
487+ let aR = fromBase58String(z)
488+ let bb = ah(ai, aR)
489+ let bc = bb._1
490+ let bj = bb._8
491+ let bk = if (t(toString(bc), "transferFee: no such binding"))
492+ then E(bj, true, "transferFee: token is disabled")
493+ else false
494+ if ((bk == bk))
489495 then $Tuple2((an(aR, 0) ++ [ScriptTransfer(ar(), am(aR), aR)]), unit)
490496 else throw("Strict value is not equal to itself.")
491497 }
492498 else throw("Strict value is not equal to itself.")
493499 }
494500
495501
496502
497503 @Callable(aF)
498504 func updateCallerContract (aI) = {
499505 let aH = if (at(aF.caller))
500506 then aw()
501507 else false
502508 if ((aH == aH))
503509 then $Tuple2(ac(aI), unit)
504510 else throw("Strict value is not equal to itself.")
505511 }
506512
507513
508514
509515 @Callable(aF)
510516 func updateExecutionChain (ai,br) = {
511517 let aH = if (if (at(aF.caller))
512518 then aw()
513519 else false)
514520 then A(ai, 0, s, "updateExecutionChain: invalid executionChainId")
515521 else false
516522 if ((aH == aH))
517523 then $Tuple2(ag(ai, br), unit)
518524 else throw("Strict value is not equal to itself.")
519525 }
520526
521527
522528
523529 @Callable(aF)
524530 func updateFeeRecipient (aG) = {
525531 let aH = if (if (at(aF.caller))
526532 then aw()
527533 else false)
528534 then t(aG, "updateFeeRecipient: invalid feeRecipient")
529535 else false
530536 if ((aH == aH))
531537 then $Tuple2(as(addressFromStringValue(aG)), unit)
532538 else throw("Strict value is not equal to itself.")
533539 }
534540
535541
536542
537543 @Callable(aF)
538544 func updateBindingInfo (ai,aJ,bs,bt,bu,bv,bw,bx,br) = {
539545 let aH = if (if (if (if (if (if (if (if (at(aF.caller))
540546 then aw()
541547 else false)
542548 then t(aJ, "updateBindingInfo: invalid asset contract")
543549 else false)
544550 then A(ai, 0, s, "updateBindingInfo: invalid executionChainId")
545551 else false)
546552 then A(bt, 0, s, "updateBindingInfo: invalid minAmount")
547553 else false)
548554 then A(bu, 0, s, "updateBindingInfo: invalid minFee")
549555 else false)
550556 then A(bv, 0, s, "updateBindingInfo: invalid thresholdFee")
551557 else false)
552558 then A(bw, 0, s, "updateBindingInfo: invalid beforePercentFee")
553559 else false)
554560 then A(bx, 0, s, "updateBindingInfo: invalid afterPercentFee")
555561 else false
556562 if ((aH == aH))
557563 then {
558564 let aR = aB(invoke(addressFromStringValue(aJ), "getAssetId", nil, nil))
559565 if ((aR == aR))
560566 then {
561567 let bb = $Tuple8(addressFromStringValue(aJ), bs, bt, bu, bv, bw, bx, br)
562568 $Tuple2(ak(ai, aR, bb), unit)
563569 }
564570 else throw("Strict value is not equal to itself.")
565571 }
566572 else throw("Strict value is not equal to itself.")
567573 }
568574
569575
570576
571577 @Callable(aF)
572578 func pause () = {
573579 let aH = if (if (az(aF.caller))
574580 then aw()
575581 else false)
576582 then ax()
577583 else false
578584 if ((aH == aH))
579585 then $Tuple2(Q(true), unit)
580586 else throw("Strict value is not equal to itself.")
581587 }
582588
583589
584590
585591 @Callable(aF)
586592 func unpause () = {
587593 let aH = if (if (az(aF.caller))
588594 then aw()
589595 else false)
590596 then ay()
591597 else false
592598 if ((aH == aH))
593599 then $Tuple2(Q(false), unit)
594600 else throw("Strict value is not equal to itself.")
595601 }
596602
597603
598604
599605 @Callable(aF)
600606 func updatePauser (U) = {
601607 let aH = if (if (at(aF.caller))
602608 then aw()
603609 else false)
604610 then t(U, "init: invalid pauser")
605611 else false
606612 if ((aH == aH))
607613 then $Tuple2(T(addressFromStringValue(U)), unit)
608614 else throw("Strict value is not equal to itself.")
609615 }
610616
611617
612618
613619 @Callable(aF)
614620 func setMultisig (X) = {
615621 let aH = if (at(aF.caller))
616622 then t(X, "setMultisig: invalid multisig")
617623 else false
618624 if ((aH == aH))
619625 then $Tuple2(W(addressFromStringValue(X)), unit)
620626 else throw("Strict value is not equal to itself.")
621627 }
622628
623629
624630 @Verifier(by)
625631 func bz () = {
626632 let w = getString(c)
627633 if ($isInstanceOf(w, "String"))
628634 then {
629635 let bA = w
630636 valueOrElse(getBoolean(addressFromStringValue(bA), makeString([d, toString(this), toBase58String(by.id)], a)), false)
631637 }
632638 else sigVerify(by.bodyBytes, by.proofs[0], by.senderPublicKey)
633639 }
634640

github/deemru/w8io/026f985 
59.46 ms