tx · DSwxhVbBnNBu8WsXLtzNjuJzbN4YvW9dX3AgPVEgMr68

3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB:  -0.01000000 Waves

2023.01.30 15:04 [2427679] smart account 3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB > SELF 0.00000000 Waves

{ "type": 13, "id": "DSwxhVbBnNBu8WsXLtzNjuJzbN4YvW9dX3AgPVEgMr68", "fee": 1000000, "feeAssetId": null, "timestamp": 1675080314186, "version": 2, "chainId": 84, "sender": "3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB", "senderPublicKey": "Gd5NihbWQoWuTnSvq25TuV2BYZG4U1e9KDqZn9zBPix7", "proofs": [ "3MZ8rXn9qnPRAh2DsG2JWi66T16TGsmGJrJP4LMZKj9aNWJC5y9FMiy8pwNmodtgk48FYogKrewJV5KMNDBUKFNF" ], "script": "base64:BgIgCAISBAoCCAgSBwoFCAgICAgSBAoCCAgSABIFCgMIAQQVAAdWRVJTSU9OAgUxLjEuOQEOZ2V0U3RyaW5nQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQNrZXkCAAAPc3RvcmFnZVZlcmlmaWVyCQEFdmFsdWUBCQCmCAEJAQ5nZXRTdHJpbmdCeUtleQECE2NvbmZfb3JhY2xlX2FkZHJlc3MABGJhbmsJAQ5nZXRTdHJpbmdCeUtleQECGWNvbmZfZmVlX3JlY2VpdmVyX2FkZHJlc3MADWFjY2VwdGVkVG9rZW4JAQ5nZXRTdHJpbmdCeUtleQECFmNvbmZfYWNjZXB0ZWRfdG9rZW5faWQABnVzZG5JRAkBDmdldFN0cmluZ0J5S2V5AQIMY29uZl91c2RuX2lkAAVjaHJpcwkBDmdldFN0cmluZ0J5S2V5AQISY29uZl9hZG1pbl9hZGRyZXNzABNzaWduX2FydF91c2Vyc19kYXBwCQEOZ2V0U3RyaW5nQnlLZXkBAiBjb25mX3NpZ25fYXJ0X3VzZXJzX2RhcHBfYWRkcmVzcwAUc3RvcmFnZUZlZU11bHRpcGxpZXIAAQEKY2hlY2tFbnRyeQIGcHJlZml4BHV1aWQEByRtYXRjaDAJAJ0IAgUEdGhpcwkArAICBQZwcmVmaXgFBHV1aWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgROT05FAQ9jaGVja0VudHJ5RW1haWwCBHV1aWQGZG9tYWluBAckbWF0Y2gwCQCdCAIFBHRoaXMJAKwCAgkArAICBQR1dWlkAgFABQZkb21haW4DCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgROT05FAQljaGVja1VVSUQBBHV1aWQEByRtYXRjaDAJAJ0IAgUEdGhpcwUEdXVpZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECBE5PTkUBEmNoZWNrSWZXaGl0ZUxpc3RlZAENY2FsbGVyQWRkcmVzcwQHJG1hdGNoMAkAmggCBQR0aGlzCQCsAgICEWFkZHJfV0hJVEVMSVNURURfBQ1jYWxsZXJBZGRyZXNzAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAQhpc0FkcmVzcwEEYWRkcgMDAwkAAAIJALECAQUEYWRkcgAjCQAAAgkArwICBQRhZGRyAAICAjNQBwYJAAACCQCvAgIFBGFkZHIAAgICM04GCQAAAgkArwICBQRhZGRyAAICAjNNAQxjb3VudFBhcnRpZXMCC2FjY3VtdWxhdG9yBGFkZHIDCQBmAgkAsQIBBQRhZGRyAAAJAGQCBQthY2N1bXVsYXRvcgABCQBkAgULYWNjdW11bGF0b3IAAAEUY2hlY2tJZlBlbmRpbmdUb1NpZ24BA2tleQQHJG1hdGNoMAkAnQgCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwAwkAAAIFAWECB1BFTkRJTkcGBwcBDmdldFZhbHVlU3RyaW5nAQRqc29uCQCvAgIJALACAgUEanNvbgABCQEFdmFsdWUBCQCzCQIJALACAgUEanNvbgABAgEiAQhnZXRWYWx1ZQIEanNvbgNrZXkECGtleUluZGV4CQEFdmFsdWUBCQCzCQIFBGpzb24JAKwCAgkArAICAgEiBQNrZXkCAiI6BARkYXRhCQCwAgIFBGpzb24JAGQCCQBkAgUIa2V5SW5kZXgJALECAQUDa2V5AAMECWpzb25WYWx1ZQkBDmdldFZhbHVlU3RyaW5nAQUEZGF0YQUJanNvblZhbHVlARJnZXRKc29uQmVmb3JlVmFsdWUCBGpzb24Da2V5BAhrZXlJbmRleAkBBXZhbHVlAQkAswkCBQRqc29uCQCsAgIJAKwCAgIBIgUDa2V5AgIiOgQEZGF0YQkArwICBQRqc29uCQBkAgkAZAIFCGtleUluZGV4CQCxAgEFA2tleQADBQRkYXRhARFnZXRKc29uQWZ0ZXJWYWx1ZQIEanNvbgNrZXkECGtleUluZGV4CQEFdmFsdWUBCQCzCQIFBGpzb24JAKwCAgkArAICAgEiBQNrZXkCAiI6BARkYXRhCQCyAgIFBGpzb24JAGUCCQCxAgEFBGpzb24JAGQCCQBkAgkAZAIJAGQCBQhrZXlJbmRleAkAsQIBBQNrZXkAAwAAAAIFBGRhdGEBCGFzU3RyaW5nAQJidgQHJG1hdGNoMAUCYnYDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANidjAFByRtYXRjaDAFA2J2MAkAAgECJFNwb25zb3JlZCBQdWJsaWMgS2V5IFN0cmluZyBleHBlY3RlZAUGaW52b2tlAQdzZXRDb25mAgNrZXkDdmFsBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwkBCGNvbnRhaW5zAgUDa2V5AgVjb25mXwkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkFA3ZhbAUDbmlsCQACAQIgRW50cmllcyBzdGFydGluZyB3aXRoIGNvbmZfIG9ubHkJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQERZmlsZUNlcnRpZmljYXRpb24FBGhhc2gFdGl0bGUEdXVpZARpcGZzDHNpZ25lclB1YktleQQCaWQJAQV2YWx1ZQEIBQZpbnZva2UNdHJhbnNhY3Rpb25JZAQKZW50cnlFeGlzdAkBCmNoZWNrRW50cnkCBQRoYXNoBQR1dWlkBAl1dWlkRXhpc3QJAQljaGVja1VVSUQBBQR1dWlkBAxjYWxsZXJJc0RhcHAJAAACBQR0aGlzCAUGaW52b2tlBmNhbGxlcgQNY2FsbGVyQWRkcmVzcwMFDGNhbGxlcklzRGFwcAkApQgBCQCnCAEJANkEAQUMc2lnbmVyUHViS2V5CQDYBAEICAUGaW52b2tlBmNhbGxlcgVieXRlcwQWY2FsbGVySXNXaGl0ZUxpc3RlZE51bQkBEmNoZWNrSWZXaGl0ZUxpc3RlZAEFDWNhbGxlckFkZHJlc3MDCQECIT0CBQplbnRyeUV4aXN0AgROT05FCQACAQIYVGhpcyBlbnRyeSBhbHJlYWR5IGV4aXN0AwkBAiE9AgUJdXVpZEV4aXN0AgROT05FCQACAQIXVGhpcyB1dWlkIGFscmVhZHkgZXhpc3QDCQECIT0CCQCxAgEFBHV1aWQAJAkAAgECHVV1aWQgc2hvdWxkIGJlIDM2IGNoYXJhY3RlcnMuAwkBAiE9AgkAsQIBBQRoYXNoAEAJAAIBAh1IYXNoIHNob3VsZCBiZSA2NCBjaGFyYWN0ZXJzLgMJAGYCCQCxAgEFBXRpdGxlAGQJAAIBAiZUaXRsZSBpcyB0b28gbG9uZywgMTAwIGNoYXJhY3RlcnMgbWF4LgMDAwkBCGNvbnRhaW5zAgUEaGFzaAIBIgYJAQhjb250YWlucwIFBXRpdGxlAgEiBgkBCGNvbnRhaW5zAgUEaXBmcwIBIgkAAgECDE5vICIgYWxsb3dlZAQEZGF0YQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCXsiaGFzaCI6IgUEaGFzaAIOIiwidGltZXN0YW1wIjoJAKQDAQgFCWxhc3RCbG9jawl0aW1lc3RhbXACCiwidGl0bGUiOiIFBXRpdGxlAgoiLCJpcGZzIjoiBQRpcGZzAgIifQMJAGYCBRZjYWxsZXJJc1doaXRlTGlzdGVkTnVtAAAECmNyZWRpdENvc3QDCQECIT0CCQCxAgEFBGlwZnMAAAkAZAIAAQUUc3RvcmFnZUZlZU11bHRpcGxpZXIAAQMJAGYCAAAJAGUCBRZjYWxsZXJJc1doaXRlTGlzdGVkTnVtBQpjcmVkaXRDb3N0CQACAQIRTm90IGVub3VnaCBjcmVkaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgUEdXVpZAkA2AQBBQJpZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBGhhc2gFBHV1aWQJANgEAQUCaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQV0aXRsZQUEdXVpZAkA2AQBBQJpZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICAhFhZGRyX1dISVRFTElTVEVEXwUNY2FsbGVyQWRkcmVzcwkAZQIFFmNhbGxlcklzV2hpdGVMaXN0ZWROdW0FCmNyZWRpdENvc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgIIZGF0YV9mY18JANgEAQUCaWQCAV8FDWNhbGxlckFkZHJlc3MFBGRhdGEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUNY2FsbGVyQWRkcmVzcwAACQDZBAEFDWFjY2VwdGVkVG9rZW4FA25pbAMJAQEhAQUMY2FsbGVySXNEYXBwBAdwYXltZW50CQEFdmFsdWUBCQCRAwIIBQZpbnZva2UIcGF5bWVudHMAAAQGYW1vdW50CQEFdmFsdWUBCAUHcGF5bWVudAZhbW91bnQEDnBheW1lbnRBc3NldElkAwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQJAAIBAiBXYXZlcyBpcyBub3QgYWNjZXB0ZWQgYXMgcGF5bWVudAQMY3VycmVudFByaWNlCQERQGV4dHJOYXRpdmUoMTA1MCkCBQ9zdG9yYWdlVmVyaWZpZXIJAKwCAgISY2VydGlmaWNhdGlvbl9mZWVfCQDYBAEJAQV2YWx1ZQEFDnBheW1lbnRBc3NldElkBAdmZWVDb3N0AwkBAiE9AgkAsQIBBQRpcGZzAAAJAGQCBQxjdXJyZW50UHJpY2UJAGgCBRRzdG9yYWdlRmVlTXVsdGlwbGllcgUMY3VycmVudFByaWNlBQxjdXJyZW50UHJpY2UDCQECIT0CCQDZBAEFDWFjY2VwdGVkVG9rZW4FDnBheW1lbnRBc3NldElkCQACAQIoVGhpcyB0b2tlbiBpcyBub3QgYWNjZXB0ZWQgYXQgdGhlIG1vbWVudAMDCQECIT0CBQZhbW91bnQFB2ZlZUNvc3QJAGcCAAAFFmNhbGxlcklzV2hpdGVMaXN0ZWROdW0HCQACAQISVGhlIHByaWNlIGlzIHdyb25nCQDMCAIJAQtTdHJpbmdFbnRyeQIFBHV1aWQJANgEAQUCaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQRoYXNoBQR1dWlkCQDYBAEFAmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUFdGl0bGUFBHV1aWQJANgEAQUCaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgIIZGF0YV9mY18JANgEAQUCaWQCAV8FDWNhbGxlckFkZHJlc3MFBGRhdGEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUEYmFuawUHZmVlQ29zdAgFB3BheW1lbnQHYXNzZXRJZAUDbmlsCQACAQIeWW91IGFyZSBub3QgYWxsb3dlZCB0byBkbyB0aGF0Bmludm9rZQETcmV2b2tlQ2VydGlmaWNhdGlvbgIPY2VydGlmaWNhdGlvbklkDHNpZ25lclB1YktleQQCaWQJAQV2YWx1ZQEIBQZpbnZva2UNdHJhbnNhY3Rpb25JZAQMY2FsbGVySXNEYXBwCQAAAgUEdGhpcwgFBmludm9rZQZjYWxsZXIEDWNhbGxlckFkZHJlc3MDBQxjYWxsZXJJc0RhcHAJAKUIAQkApwgBCQDZBAEFDHNpZ25lclB1YktleQkA2AQBCAgFBmludm9rZQZjYWxsZXIFYnl0ZXMECmVudHJ5RXhpc3QEByRtYXRjaDAJAJ0IAgUEdGhpcwkArAICCQCsAgIJAKwCAgIIZGF0YV9mY18FD2NlcnRpZmljYXRpb25JZAIBXwUNY2FsbGVyQWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECBE5PTkUECWlzUmV2b2tlZAQHJG1hdGNoMAkAnQgCBQR0aGlzCQCsAgICClNUQVRVU19GQ18FD2NlcnRpZmljYXRpb25JZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECBE5PTkUEFmNhbGxlcklzV2hpdGVMaXN0ZWROdW0JARJjaGVja0lmV2hpdGVMaXN0ZWQBBQ1jYWxsZXJBZGRyZXNzBAduZXdKc29uCQCsAgIJAKwCAgkArAICCQCzAgIFCmVudHJ5RXhpc3QAAQITLCJzdGF0dXMiOiJSRVZPS0VEXwkA2AQBBQJpZAICIn0DCQECIT0CBQlpc1Jldm9rZWQCBE5PTkUJAAIBAi1UaGlzIGNlcnRpZmljYXRpb24gaGF2ZSBhbHJlYWR5IGJlZW4gcmV2b2tlZC4DCQAAAgUKZW50cnlFeGlzdAIETk9ORQkAAgECM1lvdSBjYW5ub3QgY2hhbmdlIHRoZSBzdGF0dXMgb2YgdGhpcyBjZXJ0aWZpY2F0aW9uLgMJAGYCBRZjYWxsZXJJc1doaXRlTGlzdGVkTnVtAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgIRYWRkcl9XSElURUxJU1RFRF8FDWNhbGxlckFkZHJlc3MJAGUCBRZjYWxsZXJJc1doaXRlTGlzdGVkTnVtAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICAgpTVEFUVVNfRkNfBQ9jZXJ0aWZpY2F0aW9uSWQJAKwCAgIIUkVWT0tFRF8JANgEAQUCaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgIIZGF0YV9mY18FD2NlcnRpZmljYXRpb25JZAIBXwUNY2FsbGVyQWRkcmVzcwUHbmV3SnNvbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQ1jYWxsZXJBZGRyZXNzAAAJANkEAQUNYWNjZXB0ZWRUb2tlbgUDbmlsAwkBASEBBQxjYWxsZXJJc0RhcHAEB3BheW1lbnQJAQV2YWx1ZQEJAJEDAggFBmludm9rZQhwYXltZW50cwAABAZhbW91bnQJAQV2YWx1ZQEIBQdwYXltZW50BmFtb3VudAQOcGF5bWVudEFzc2V0SWQDCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAkAAgECIFdhdmVzIGlzIG5vdCBhY2NlcHRlZCBhcyBwYXltZW50BAxjdXJyZW50UHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFD3N0b3JhZ2VWZXJpZmllcgkArAICAhJjZXJ0aWZpY2F0aW9uX2ZlZV8JANgEAQkBBXZhbHVlAQUOcGF5bWVudEFzc2V0SWQDCQECIT0CCQDZBAEFDWFjY2VwdGVkVG9rZW4FDnBheW1lbnRBc3NldElkCQACAQIoVGhpcyB0b2tlbiBpcyBub3QgYWNjZXB0ZWQgYXQgdGhlIG1vbWVudAMDCQECIT0CBQZhbW91bnQFDGN1cnJlbnRQcmljZQkAZwIAAAUWY2FsbGVySXNXaGl0ZUxpc3RlZE51bQcJAAIBAhJUaGUgcHJpY2UgaXMgd3JvbmcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICAgpTVEFUVVNfRkNfBQ9jZXJ0aWZpY2F0aW9uSWQJAKwCAgIIUkVWT0tFRF8JANgEAQUCaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgIIZGF0YV9mY18FD2NlcnRpZmljYXRpb25JZAIBXwUNY2FsbGVyQWRkcmVzcwUHbmV3SnNvbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQRiYW5rBQZhbW91bnQIBQdwYXltZW50B2Fzc2V0SWQFA25pbAkAAgECHllvdSBhcmUgbm90IGFsbG93ZWQgdG8gZG8gdGhhdAZpbnZva2UBD3VzZG5TaWduQ3JlZGl0cwAEB3BheW1lbnQJAQV2YWx1ZQEJAJEDAggFBmludm9rZQhwYXltZW50cwAABA1jYWxsZXJBZGRyZXNzCQDYBAEICAUGaW52b2tlBmNhbGxlcgVieXRlcwQHdG9rZW5JZAkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAQGYW1vdW50CQEFdmFsdWUBCAUHcGF5bWVudAZhbW91bnQED251bWJlck9mQ3JlZGl0cwkAaQIJAGgCBQZhbW91bnQAAgDAhD0EFmNhbGxlcklzV2hpdGVMaXN0ZWROdW0JARJjaGVja0lmV2hpdGVMaXN0ZWQBBQ1jYWxsZXJBZGRyZXNzAwkBAiE9AgkA2AQBBQd0b2tlbklkBQZ1c2RuSUQJAAIBAhpPbmx5IFVTRE4gY2FuIGJlIGV4Y2hhbmdlZAMDCQECIT0CCQBqAgUGYW1vdW50AMCEPQAACQECIT0CCQBqAgUGYW1vdW50AMCEPQCgwh4HCQACAQkArAICCQCsAgIJAKwCAgIwWW91IGNhbiBvbmx5IGV4Y2hhbmdlIG11bHRpcGxlIG9mIDAuNSwgeW91IHNlbnQ6CQCzAgIJAKQDAQUGYW1vdW50AAYCAS4JALICAgkApAMBBQZhbW91bnQABgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICAhFhZGRyX1dISVRFTElTVEVEXwUNY2FsbGVyQWRkcmVzcwkAZAIFFmNhbGxlcklzV2hpdGVMaXN0ZWROdW0FD251bWJlck9mQ3JlZGl0cwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQRiYW5rBQZhbW91bnQFB3Rva2VuSWQFA25pbAFpARt3aGl0ZWxpc3RGcmVlQ2VydGlmaWNhdGlvbnMDB2FkZHJlc3MGYW1vdW50EmFkZFRvQ3VycmVudEFtb3VudAQGY2FsbGVyCQClCAEJAKcIAQgFAWkPY2FsbGVyUHVibGljS2V5BAJpZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgUTc2lnbl9hcnRfdXNlcnNfZGFwcAUDbmlsBQZjYWxsZXIEDWN1cnJlbnRBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICAhFhZGRyX1dISVRFTElTVEVEXwUHYWRkcmVzcwAABAluZXdBbW91bnQDBRJhZGRUb0N1cnJlbnRBbW91bnQJAGQCBQ1jdXJyZW50QW1vdW50BQZhbW91bnQFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICAhFhZGRyX1dISVRFTElTVEVEXwUHYWRkcmVzcwUJbmV3QW1vdW50BQNuaWwJAAIBAidZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHdoaXRlbGlzdCB0eHMBAnR4AQh2ZXJpZmllcgAEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBANpbnYFByRtYXRjaDADAwMDCQAAAggFA2ludghmdW5jdGlvbgIRZmlsZUNlcnRpZmljYXRpb24JAAACCAUDaW52BGRBcHAFBHRoaXMHCQAAAggFA2ludgNmZWUAoMIeBwkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAJANkEAQkBCGFzU3RyaW5nAQkAkQMCCAUDaW52BGFyZ3MABAMDAwMJAAACCAUDaW52CGZ1bmN0aW9uAhNyZXZva2VDZXJ0aWZpY2F0aW9uCQAAAggFA2ludgRkQXBwBQR0aGlzBwkAAAIIBQNpbnYDZmVlAKDCHgcJAAACCAUDaW52CmZlZUFzc2V0SWQFBHVuaXQHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACQDZBAEJAQhhc1N0cmluZwEJAJEDAggFA2ludgRhcmdzAAEJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXml82NV", "height": 2427679, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C3wwimAiH4FDwpKSrAdK8hLK9Q5wdwNjPw3jTuht68Yw Next: none Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.1.9"
55
66 func b (c) = valueOrElse(getString(this, c), "")
77
88
99 let d = value(addressFromString(b("conf_oracle_address")))
1010
1111 let e = b("conf_fee_receiver_address")
1212
1313 let f = b("conf_accepted_token_id")
1414
1515 let g = b("conf_usdn_id")
1616
1717 let h = b("conf_admin_address")
1818
1919 let i = b("conf_sign_art_users_dapp_address")
2020
2121 let j = 1
2222
2323 func k (l,m) = {
2424 let n = getString(this, (l + m))
2525 if ($isInstanceOf(n, "String"))
2626 then {
2727 let o = n
2828 o
2929 }
3030 else "NONE"
3131 }
3232
3333
3434 func p (m,q) = {
3535 let n = getString(this, ((m + "@") + q))
3636 if ($isInstanceOf(n, "String"))
3737 then {
3838 let o = n
3939 o
4040 }
4141 else "NONE"
4242 }
4343
4444
4545 func r (m) = {
4646 let n = getString(this, m)
4747 if ($isInstanceOf(n, "String"))
4848 then {
4949 let o = n
5050 o
5151 }
5252 else "NONE"
5353 }
5454
5555
5656 func s (t) = {
5757 let n = getInteger(this, ("addr_WHITELISTED_" + t))
5858 if ($isInstanceOf(n, "Int"))
5959 then {
6060 let o = n
6161 o
6262 }
6363 else 0
6464 }
6565
6666
6767 func u (v) = if (if (if ((size(v) == 35))
6868 then (take(v, 2) == "3P")
6969 else false)
7070 then true
7171 else (take(v, 2) == "3N"))
7272 then true
7373 else (take(v, 2) == "3M")
7474
7575
7676 func w (x,v) = if ((size(v) > 0))
7777 then (x + 1)
7878 else (x + 0)
7979
8080
8181 func y (c) = {
8282 let n = getString(this, c)
8383 if ($isInstanceOf(n, "String"))
8484 then {
8585 let o = n
8686 if ((o == "PENDING"))
8787 then true
8888 else false
8989 }
9090 else false
9191 }
9292
9393
9494 func z (A) = take(drop(A, 1), value(indexOf(drop(A, 1), "\"")))
9595
9696
9797 func B (A,c) = {
9898 let C = value(indexOf(A, (("\"" + c) + "\":")))
9999 let D = drop(A, ((C + size(c)) + 3))
100100 let E = z(D)
101101 E
102102 }
103103
104104
105105 func F (A,c) = {
106106 let C = value(indexOf(A, (("\"" + c) + "\":")))
107107 let D = take(A, ((C + size(c)) + 3))
108108 D
109109 }
110110
111111
112112 func G (A,c) = {
113113 let C = value(indexOf(A, (("\"" + c) + "\":")))
114114 let D = takeRight(A, (size(A) - ((((C + size(c)) + 3) + 0) + 2)))
115115 D
116116 }
117117
118118
119119 func H (I) = {
120120 let n = I
121121 if ($isInstanceOf(n, "String"))
122122 then {
123123 let J = n
124124 J
125125 }
126126 else throw("Sponsored Public Key String expected")
127127 }
128128
129129
130130 @Callable(K)
131131 func setConf (c,L) = {
132132 let M = toString(K.caller)
133133 if (containsElement([h, toString(this)], M))
134134 then if (contains(c, "conf_"))
135135 then [StringEntry(c, L)]
136136 else throw("Entries starting with conf_ only")
137137 else throw("You are not allowed to change this")
138138 }
139139
140140
141141
142142 @Callable(K)
143143 func fileCertification (N,O,m,P,Q) = {
144144 let R = value(K.transactionId)
145145 let S = k(N, m)
146146 let T = r(m)
147147 let U = (this == K.caller)
148148 let t = if (U)
149149 then toString(addressFromPublicKey(fromBase58String(Q)))
150150 else toBase58String(K.caller.bytes)
151151 let V = s(t)
152152 if ((S != "NONE"))
153153 then throw("This entry already exist")
154154 else if ((T != "NONE"))
155155 then throw("This uuid already exist")
156156 else if ((size(m) != 36))
157157 then throw("Uuid should be 36 characters.")
158158 else if ((size(N) != 64))
159159 then throw("Hash should be 64 characters.")
160160 else if ((size(O) > 100))
161161 then throw("Title is too long, 100 characters max.")
162162 else if (if (if (contains(N, "\""))
163163 then true
164164 else contains(O, "\""))
165165 then true
166166 else contains(P, "\""))
167167 then throw("No \" allowed")
168168 else {
169169 let D = (((((((("{\"hash\":\"" + N) + "\",\"timestamp\":") + toString(lastBlock.timestamp)) + ",\"title\":\"") + O) + "\",\"ipfs\":\"") + P) + "\"}")
170170 if ((V > 0))
171171 then {
172172 let W = if ((size(P) != 0))
173173 then (1 + j)
174174 else 1
175175 if ((0 > (V - W)))
176176 then throw("Not enough credit")
177177 else [StringEntry(m, toBase58String(R)), StringEntry((N + m), toBase58String(R)), StringEntry((O + m), toBase58String(R)), IntegerEntry(("addr_WHITELISTED_" + t), (V - W)), StringEntry(((("data_fc_" + toBase58String(R)) + "_") + t), D), ScriptTransfer(addressFromStringValue(t), 0, fromBase58String(f))]
178178 }
179179 else if (!(U))
180180 then {
181181 let X = value(K.payments[0])
182182 let Y = value(X.amount)
183183 let Z = if (isDefined(X.assetId))
184184 then value(X.assetId)
185185 else throw("Waves is not accepted as payment")
186186 let aa = getIntegerValue(d, ("certification_fee_" + toBase58String(value(Z))))
187187 let ab = if ((size(P) != 0))
188188 then (aa + (j * aa))
189189 else aa
190190 if ((fromBase58String(f) != Z))
191191 then throw("This token is not accepted at the moment")
192192 else if (if ((Y != ab))
193193 then (0 >= V)
194194 else false)
195195 then throw("The price is wrong")
196196 else [StringEntry(m, toBase58String(R)), StringEntry((N + m), toBase58String(R)), StringEntry((O + m), toBase58String(R)), StringEntry(((("data_fc_" + toBase58String(R)) + "_") + t), D), ScriptTransfer(addressFromStringValue(e), ab, X.assetId)]
197197 }
198198 else throw("You are not allowed to do that")
199199 }
200200 }
201201
202202
203203
204204 @Callable(K)
205205 func revokeCertification (ac,Q) = {
206206 let R = value(K.transactionId)
207207 let U = (this == K.caller)
208208 let t = if (U)
209209 then toString(addressFromPublicKey(fromBase58String(Q)))
210210 else toBase58String(K.caller.bytes)
211211 let S = {
212212 let n = getString(this, ((("data_fc_" + ac) + "_") + t))
213213 if ($isInstanceOf(n, "String"))
214214 then {
215215 let o = n
216216 o
217217 }
218218 else "NONE"
219219 }
220220 let ad = {
221221 let n = getString(this, ("STATUS_FC_" + ac))
222222 if ($isInstanceOf(n, "String"))
223223 then {
224224 let o = n
225225 o
226226 }
227227 else "NONE"
228228 }
229229 let V = s(t)
230230 let ae = (((dropRight(S, 1) + ",\"status\":\"REVOKED_") + toBase58String(R)) + "\"}")
231231 if ((ad != "NONE"))
232232 then throw("This certification have already been revoked.")
233233 else if ((S == "NONE"))
234234 then throw("You cannot change the status of this certification.")
235235 else if ((V > 0))
236236 then [IntegerEntry(("addr_WHITELISTED_" + t), (V - 1)), StringEntry(("STATUS_FC_" + ac), ("REVOKED_" + toBase58String(R))), StringEntry(((("data_fc_" + ac) + "_") + t), ae), ScriptTransfer(addressFromStringValue(t), 0, fromBase58String(f))]
237237 else if (!(U))
238238 then {
239239 let X = value(K.payments[0])
240240 let Y = value(X.amount)
241241 let Z = if (isDefined(X.assetId))
242242 then value(X.assetId)
243243 else throw("Waves is not accepted as payment")
244244 let aa = getIntegerValue(d, ("certification_fee_" + toBase58String(value(Z))))
245245 if ((fromBase58String(f) != Z))
246246 then throw("This token is not accepted at the moment")
247247 else if (if ((Y != aa))
248248 then (0 >= V)
249249 else false)
250250 then throw("The price is wrong")
251251 else [StringEntry(("STATUS_FC_" + ac), ("REVOKED_" + toBase58String(R))), StringEntry(((("data_fc_" + ac) + "_") + t), ae), ScriptTransfer(addressFromStringValue(e), Y, X.assetId)]
252252 }
253253 else throw("You are not allowed to do that")
254254 }
255255
256256
257257
258258 @Callable(K)
259259 func usdnSignCredits () = {
260260 let X = value(K.payments[0])
261261 let t = toBase58String(K.caller.bytes)
262262 let af = value(X.assetId)
263263 let Y = value(X.amount)
264264 let ag = ((Y * 2) / 1000000)
265265 let V = s(t)
266266 if ((toBase58String(af) != g))
267267 then throw("Only USDN can be exchanged")
268268 else if (if (((Y % 1000000) != 0))
269269 then ((Y % 1000000) != 500000)
270270 else false)
271271 then throw(((("You can only exchange multiple of 0.5, you sent:" + dropRight(toString(Y), 6)) + ".") + takeRight(toString(Y), 6)))
272272 else [IntegerEntry(("addr_WHITELISTED_" + t), (V + ag)), ScriptTransfer(addressFromStringValue(e), Y, af)]
273273 }
274274
275275
276276
277277 @Callable(ah)
278278 func whitelistFreeCertifications (ai,Y,aj) = {
279279 let M = toString(addressFromPublicKey(ah.callerPublicKey))
280280 let R = toBase58String(ah.transactionId)
281281 if (containsElement([h, i], M))
282282 then {
283283 let ak = valueOrElse(getInteger(this, ("addr_WHITELISTED_" + ai)), 0)
284284 let al = if (aj)
285285 then (ak + Y)
286286 else Y
287287 [IntegerEntry(("addr_WHITELISTED_" + ai), al)]
288288 }
289289 else throw("You are not authorized to whitelist txs")
290290 }
291291
292292
293293 @Verifier(am)
294294 func an () = {
295295 let n = am
296296 if ($isInstanceOf(n, "InvokeScriptTransaction"))
297297 then {
298298 let ao = n
299299 if (if (if (if ((ao.function == "fileCertification"))
300300 then (ao.dApp == this)
301301 else false)
302302 then (ao.fee == 500000)
303303 else false)
304304 then (ao.feeAssetId == unit)
305305 else false)
306306 then sigVerify(am.bodyBytes, am.proofs[0], fromBase58String(H(ao.args[4])))
307307 else if (if (if (if ((ao.function == "revokeCertification"))
308308 then (ao.dApp == this)
309309 else false)
310310 then (ao.fee == 500000)
311311 else false)
312312 then (ao.feeAssetId == unit)
313313 else false)
314314 then sigVerify(am.bodyBytes, am.proofs[0], fromBase58String(H(ao.args[1])))
315315 else sigVerify(am.bodyBytes, am.proofs[0], am.senderPublicKey)
316316 }
317317 else sigVerify(am.bodyBytes, am.proofs[0], am.senderPublicKey)
318318 }
319319

github/deemru/w8io/026f985 
42.78 ms