tx · 9icxqVkCNgA1qSm1mVQWWNScR6BHH27W9CnBgF9XbDXY

3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB:  -0.01000000 Waves

2023.01.21 12:47 [2414576] smart account 3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB > SELF 0.00000000 Waves

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

github/deemru/w8io/026f985 
42.95 ms