tx · FFDt51UGQUxwE3127Cu5DhPAigdsPYuibeSofwCzwexu

3MqSv5qEvZKapkPQ6hPtUgbZfxdMQexnwqa:  -0.01400000 Waves

2024.07.04 10:52 [3178994] smart account 3MqSv5qEvZKapkPQ6hPtUgbZfxdMQexnwqa > SELF 0.00000000 Waves

{ "type": 13, "id": "FFDt51UGQUxwE3127Cu5DhPAigdsPYuibeSofwCzwexu", "fee": 1400000, "feeAssetId": null, "timestamp": 1720079551957, "version": 2, "chainId": 84, "sender": "3MqSv5qEvZKapkPQ6hPtUgbZfxdMQexnwqa", "senderPublicKey": "tinwq3CCsobvKT9fhHjTjbxXQdTDmXW9KtgPvR94m1H", "proofs": [ "gqoPxZ1ugnkEcbAQ5wUY9tFMFubCoS8jieGnQpVqjBPtDvM7gTiZ1xfeowCGfv9MUa99gWTNTXMbmZM8WCbSxzw" ], "script": "base64:BwJFCAISBAoCCAgSBQoDCAgIEgcKBQgICAgIEgUKAwgICBIJCgcICAgICAgIEgUKAwgICBIGCgQICAgIEgUKAwgICBIDCgEIIgAJU0VQQVJBVE9SAgJfXwAMS0VZX01VTFRJU0lHAghNVUxUSVNJRwAKS0VZX1NUQVRVUwIGU1RBVFVTAAhLRVlfSU5JVAIESU5JVAAUS0VZX0dBVEVXQVlfQ09OVFJBQ1QCEEdBVEVXQVlfQ09OVFJBQ1QAFEtFWV9NQVRDSEVSX0NPTlRSQUNUAhBNQVRDSEVSX0NPTlRSQUNUABBLRVlfVVNFUl9CQUxBTkNFAgxVU0VSX0JBTEFOQ0UAEUtFWV9UT1RBTF9CQUxBTkNFAg1UT1RBTF9CQUxBTkNFAAtTUE9UX1dBTExFVAIEU1BPVAASV0lUSERSQVdBTFNfV0FMTEVUAgtXSVRIRFJBV0FMUwAVU1RBS0lOR19SRVdBUkRfV0FMTEVUAg5TVEFLSU5HX1JFV0FSRAALWkVST19CSUdJTlQJALYCAQAAARBfdmFsaWRhdGVBZGRyZXNzAghhZGRyZXNzXwRlcnJfBAckbWF0Y2gwCQCmCAEFCGFkZHJlc3NfAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAGCQACAQUEZXJyXwEPX3ZhbGlkYXRlQmlnSW50AwR2YWxfDmxvd2VyQm91bmRhcnlfBGVycl8DCQC/AgIFDmxvd2VyQm91bmRhcnlfBQR2YWxfCQACAQUEZXJyXwYBD192YWxpZGF0ZVN0cmluZwIEdmFsXwRlcnJfAwMJAGcCAAAJALECAQUEdmFsXwYJAQhjb250YWlucwIFBHZhbF8FCVNFUEFSQVRPUgkAAgEFBGVycl8GARRfdmFsaWRhdGVTdHJpbmdFcXVhbAMFdmFsMV8FdmFsMl8EZXJyXwMJAQIhPQIFBXZhbDFfBQV2YWwyXwkAAgEFBGVycl8GAQlfbG9hZEluaXQABAckbWF0Y2gwCQCgCAEFCEtFWV9JTklUAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWEFByRtYXRjaDAFAWEHAQlfc2F2ZUluaXQBB2lzSW5pdF8JAMwIAgkBDEJvb2xlYW5FbnRyeQIFCEtFWV9JTklUBQdpc0luaXRfBQNuaWwBDV9sb2FkTXVsdGlzaWcABAckbWF0Y2gwCQCiCAEFDEtFWV9NVUxUSVNJRwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAAQ1fc2F2ZU11bHRpc2lnAQltdWx0aXNpZ18JAMwIAgkBC1N0cmluZ0VudHJ5AgUMS0VZX01VTFRJU0lHCQClCAEFCW11bHRpc2lnXwUDbmlsARRfbG9hZEdhdGV3YXlDb250cmFjdAAEByRtYXRjaDAJAKIIAQUUS0VZX0dBVEVXQVlfQ09OVFJBQ1QDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAEUX3NhdmVHYXRld2F5Q29udHJhY3QBEGdhdGV3YXlDb250cmFjdF8JAMwIAgkBC1N0cmluZ0VudHJ5AgUUS0VZX0dBVEVXQVlfQ09OVFJBQ1QJAKUIAQUQZ2F0ZXdheUNvbnRyYWN0XwUDbmlsARRfbG9hZE1hdGNoZXJDb250cmFjdAAEByRtYXRjaDAJAKIIAQUUS0VZX01BVENIRVJfQ09OVFJBQ1QDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAEUX3NhdmVNYXRjaGVyQ29udHJhY3QBEG1hdGNoZXJDb250cmFjdF8JAMwIAgkBC1N0cmluZ0VudHJ5AgUUS0VZX01BVENIRVJfQ09OVFJBQ1QJAKUIAQUQbWF0Y2hlckNvbnRyYWN0XwUDbmlsARBfbG9hZFVzZXJCYWxhbmNlAwV1c2VyXwd3YWxsZXRfCWN1cnJlbmN5XwQHJG1hdGNoMAkAoggBCQC5CQIJAMwIAgUQS0VZX1VTRVJfQkFMQU5DRQkAzAgCBQV1c2VyXwkAzAgCBQd3YWxsZXRfCQDMCAIFCWN1cnJlbmN5XwUDbmlsBQlTRVBBUkFUT1IDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQCnAwEFAWEFC1pFUk9fQklHSU5UARBfc2F2ZVVzZXJCYWxhbmNlBAV1c2VyXwd3YWxsZXRfCWN1cnJlbmN5XwhiYWxhbmNlXwkAzAgCCQELU3RyaW5nRW50cnkCCQC5CQIJAMwIAgUQS0VZX1VTRVJfQkFMQU5DRQkAzAgCBQV1c2VyXwkAzAgCBQd3YWxsZXRfCQDMCAIFCWN1cnJlbmN5XwUDbmlsBQlTRVBBUkFUT1IJAKYDAQUIYmFsYW5jZV8FA25pbAERX2xvYWRUb3RhbEJhbGFuY2UBCWN1cnJlbmN5XwQHJG1hdGNoMAkAoggBCQC5CQIJAMwIAgURS0VZX1RPVEFMX0JBTEFOQ0UJAMwIAgUJY3VycmVuY3lfBQNuaWwFCVNFUEFSQVRPUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJAKcDAQUBYQULWkVST19CSUdJTlQBEV9zYXZlVG90YWxCYWxhbmNlAgljdXJyZW5jeV8IYmFsYW5jZV8JAMwIAgkBC1N0cmluZ0VudHJ5AgkAuQkCCQDMCAIFEUtFWV9UT1RBTF9CQUxBTkNFCQDMCAIFCWN1cnJlbmN5XwUDbmlsBQlTRVBBUkFUT1IJAKYDAQUIYmFsYW5jZV8FA25pbAERX29ubHlUaGlzQ29udHJhY3QBB2NhbGxlcl8DCQECIT0CBQdjYWxsZXJfBQR0aGlzCQACAQIZX29ubHlUaGlzQ29udHJhY3Q6IHJldmVydAYBEF93aGVuTXVsdGlzaWdTZXQAAwkAAAIJAQ1fbG9hZE11bHRpc2lnAAkBB0FkZHJlc3MBAQAJAAIBAhhfd2hlbk11bHRpc2lnU2V0OiByZXZlcnQGARNfd2hlbk5vdEluaXRpYWxpemVkAAMJAQlfbG9hZEluaXQACQACAQIbX3doZW5Ob3RJbml0aWFsaXplZDogcmV2ZXJ0BgEQX3doZW5Jbml0aWFsaXplZAADCQEBIQEJAQlfbG9hZEluaXQACQACAQIYX3doZW5Jbml0aWFsaXplZDogcmV2ZXJ0BgEQX3ZhbGlkYXRlR2F0ZXdheQIGY2FsbGVyBGVycl8DCQECIT0CCQEUX2xvYWRHYXRld2F5Q29udHJhY3QABQZjYWxsZXIJAAIBBQRlcnJfBgEQX3ZhbGlkYXRlTWF0Y2hlcgIGY2FsbGVyBGVycl8DCQECIT0CCQEUX2xvYWRNYXRjaGVyQ29udHJhY3QABQZjYWxsZXIJAAIBBQRlcnJfBgkBaQEEaW5pdAIQZ2F0ZXdheUNvbnRyYWN0XxBtYXRjaGVyQ29udHJhY3RfBANlcnIDAwMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARNfd2hlbk5vdEluaXRpYWxpemVkAAcJARBfd2hlbk11bHRpc2lnU2V0AAcJARBfdmFsaWRhdGVBZGRyZXNzAgUQZ2F0ZXdheUNvbnRyYWN0XwIdaW5pdDogaW52YWxpZCBnYXRld2F5Q29udHJhY3QHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFEG1hdGNoZXJDb250cmFjdF8CHWluaXQ6IGludmFsaWQgbWF0Y2hlckNvbnRyYWN0BwMJAAACBQNlcnIFA2VycgkAlAoCCQDOCAIJAM4IAgkBCV9zYXZlSW5pdAEGCQEUX3NhdmVHYXRld2F5Q29udHJhY3QBCQERQGV4dHJOYXRpdmUoMTA2MikBBRBnYXRld2F5Q29udHJhY3RfCQEUX3NhdmVNYXRjaGVyQ29udHJhY3QBCQERQGV4dHJOYXRpdmUoMTA2MikBBRBtYXRjaGVyQ29udHJhY3RfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBB2RlcG9zaXQDBXVzZXJfCWN1cnJlbmN5XwdhbW91bnRfBAZhbW91bnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBBQdhbW91bnRfAhdkZXBvc2l0OiBhbW91bnQgbm90IGludAQDZXJyAwMDAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEPX3ZhbGlkYXRlU3RyaW5nAgUFdXNlcl8CFWRlcG9zaXQ6IGludmFsaWQgdXNlcgcJAQ9fdmFsaWRhdGVTdHJpbmcCBQljdXJyZW5jeV8CGWRlcG9zaXQ6IGludmFsaWQgY3VycmVuY3kHCQEPX3ZhbGlkYXRlQmlnSW50AwUGYW1vdW50BQtaRVJPX0JJR0lOVAIXZGVwb3NpdDogaW52YWxpZCBhbW91bnQHCQEQX3ZhbGlkYXRlR2F0ZXdheQIIBQFpBmNhbGxlcgIXZGVwb3NpdDogaW52YWxpZCBjYWxsZXIHAwkAAAIFA2VycgUDZXJyBAt1c2VyQmFsYW5jZQkBEF9sb2FkVXNlckJhbGFuY2UDBQV1c2VyXwULU1BPVF9XQUxMRVQFCWN1cnJlbmN5XwkAlAoCCQDOCAIJARBfc2F2ZVVzZXJCYWxhbmNlBAUFdXNlcl8FC1NQT1RfV0FMTEVUBQljdXJyZW5jeV8JALcCAgULdXNlckJhbGFuY2UFBmFtb3VudAkBEV9zYXZlVG90YWxCYWxhbmNlAgUJY3VycmVuY3lfCQC3AgIJARFfbG9hZFRvdGFsQmFsYW5jZQEFCWN1cnJlbmN5XwUGYW1vdW50BQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEGludGVybmFsVHJhbnNmZXIFBXVzZXJfDXNvdXJjZVdhbGxldF8NdGFyZ2V0V2FsbGV0XwljdXJyZW5jeV8HYW1vdW50XwQGYW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQUHYW1vdW50XwIgaW50ZXJuYWxUcmFuc2ZlcjogYW1vdW50IG5vdCBpbnQEA2VycgMDAwMDAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEPX3ZhbGlkYXRlU3RyaW5nAgUFdXNlcl8CHmludGVybmFsVHJhbnNmZXI6IGludmFsaWQgdXNlcgcJAQ9fdmFsaWRhdGVTdHJpbmcCBQ1zb3VyY2VXYWxsZXRfAiZpbnRlcm5hbFRyYW5zZmVyOiBpbnZhbGlkIHNvdXJjZVdhbGxldAcJAQ9fdmFsaWRhdGVTdHJpbmcCBQ10YXJnZXRXYWxsZXRfAiZpbnRlcm5hbFRyYW5zZmVyOiBpbnZhbGlkIHRhcmdldFdhbGxldAcJAQ9fdmFsaWRhdGVTdHJpbmcCBQljdXJyZW5jeV8CImludGVybmFsVHJhbnNmZXI6IGludmFsaWQgY3VycmVuY3kHCQEPX3ZhbGlkYXRlQmlnSW50AwUGYW1vdW50BQtaRVJPX0JJR0lOVAIgaW50ZXJuYWxUcmFuc2ZlcjogaW52YWxpZCBhbW91bnQHAwkAAAIFDXRhcmdldFdhbGxldF8FEldJVEhEUkFXQUxTX1dBTExFVAkBEF92YWxpZGF0ZUdhdGV3YXkCCAUBaQZjYWxsZXICI2ludGVybmFsVHJhbnNmZXI6IGludmFsaWQgZ3cgY2FsbGVyCQEQX3ZhbGlkYXRlTWF0Y2hlcgIIBQFpBmNhbGxlcgIoaW50ZXJuYWxUcmFuc2ZlcjogaW52YWxpZCBtYXRjaGVyIGNhbGxlcgcDCQAAAgUDZXJyBQNlcnIEEXVzZXJTb3VyY2VCYWxhbmNlCQEQX2xvYWRVc2VyQmFsYW5jZQMFBXVzZXJfBQ1zb3VyY2VXYWxsZXRfBQljdXJyZW5jeV8EEXVzZXJUYXJnZXRCYWxhbmNlCQEQX2xvYWRVc2VyQmFsYW5jZQMFBXVzZXJfBQ10YXJnZXRXYWxsZXRfBQljdXJyZW5jeV8EFG5ld1VzZXJTb3VyY2VCYWxhbmNlCQC4AgIFEXVzZXJTb3VyY2VCYWxhbmNlBQZhbW91bnQEFG5ld1VzZXJUYXJnZXRCYWxhbmNlCQC3AgIFEXVzZXJUYXJnZXRCYWxhbmNlBQZhbW91bnQEBGVycjEJAQ9fdmFsaWRhdGVCaWdJbnQDBRRuZXdVc2VyU291cmNlQmFsYW5jZQULWkVST19CSUdJTlQCJWludGVybmFsVHJhbnNmZXI6IGluc3VmZmljaWVudCBhbW91bnQDCQAAAgUEZXJyMQUEZXJyMQkAlAoCCQDOCAIJARBfc2F2ZVVzZXJCYWxhbmNlBAUFdXNlcl8FDXNvdXJjZVdhbGxldF8FCWN1cnJlbmN5XwUUbmV3VXNlclNvdXJjZUJhbGFuY2UJARBfc2F2ZVVzZXJCYWxhbmNlBAUFdXNlcl8FDXRhcmdldFdhbGxldF8FCWN1cnJlbmN5XwUUbmV3VXNlclRhcmdldEJhbGFuY2UFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEId2l0aGRyYXcDBXVzZXJfCWN1cnJlbmN5XwdhbW91bnRfBAZhbW91bnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBBQdhbW91bnRfAhh3aXRoZHJhdzogYW1vdW50IG5vdCBpbnQEA2VycgMDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBD192YWxpZGF0ZVN0cmluZwIFBXVzZXJfAhZ3aXRoZHJhdzogaW52YWxpZCB1c2VyBwkBD192YWxpZGF0ZVN0cmluZwIFCWN1cnJlbmN5XwIad2l0aGRyYXc6IGludmFsaWQgY3VycmVuY3kHCQEPX3ZhbGlkYXRlQmlnSW50AwUGYW1vdW50BQtaRVJPX0JJR0lOVAIYd2l0aGRyYXc6IGludmFsaWQgYW1vdW50BwkBEF92YWxpZGF0ZUdhdGV3YXkCCAUBaQZjYWxsZXICGHdpdGhkcmF3OiBpbnZhbGlkIGNhbGxlcgcDCQAAAgUDZXJyBQNlcnIEC3VzZXJCYWxhbmNlCQEQX2xvYWRVc2VyQmFsYW5jZQMFBXVzZXJfBRJXSVRIRFJBV0FMU19XQUxMRVQFCWN1cnJlbmN5XwQObmV3VXNlckJhbGFuY2UJALgCAgULdXNlckJhbGFuY2UFBmFtb3VudAQPbmV3VG90YWxCYWxhbmNlCQC4AgIJARFfbG9hZFRvdGFsQmFsYW5jZQEFCWN1cnJlbmN5XwUGYW1vdW50BARlcnIxAwkBD192YWxpZGF0ZUJpZ0ludAMFDm5ld1VzZXJCYWxhbmNlBQtaRVJPX0JJR0lOVAIdd2l0aGRyYXc6IGluc3VmZmljaWVudCBhbW91bnQJAQ9fdmFsaWRhdGVCaWdJbnQDBQ9uZXdUb3RhbEJhbGFuY2UFC1pFUk9fQklHSU5UAiB3aXRoZHJhdzogbmVnYXRpdmUgdG90YWwgYmFsYW5jZQcDCQAAAgUEZXJyMQUEZXJyMQkAlAoCCQDOCAIJARBfc2F2ZVVzZXJCYWxhbmNlBAUFdXNlcl8FEldJVEhEUkFXQUxTX1dBTExFVAUJY3VycmVuY3lfBQ5uZXdVc2VyQmFsYW5jZQkBEV9zYXZlVG90YWxCYWxhbmNlAgUJY3VycmVuY3lfBQ9uZXdUb3RhbEJhbGFuY2UFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEQZXh0ZXJuYWxUcmFuc2ZlcgcHd2FsbGV0XwljdXJyZW5jeV8FZnJvbV8DdG9fB2Ftb3VudF8EZmVlXwRkZXhfBAZhbW91bnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBBQdhbW91bnRfAiBleHRlcm5hbFRyYW5zZmVyOiBhbW91bnQgbm90IGludAQDZmVlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQUEZmVlXwIdZXh0ZXJuYWxUcmFuc2ZlcjogZmVlIG5vdCBpbnQEA2VycgMDAwMDAwMDCQEQX3doZW5Jbml0aWFsaXplZAAJAQ9fdmFsaWRhdGVTdHJpbmcCBQd3YWxsZXRfAiBleHRlcm5hbFRyYW5zZmVyOiBpbnZhbGlkIHdhbGxldAcJAQ9fdmFsaWRhdGVTdHJpbmcCBQljdXJyZW5jeV8CImV4dGVybmFsVHJhbnNmZXI6IGludmFsaWQgY3VycmVuY3kHCQEPX3ZhbGlkYXRlU3RyaW5nAgUFZnJvbV8CHmV4dGVybmFsVHJhbnNmZXI6IGludmFsaWQgZnJvbQcJAQ9fdmFsaWRhdGVTdHJpbmcCBQN0b18CHGV4dGVybmFsVHJhbnNmZXI6IGludmFsaWQgdG8HCQEPX3ZhbGlkYXRlQmlnSW50AwUGYW1vdW50BQtaRVJPX0JJR0lOVAIgZXh0ZXJuYWxUcmFuc2ZlcjogaW52YWxpZCBhbW91bnQHCQEPX3ZhbGlkYXRlQmlnSW50AwUDZmVlBQtaRVJPX0JJR0lOVAIdZXh0ZXJuYWxUcmFuc2ZlcjogaW52YWxpZCBmZWUHCQEPX3ZhbGlkYXRlU3RyaW5nAgUEZGV4XwIdZXh0ZXJuYWxUcmFuc2ZlcjogaW52YWxpZCBkZXgHCQEQX3ZhbGlkYXRlTWF0Y2hlcgIIBQFpBmNhbGxlcgIoZXh0ZXJuYWxUcmFuc2ZlcjogaW52YWxpZCBtYXRjaGVyIGNhbGxlcgcDCQAAAgUDZXJyBQNlcnIEEXVzZXJTb3VyY2VCYWxhbmNlCQEQX2xvYWRVc2VyQmFsYW5jZQMFBWZyb21fBQd3YWxsZXRfBQljdXJyZW5jeV8EEXVzZXJUYXJnZXRCYWxhbmNlCQEQX2xvYWRVc2VyQmFsYW5jZQMFA3RvXwUHd2FsbGV0XwUJY3VycmVuY3lfBBBkZXhUYXJnZXRCYWxhbmNlCQEQX2xvYWRVc2VyQmFsYW5jZQMFBGRleF8FB3dhbGxldF8FCWN1cnJlbmN5XwQUbmV3VXNlclNvdXJjZUJhbGFuY2UJALgCAgkAuAICBRF1c2VyU291cmNlQmFsYW5jZQUGYW1vdW50BQNmZWUEFG5ld1VzZXJUYXJnZXRCYWxhbmNlCQC3AgIFEXVzZXJUYXJnZXRCYWxhbmNlBQZhbW91bnQEE25ld0RleFRhcmdldEJhbGFuY2UJALcCAgUQZGV4VGFyZ2V0QmFsYW5jZQUDZmVlBARlcnIxCQEPX3ZhbGlkYXRlQmlnSW50AwUUbmV3VXNlclNvdXJjZUJhbGFuY2UFC1pFUk9fQklHSU5UAiVleHRlcm5hbFRyYW5zZmVyOiBpbnN1ZmZpY2llbnQgYW1vdW50AwkAAAIFBGVycjEFBGVycjEJAJQKAgkAzggCCQDOCAIJARBfc2F2ZVVzZXJCYWxhbmNlBAUFZnJvbV8FB3dhbGxldF8FCWN1cnJlbmN5XwUUbmV3VXNlclNvdXJjZUJhbGFuY2UJARBfc2F2ZVVzZXJCYWxhbmNlBAUDdG9fBQd3YWxsZXRfBQljdXJyZW5jeV8FFG5ld1VzZXJUYXJnZXRCYWxhbmNlCQEQX3NhdmVVc2VyQmFsYW5jZQQFBGRleF8FB3dhbGxldF8FCWN1cnJlbmN5XwUTbmV3RGV4VGFyZ2V0QmFsYW5jZQUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARRkZXBvc2l0U3Rha2luZ1Jld2FyZAMEZGV4XwljdXJyZW5jeV8HYW1vdW50XwQGYW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQUHYW1vdW50XwIkZGVwb3NpdFN0YWtpbmdSZXdhcmQ6IGFtb3VudCBub3QgaW50BANlcnIDAwMDCQEQX3doZW5Jbml0aWFsaXplZAAJAQ9fdmFsaWRhdGVTdHJpbmcCBQRkZXhfAiFkZXBvc2l0U3Rha2luZ1Jld2FyZDogaW52YWxpZCBkZXgHCQEPX3ZhbGlkYXRlU3RyaW5nAgUJY3VycmVuY3lfAiZkZXBvc2l0U3Rha2luZ1Jld2FyZDogaW52YWxpZCBjdXJyZW5jeQcJAQ9fdmFsaWRhdGVCaWdJbnQDBQZhbW91bnQFC1pFUk9fQklHSU5UAiRkZXBvc2l0U3Rha2luZ1Jld2FyZDogaW52YWxpZCBhbW91bnQHCQEQX3ZhbGlkYXRlR2F0ZXdheQIIBQFpBmNhbGxlcgIkZGVwb3NpdFN0YWtpbmdSZXdhcmQ6IGludmFsaWQgY2FsbGVyBwMJAAACBQNlcnIFA2VycgQLdXNlckJhbGFuY2UJARBfbG9hZFVzZXJCYWxhbmNlAwUEZGV4XwUVU1RBS0lOR19SRVdBUkRfV0FMTEVUBQljdXJyZW5jeV8JAJQKAgkAzggCCQEQX3NhdmVVc2VyQmFsYW5jZQQFBGRleF8FFVNUQUtJTkdfUkVXQVJEX1dBTExFVAUJY3VycmVuY3lfCQC3AgIFC3VzZXJCYWxhbmNlBQZhbW91bnQJARFfc2F2ZVRvdGFsQmFsYW5jZQIFCWN1cnJlbmN5XwkAtwICCQERX2xvYWRUb3RhbEJhbGFuY2UBBQljdXJyZW5jeV8FBmFtb3VudAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtjbGFpbVJld2FyZAQEZGV4XwV1c2VyXwljdXJyZW5jeV8HYW1vdW50XwQGYW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQUHYW1vdW50XwIbY2xhaW1SZXdhcmQ6IGFtb3VudCBub3QgaW50BANlcnIDAwMDAwkBEF93aGVuSW5pdGlhbGl6ZWQACQEPX3ZhbGlkYXRlU3RyaW5nAgUEZGV4XwIYY2xhaW1SZXdhcmQ6IGludmFsaWQgZGV4BwkBD192YWxpZGF0ZVN0cmluZwIFBXVzZXJfAhljbGFpbVJld2FyZDogaW52YWxpZCB1c2VyBwkBD192YWxpZGF0ZVN0cmluZwIFCWN1cnJlbmN5XwIdY2xhaW1SZXdhcmQ6IGludmFsaWQgY3VycmVuY3kHCQEPX3ZhbGlkYXRlQmlnSW50AwUGYW1vdW50BQtaRVJPX0JJR0lOVAIbY2xhaW1SZXdhcmQ6IGludmFsaWQgYW1vdW50BwkBEF92YWxpZGF0ZU1hdGNoZXICCAUBaQZjYWxsZXICI2NsYWltUmV3YXJkOiBpbnZhbGlkIG1hdGNoZXIgY2FsbGVyBwMJAAACBQNlcnIFA2VycgQQZGV4U291cmNlQmFsYW5jZQkBEF9sb2FkVXNlckJhbGFuY2UDBQRkZXhfBRVTVEFLSU5HX1JFV0FSRF9XQUxMRVQFCWN1cnJlbmN5XwQRdXNlclRhcmdldEJhbGFuY2UJARBfbG9hZFVzZXJCYWxhbmNlAwUFdXNlcl8FC1NQT1RfV0FMTEVUBQljdXJyZW5jeV8EE25ld0RleFNvdXJjZUJhbGFuY2UJALgCAgUQZGV4U291cmNlQmFsYW5jZQUGYW1vdW50BBRuZXdVc2VyVGFyZ2V0QmFsYW5jZQkAtwICBRF1c2VyVGFyZ2V0QmFsYW5jZQUGYW1vdW50BARlcnIxCQEPX3ZhbGlkYXRlQmlnSW50AwUTbmV3RGV4U291cmNlQmFsYW5jZQULWkVST19CSUdJTlQCIGNsYWltUmV3YXJkOiBpbnN1ZmZpY2llbnQgYW1vdW50AwkAAAIFBGVycjEFBGVycjEJAJQKAgkAzggCCQEQX3NhdmVVc2VyQmFsYW5jZQQFBGRleF8FFVNUQUtJTkdfUkVXQVJEX1dBTExFVAUJY3VycmVuY3lfBRNuZXdEZXhTb3VyY2VCYWxhbmNlCQEQX3NhdmVVc2VyQmFsYW5jZQQFBXVzZXJfBQtTUE9UX1dBTExFVAUJY3VycmVuY3lfBRRuZXdVc2VyVGFyZ2V0QmFsYW5jZQUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5nZXRVc2VyQmFsYW5jZQMFdXNlcl8Hd2FsbGV0XwljdXJyZW5jeV8JAJQKAgUDbmlsCQCmAwEJARBfbG9hZFVzZXJCYWxhbmNlAwUFdXNlcl8FB3dhbGxldF8FCWN1cnJlbmN5XwFpAQtzZXRNdWx0aXNpZwEJbXVsdGlzaWdfBANlcnIDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfdmFsaWRhdGVBZGRyZXNzAgUJbXVsdGlzaWdfAh1zZXRNdWx0aXNpZzogaW52YWxpZCBtdWx0aXNpZwcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBDV9zYXZlTXVsdGlzaWcBCQERQGV4dHJOYXRpdmUoMTA2MikBBQltdWx0aXNpZ18FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABAckbWF0Y2gwBQJ0eAQHJG1hdGNoMQkAoggBBQxLRVlfTVVMVElTSUcDCQABAgUHJG1hdGNoMQIGU3RyaW5nBAhtdWx0aXNpZwUHJG1hdGNoMQkBC3ZhbHVlT3JFbHNlAgkAmwgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQhtdWx0aXNpZwkAuQkCCQDMCAIFCktFWV9TVEFUVVMJAMwIAgkApQgBBQR0aGlzCQDMCAIJANgEAQgFAnR4AmlkBQNuaWwFCVNFUEFSQVRPUgcJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXn4dCXl", "height": 3178994, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 7 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "__"
5+
6+let b = "MULTISIG"
7+
8+let c = "STATUS"
9+
10+let d = "INIT"
11+
12+let e = "GATEWAY_CONTRACT"
13+
14+let f = "MATCHER_CONTRACT"
15+
16+let g = "USER_BALANCE"
17+
18+let h = "TOTAL_BALANCE"
19+
20+let i = "SPOT"
21+
22+let j = "WITHDRAWALS"
23+
24+let k = "STAKING_REWARD"
25+
26+let l = toBigInt(0)
27+
28+func m (n,o) = {
29+ let p = addressFromString(n)
30+ if ($isInstanceOf(p, "Address"))
31+ then {
32+ let q = p
33+ true
34+ }
35+ else throw(o)
36+ }
37+
38+
39+func r (s,t,o) = if ((t > s))
40+ then throw(o)
41+ else true
42+
43+
44+func u (s,o) = if (if ((0 >= size(s)))
45+ then true
46+ else contains(s, a))
47+ then throw(o)
48+ else true
49+
50+
51+func v (w,x,o) = if ((w != x))
52+ then throw(o)
53+ else true
54+
55+
56+func y () = {
57+ let p = getBoolean(d)
58+ if ($isInstanceOf(p, "Boolean"))
59+ then {
60+ let q = p
61+ q
62+ }
63+ else false
64+ }
65+
66+
67+func z (A) = [BooleanEntry(d, A)]
68+
69+
70+func B () = {
71+ let p = getString(b)
72+ if ($isInstanceOf(p, "String"))
73+ then {
74+ let q = p
75+ addressFromStringValue(q)
76+ }
77+ else Address(base58'')
78+ }
79+
80+
81+func C (D) = [StringEntry(b, toString(D))]
82+
83+
84+func E () = {
85+ let p = getString(e)
86+ if ($isInstanceOf(p, "String"))
87+ then {
88+ let q = p
89+ addressFromStringValue(q)
90+ }
91+ else Address(base58'')
92+ }
93+
94+
95+func F (G) = [StringEntry(e, toString(G))]
96+
97+
98+func H () = {
99+ let p = getString(f)
100+ if ($isInstanceOf(p, "String"))
101+ then {
102+ let q = p
103+ addressFromStringValue(q)
104+ }
105+ else Address(base58'')
106+ }
107+
108+
109+func I (J) = [StringEntry(f, toString(J))]
110+
111+
112+func K (L,M,N) = {
113+ let p = getString(makeString([g, L, M, N], a))
114+ if ($isInstanceOf(p, "String"))
115+ then {
116+ let q = p
117+ parseBigIntValue(q)
118+ }
119+ else l
120+ }
121+
122+
123+func O (L,M,N,P) = [StringEntry(makeString([g, L, M, N], a), toString(P))]
124+
125+
126+func Q (N) = {
127+ let p = getString(makeString([h, N], a))
128+ if ($isInstanceOf(p, "String"))
129+ then {
130+ let q = p
131+ parseBigIntValue(q)
132+ }
133+ else l
134+ }
135+
136+
137+func R (N,P) = [StringEntry(makeString([h, N], a), toString(P))]
138+
139+
140+func S (T) = if ((T != this))
141+ then throw("_onlyThisContract: revert")
142+ else true
143+
144+
145+func U () = if ((B() == Address(base58'')))
146+ then throw("_whenMultisigSet: revert")
147+ else true
148+
149+
150+func V () = if (y())
151+ then throw("_whenNotInitialized: revert")
152+ else true
153+
154+
155+func W () = if (!(y()))
156+ then throw("_whenInitialized: revert")
157+ else true
158+
159+
160+func X (Y,o) = if ((E() != Y))
161+ then throw(o)
162+ else true
163+
164+
165+func Z (Y,o) = if ((H() != Y))
166+ then throw(o)
167+ else true
168+
169+
170+@Callable(aa)
171+func init (G,J) = {
172+ let ab = if (if (if (if (S(aa.caller))
173+ then V()
174+ else false)
175+ then U()
176+ else false)
177+ then m(G, "init: invalid gatewayContract")
178+ else false)
179+ then m(J, "init: invalid matcherContract")
180+ else false
181+ if ((ab == ab))
182+ then $Tuple2(((z(true) ++ F(addressFromStringValue(G))) ++ I(addressFromStringValue(J))), unit)
183+ else throw("Strict value is not equal to itself.")
184+ }
185+
186+
187+
188+@Callable(aa)
189+func deposit (L,N,ac) = {
190+ let ad = valueOrErrorMessage(parseBigInt(ac), "deposit: amount not int")
191+ let ab = if (if (if (if (W())
192+ then u(L, "deposit: invalid user")
193+ else false)
194+ then u(N, "deposit: invalid currency")
195+ else false)
196+ then r(ad, l, "deposit: invalid amount")
197+ else false)
198+ then X(aa.caller, "deposit: invalid caller")
199+ else false
200+ if ((ab == ab))
201+ then {
202+ let ae = K(L, i, N)
203+ $Tuple2((O(L, i, N, (ae + ad)) ++ R(N, (Q(N) + ad))), unit)
204+ }
205+ else throw("Strict value is not equal to itself.")
206+ }
207+
208+
209+
210+@Callable(aa)
211+func internalTransfer (L,af,ag,N,ac) = {
212+ let ad = valueOrErrorMessage(parseBigInt(ac), "internalTransfer: amount not int")
213+ let ab = if (if (if (if (if (if (W())
214+ then u(L, "internalTransfer: invalid user")
215+ else false)
216+ then u(af, "internalTransfer: invalid sourceWallet")
217+ else false)
218+ then u(ag, "internalTransfer: invalid targetWallet")
219+ else false)
220+ then u(N, "internalTransfer: invalid currency")
221+ else false)
222+ then r(ad, l, "internalTransfer: invalid amount")
223+ else false)
224+ then if ((ag == j))
225+ then X(aa.caller, "internalTransfer: invalid gw caller")
226+ else Z(aa.caller, "internalTransfer: invalid matcher caller")
227+ else false
228+ if ((ab == ab))
229+ then {
230+ let ah = K(L, af, N)
231+ let ai = K(L, ag, N)
232+ let aj = (ah - ad)
233+ let ak = (ai + ad)
234+ let al = r(aj, l, "internalTransfer: insufficient amount")
235+ if ((al == al))
236+ then $Tuple2((O(L, af, N, aj) ++ O(L, ag, N, ak)), unit)
237+ else throw("Strict value is not equal to itself.")
238+ }
239+ else throw("Strict value is not equal to itself.")
240+ }
241+
242+
243+
244+@Callable(aa)
245+func withdraw (L,N,ac) = {
246+ let ad = valueOrErrorMessage(parseBigInt(ac), "withdraw: amount not int")
247+ let ab = if (if (if (if (W())
248+ then u(L, "withdraw: invalid user")
249+ else false)
250+ then u(N, "withdraw: invalid currency")
251+ else false)
252+ then r(ad, l, "withdraw: invalid amount")
253+ else false)
254+ then X(aa.caller, "withdraw: invalid caller")
255+ else false
256+ if ((ab == ab))
257+ then {
258+ let ae = K(L, j, N)
259+ let am = (ae - ad)
260+ let an = (Q(N) - ad)
261+ let al = if (r(am, l, "withdraw: insufficient amount"))
262+ then r(an, l, "withdraw: negative total balance")
263+ else false
264+ if ((al == al))
265+ then $Tuple2((O(L, j, N, am) ++ R(N, an)), unit)
266+ else throw("Strict value is not equal to itself.")
267+ }
268+ else throw("Strict value is not equal to itself.")
269+ }
270+
271+
272+
273+@Callable(aa)
274+func externalTransfer (M,N,ao,ap,ac,aq,ar) = {
275+ let ad = valueOrErrorMessage(parseBigInt(ac), "externalTransfer: amount not int")
276+ let as = valueOrErrorMessage(parseBigInt(aq), "externalTransfer: fee not int")
277+ let ab = if (if (if (if (if (if (if (if (W())
278+ then u(M, "externalTransfer: invalid wallet")
279+ else false)
280+ then u(N, "externalTransfer: invalid currency")
281+ else false)
282+ then u(ao, "externalTransfer: invalid from")
283+ else false)
284+ then u(ap, "externalTransfer: invalid to")
285+ else false)
286+ then r(ad, l, "externalTransfer: invalid amount")
287+ else false)
288+ then r(as, l, "externalTransfer: invalid fee")
289+ else false)
290+ then u(ar, "externalTransfer: invalid dex")
291+ else false)
292+ then Z(aa.caller, "externalTransfer: invalid matcher caller")
293+ else false
294+ if ((ab == ab))
295+ then {
296+ let ah = K(ao, M, N)
297+ let ai = K(ap, M, N)
298+ let at = K(ar, M, N)
299+ let aj = ((ah - ad) - as)
300+ let ak = (ai + ad)
301+ let au = (at + as)
302+ let al = r(aj, l, "externalTransfer: insufficient amount")
303+ if ((al == al))
304+ then $Tuple2(((O(ao, M, N, aj) ++ O(ap, M, N, ak)) ++ O(ar, M, N, au)), unit)
305+ else throw("Strict value is not equal to itself.")
306+ }
307+ else throw("Strict value is not equal to itself.")
308+ }
309+
310+
311+
312+@Callable(aa)
313+func depositStakingReward (ar,N,ac) = {
314+ let ad = valueOrErrorMessage(parseBigInt(ac), "depositStakingReward: amount not int")
315+ let ab = if (if (if (if (W())
316+ then u(ar, "depositStakingReward: invalid dex")
317+ else false)
318+ then u(N, "depositStakingReward: invalid currency")
319+ else false)
320+ then r(ad, l, "depositStakingReward: invalid amount")
321+ else false)
322+ then X(aa.caller, "depositStakingReward: invalid caller")
323+ else false
324+ if ((ab == ab))
325+ then {
326+ let ae = K(ar, k, N)
327+ $Tuple2((O(ar, k, N, (ae + ad)) ++ R(N, (Q(N) + ad))), unit)
328+ }
329+ else throw("Strict value is not equal to itself.")
330+ }
331+
332+
333+
334+@Callable(aa)
335+func claimReward (ar,L,N,ac) = {
336+ let ad = valueOrErrorMessage(parseBigInt(ac), "claimReward: amount not int")
337+ let ab = if (if (if (if (if (W())
338+ then u(ar, "claimReward: invalid dex")
339+ else false)
340+ then u(L, "claimReward: invalid user")
341+ else false)
342+ then u(N, "claimReward: invalid currency")
343+ else false)
344+ then r(ad, l, "claimReward: invalid amount")
345+ else false)
346+ then Z(aa.caller, "claimReward: invalid matcher caller")
347+ else false
348+ if ((ab == ab))
349+ then {
350+ let av = K(ar, k, N)
351+ let ai = K(L, i, N)
352+ let aw = (av - ad)
353+ let ak = (ai + ad)
354+ let al = r(aw, l, "claimReward: insufficient amount")
355+ if ((al == al))
356+ then $Tuple2((O(ar, k, N, aw) ++ O(L, i, N, ak)), unit)
357+ else throw("Strict value is not equal to itself.")
358+ }
359+ else throw("Strict value is not equal to itself.")
360+ }
361+
362+
363+
364+@Callable(aa)
365+func getUserBalance (L,M,N) = $Tuple2(nil, toString(K(L, M, N)))
366+
367+
368+
369+@Callable(aa)
370+func setMultisig (D) = {
371+ let ab = if (S(aa.caller))
372+ then m(D, "setMultisig: invalid multisig")
373+ else false
374+ if ((ab == ab))
375+ then $Tuple2(C(addressFromStringValue(D)), unit)
376+ else throw("Strict value is not equal to itself.")
377+ }
378+
379+
380+@Verifier(ax)
381+func ay () = {
382+ let p = ax
383+ let az = getString(b)
384+ if ($isInstanceOf(az, "String"))
385+ then {
386+ let aA = az
387+ valueOrElse(getBoolean(addressFromStringValue(aA), makeString([c, toString(this), toBase58String(ax.id)], a)), false)
388+ }
389+ else sigVerify(ax.bodyBytes, ax.proofs[0], ax.senderPublicKey)
390+ }
391+

github/deemru/w8io/873ac7e 
28.95 ms