tx · BS2XNb3iY4fePmQ8CfKoaZNiotqBTUf6hjhbwsfJr5hm

3N8VMRDjjw6kAuCviYwFq4yDWyctRuHPN7X:  -0.00800000 Waves

2022.11.07 15:50 [2306755] smart account 3N8VMRDjjw6kAuCviYwFq4yDWyctRuHPN7X > SELF 0.00000000 Waves

{ "type": 13, "id": "BS2XNb3iY4fePmQ8CfKoaZNiotqBTUf6hjhbwsfJr5hm", "fee": 800000, "feeAssetId": null, "timestamp": 1667825473640, "version": 2, "chainId": 84, "sender": "3N8VMRDjjw6kAuCviYwFq4yDWyctRuHPN7X", "senderPublicKey": "SrcQexq2T9cnMXmLqfJtc8AnQ91ZjeaJtXoi1HwDsx9", "proofs": [ "5ntQaUTNU5pS5z32rErDSdBXP1btQVno27k9ExeEFXy8tbF6xb1LgZKtZ7iKHLcGzYNGAmdnqiKTngY1J7xbD8UL" ], "script": "base64:BgIhCAISBAoCCAESAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEAEIcHJpY2VLZXkBBWFzc2V0CQCsAgIFBWFzc2V0AgZfcHJpY2UBCG93bmVyS2V5AQVhc3NldAkArAICBQVhc3NldAIGX293bmVyAQlpc3N1ZXJLZXkBBWFzc2V0CQCsAgIFBWFzc2V0AgdfaXNzdWVyAQduYW1lS2V5AQVhc3NldAkArAICBQVhc3NldAIFX25hbWUBDmRlc2NyaXB0aW9uS2V5AQVhc3NldAkArAICBQVhc3NldAIMX2Rlc2NyaXB0aW9uAQthc3NldEFjY2VzcwEFYXNzZXQJAKwCAgUFYXNzZXQCCV9hc3NldEJ1eQEKYXNzZXRPZmZlcgEFYXNzZXQJAKwCAgUFYXNzZXQCBl9vZmZlcgENdHJ5R2V0SW50ZWdlcgEDa2V5BAN2YWwEByRtYXRjaDAJAJoIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAABQN2YWwBDHRyeUdldFN0cmluZwEDa2V5BAN2YWwEByRtYXRjaDAJAJ0IAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYgUHJG1hdGNoMAUBYgIABQN2YWwBCnRyeUdldEJvb2wBA2tleQQDdmFsBAckbWF0Y2gwCQCbCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFiBQckbWF0Y2gwBQFiBwUDdmFsAQtpc1BheW1lbnRPawMBaRFhY2NlcHRhYmxlQXNzZXRJZAVwcmljZQMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRQYXltZW50IG5vdCBhdHRhY2hlZAQBcAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAN2YWwEByRtYXRjaDAIBQFwB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQHYXNzZXRJZAUHJG1hdGNoMAMJAAACCQDYBAEFB2Fzc2V0SWQFEWFjY2VwdGFibGVBc3NldElkCQBnAggFAXAGYW1vdW50BQVwcmljZQcDCQABAgUHJG1hdGNoMAIEVW5pdAQFd2F2ZXMFByRtYXRjaDAJAGcCCAUBcAZhbW91bnQFBXByaWNlCQACAQILTWF0Y2ggZXJyb3IFA3ZhbAEPaXNBY2NlcHRhYmxlTmZ0AgZzdGF0dXMJYXNzZXRTYWxlBAdpZEFzc2V0BAckbWF0Y2gwCAUJYXNzZXRTYWxlB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAUBYgMJAAECBQckbWF0Y2gwAgRVbml0BAFiBQckbWF0Y2gwAQPQAAAJAAIBAgtNYXRjaCBlcnJvcgQFYXNzZXQEByRtYXRjaDAJAOwHAQUHaWRBc3NldAMJAAECBQckbWF0Y2gwAgVBc3NldAQBYgUHJG1hdGNoMAkA2AQBCAgFAWIGaXNzdWVyBWJ5dGVzAwkAAQIFByRtYXRjaDACBFVuaXQEBXdhdmVzBQckbWF0Y2gwAgVXYXZlcwkAAgECC01hdGNoIGVycm9yAwkBCnRyeUdldEJvb2wBBQVhc3NldAUGc3RhdHVzBwEKZ2V0QXNzZXRJZAIGc3RhdHVzCWFzc2V0U2FsZQQHaWRBc3NldAQHJG1hdGNoMAgFCWFzc2V0U2FsZQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgMJAAECBQckbWF0Y2gwAgRVbml0BAFiBQckbWF0Y2gwAgVXYXZlcwkAAgECC01hdGNoIGVycm9yCQCsAgIJAKwCAgUGc3RhdHVzAgFfBQdpZEFzc2V0AQ1nZXRBc3NldFByaWNlAgZzdGF0dXMJYXNzZXRTYWxlBAVwcmljZQkApAMBCAUJYXNzZXRTYWxlBmFtb3VudAkArAICCQCsAgIFBnN0YXR1cwIBXwUFcHJpY2UBDmdldEFzc2V0SXNzdWVyAgZzdGF0dXMJYXNzZXRTYWxlBAdpZEFzc2V0BAckbWF0Y2gwCAUJYXNzZXRTYWxlB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAUBYgMJAAECBQckbWF0Y2gwAgRVbml0BAFiBQckbWF0Y2gwAQPQAAAJAAIBAgtNYXRjaCBlcnJvcgQGaXNzdWVyBAckbWF0Y2gwCQDsBwEFB2lkQXNzZXQDCQABAgUHJG1hdGNoMAIFQXNzZXQEAWIFByRtYXRjaDAJANgEAQgIBQFiBmlzc3VlcgVieXRlcwMJAAECBQckbWF0Y2gwAgRVbml0BAFiBQckbWF0Y2gwAgVXYXZlcwkAAgECC01hdGNoIGVycm9yCQCsAgIJAKwCAgUGc3RhdHVzAgFfBQZpc3N1ZXIBEGdldFRyYW5zZmVyQXNzZXQCBnN0YXR1cwRkYXRhBA90cmFuc2ZlckFkZHJlc3MEByRtYXRjaDAJAKYIAQgFBGRhdGECXzEDCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYgUHJG1hdGNoMAUBYgMJAAECBQckbWF0Y2gwAgRVbml0BAFiBQckbWF0Y2gwBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IDCQECIT0CCAUEZGF0YQJfMwIFV2F2ZXMJAM0IAgUGc3RhdHVzCQEOU2NyaXB0VHJhbnNmZXIDBQ90cmFuc2ZlckFkZHJlc3MIBQRkYXRhAl8yCQDZBAEIBQRkYXRhAl8zCQDNCAIFBnN0YXR1cwkBDlNjcmlwdFRyYW5zZmVyAwUPdHJhbnNmZXJBZGRyZXNzCAUEZGF0YQJfMgUEdW5pdAYBaQEMb2ZmZXJGb3JTYWxlAgxhc3NldElkUHJpY2UFcHJpY2UDCQEBIQEDCQEKdHJ5R2V0Qm9vbAEJAQthc3NldEFjY2VzcwEFDGFzc2V0SWRQcmljZQkAZgIFBXByaWNlAAAHCQACAQIUU2FsZSBBc3NldCBpbmNvcnJlY3QEDGZpcnN0UGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAdhc3NldElkBAckbWF0Y2gwCAUMZmlyc3RQYXltZW50B2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAFAmlkAwkAAQIFByRtYXRjaDACBFVuaXQEAXcFByRtYXRjaDAJAAIBAhBBc3NldCBpcyBub3QgTkZUCQACAQILTWF0Y2ggZXJyb3IECmFzc2V0SWRTdHIJANgEAQUHYXNzZXRJZAQFYXNzZXQEByRtYXRjaDAJAOwHAQUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQBYQUHJG1hdGNoMAUBYQkAAgECJUVycm9yIGdldHRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYXNzZXQDAwMJAQIhPQIIBQVhc3NldAhxdWFudGl0eQABCQECIT0CCAUFYXNzZXQIZGVjaW1hbHMAAAcIBQVhc3NldApyZWlzc3VhYmxlBwkAAgECEEFzc2V0IGlzIG5vdCBORlQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQhwcmljZUtleQEFCmFzc2V0SWRTdHIFBXByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQhvd25lcktleQEFCmFzc2V0SWRTdHIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQELU3RyaW5nRW50cnkCCQEJaXNzdWVyS2V5AQUKYXNzZXRJZFN0cgkA2AQBCAgFBWFzc2V0Bmlzc3VlcgVieXRlcwkAzAgCCQELU3RyaW5nRW50cnkCCQEHbmFtZUtleQEFCmFzc2V0SWRTdHIIBQVhc3NldARuYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5kZXNjcmlwdGlvbktleQEFCmFzc2V0SWRTdHIIBQVhc3NldAtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQEKYXNzZXRPZmZlcgEFCmFzc2V0SWRTdHIFDGFzc2V0SWRQcmljZQUDbmlsAWkBDG9mZmVyRm9yU3dhcAEMYXNzZXRJZFByaWNlBAhjb3VudFBheQkAkAMBCAUBaQhwYXltZW50cwQGc3RhdHVzCgACJGwIBQFpCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAYKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBD2lzQWNjZXB0YWJsZU5mdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIDCQEBIQEFBnN0YXR1cwkAAgECElBheW1lbnRzIGluY29ycmVjdAMJAGYCCQENdHJ5R2V0SW50ZWdlcgECCmNvbW1pc3Npb24ICQCRAwIIBQFpCHBheW1lbnRzAAEGYW1vdW50CQACAQIVTm8gbWluaW11bSBjb21taXNzaW9uBApwYXltZW50QWxsCgACJGwIBQFpCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAIACgEFJGYxXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQpnZXRBc3NldElkAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYxXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyAyCQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgQGaXNzdWVyCgACJGwIBQFpCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAIACgEFJGYyXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQ5nZXRBc3NldElzc3VlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMl8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMgkBBSRmMl8yAgkBBSRmMl8xAgkBBSRmMl8xAgUFJGFjYzAAAAABAAIEBXByaWNlCgACJGwIBQFpCHBheW1lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAIACgEFJGYzXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQ1nZXRBc3NldFByaWNlAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYzXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyAyCQEFJGYzXzICCQEFJGYzXzECCQEFJGYzXzECBQUkYWNjMAAAAAEAAgkAzAgCCQELU3RyaW5nRW50cnkCCQEIcHJpY2VLZXkBBQpwYXltZW50QWxsBQVwcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQEIb3duZXJLZXkBBQpwYXltZW50QWxsCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCWlzc3VlcktleQEFCnBheW1lbnRBbGwFBmlzc3VlcgkAzAgCCQELU3RyaW5nRW50cnkCCQEKYXNzZXRPZmZlcgEFCnBheW1lbnRBbGwFDGFzc2V0SWRQcmljZQUDbmlsAWkBA2J1eQEIYXNzZXRTdHIEBXByaWNlCQENdHJ5R2V0SW50ZWdlcgEJAQhwcmljZUtleQEFCGFzc2V0U3RyBBFhY2NlcHRhYmxlQXNzZXRJZAkBDHRyeUdldFN0cmluZwEJAQphc3NldE9mZmVyAQUIYXNzZXRTdHIECG93bmVyU3RyCQEMdHJ5R2V0U3RyaW5nAQkBCG93bmVyS2V5AQUIYXNzZXRTdHIEBW93bmVyBAckbWF0Y2gwCQCmCAEFCG93bmVyU3RyAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAFAWEJAAIBAhVBZGRyZXNzIHBhcnNpbmcgZXJyb3IDCQEBIQEJAQtpc1BheW1lbnRPawMFAWkFEWFjY2VwdGFibGVBc3NldElkBQVwcmljZQkAAgECHVdyb25nIHBheW1lbnQgYW1vdW50IG9yIGFzc2V0AwkAAAIFCG93bmVyU3RyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAAIBAhhPd25lciBjYW5ub3QgYnV5IGhpcyBOVEYDCQAAAgUFcHJpY2UAAAkAAgECGFRoaXMgTkZUIGlzIG5vdCBmb3Igc2FsZQQDZmVlCQBoAgkAaQIFBXByaWNlAGQABQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQkA2QQBBQhhc3NldFN0cgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQVvd25lcgkAZQIFBXByaWNlBQNmZWUFBHVuaXQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCHByaWNlS2V5AQUIYXNzZXRTdHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCG93bmVyS2V5AQUIYXNzZXRTdHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCWlzc3VlcktleQEFCGFzc2V0U3RyCQDMCAIJAQtEZWxldGVFbnRyeQEJAQduYW1lS2V5AQUIYXNzZXRTdHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDmRlc2NyaXB0aW9uS2V5AQUIYXNzZXRTdHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCmFzc2V0T2ZmZXIBBQhhc3NldFN0cgUDbmlsAWkBCHN3YXBEb25lAQdvZmZlcklkBAVwcmljZQkBDHRyeUdldFN0cmluZwEJAQhwcmljZUtleQEFB29mZmVySWQEBW9mZmVyCQEMdHJ5R2V0U3RyaW5nAQkBCmFzc2V0T2ZmZXIBBQdvZmZlcklkBApvd25lck9mZmVyCQEMdHJ5R2V0U3RyaW5nAQkBCG93bmVyS2V5AQUHb2ZmZXJJZAQIb3duZXJOZnQJAQx0cnlHZXRTdHJpbmcBCQEIb3duZXJLZXkBBQdvZmZlcklkAwkBAiE9AgUIb3duZXJOZnQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkAAgECNVRoZSBjYWxsaW5nIGFkZHJlc3MgaXMgbm90IHRoZSBvd25lciBvZiB0aGUgTkZUIHRva2VuAwkAAAIFBXByaWNlAgAJAAIBAhhUaGlzIE5GVCBpcyBub3QgZm9yIHNhbGUEA2ZlZQkBDXRyeUdldEludGVnZXIBAgpjb21taXNzaW9uBAlsaXN0QXNzZXQJALUJAgUHb2ZmZXJJZAIBXwQJbGlzdFByaWNlCQC1CQIFBXByaWNlAgFfCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCG93bmVyTmZ0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUJbGlzdFByaWNlAAAJANkEAQkAkQMCBQlsaXN0QXNzZXQAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQhvd25lck5mdAkAZQIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQlsaXN0UHJpY2UAAQUDZmVlBQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCm93bmVyT2ZmZXIAAQkA2QQBCQEMdHJ5R2V0U3RyaW5nAQUHb2ZmZXJJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEIcHJpY2VLZXkBCQCRAwIFCWxpc3RBc3NldAAACQDMCAIJAQtEZWxldGVFbnRyeQEJAQhvd25lcktleQEJAJEDAgUJbGlzdEFzc2V0AAAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCWlzc3VlcktleQEJAJEDAgUJbGlzdEFzc2V0AAAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB25hbWVLZXkBCQCRAwIFCWxpc3RBc3NldAAACQDMCAIJAQtEZWxldGVFbnRyeQEJAQ5kZXNjcmlwdGlvbktleQEJAJEDAgUJbGlzdEFzc2V0AAAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCHByaWNlS2V5AQUHb2ZmZXJJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEIb3duZXJLZXkBBQdvZmZlcklkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQlpc3N1ZXJLZXkBBQdvZmZlcklkBQNuaWwBaQENY2FuY2VsU2VsbGluZwEIYXNzZXRTdHIECG93bmVyU3RyCQEMdHJ5R2V0U3RyaW5nAQkBCG93bmVyS2V5AQUIYXNzZXRTdHIEBW93bmVyBAckbWF0Y2gwCQCmCAEFCG93bmVyU3RyAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAFAWEJAAIBAhVBZGRyZXNzIHBhcnNpbmcgZXJyb3IDCQECIT0CBQhvd25lclN0cgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQACAQI1VGhlIGNhbGxpbmcgYWRkcmVzcyBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSBORlQgdG9rZW4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEJANkEAQUIYXNzZXRTdHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCHByaWNlS2V5AQUIYXNzZXRTdHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCG93bmVyS2V5AQUIYXNzZXRTdHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCWlzc3VlcktleQEFCGFzc2V0U3RyCQDMCAIJAQtEZWxldGVFbnRyeQEJAQduYW1lS2V5AQUIYXNzZXRTdHIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDmRlc2NyaXB0aW9uS2V5AQUIYXNzZXRTdHIFA25pbAFpAQpzd2FwQ2Fuc2VsAQdvZmZlcklkBApvd25lck9mZmVyCQEMdHJ5R2V0U3RyaW5nAQkBCG93bmVyS2V5AQUHb2ZmZXJJZAQFcHJpY2UJAQx0cnlHZXRTdHJpbmcBCQEIcHJpY2VLZXkBBQdvZmZlcklkAwkBAiE9AgUKb3duZXJPZmZlcgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQACAQI1VGhlIGNhbGxpbmcgYWRkcmVzcyBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSBORlQgdG9rZW4ECWxpc3RBc3NldAkAtQkCBQdvZmZlcklkAgFfBAlsaXN0UHJpY2UJALUJAgUFcHJpY2UCAV8JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUKb3duZXJPZmZlcgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCWxpc3RQcmljZQAACQDZBAEJAJEDAgUJbGlzdEFzc2V0AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUKb3duZXJPZmZlcgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCWxpc3RQcmljZQABBQR1bml0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQhwcmljZUtleQEFB29mZmVySWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBCG93bmVyS2V5AQUHb2ZmZXJJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEJaXNzdWVyS2V5AQUHb2ZmZXJJZAUDbmlsAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tlebgBg+k=", "height": 2306755, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: CBmDZzadMxhmh3bBddre4vpNH7zy8Hgi1BHCtv7WPo3d Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func a (b) = (b + "_price")
5+
6+
7+func c (b) = (b + "_owner")
8+
9+
10+func d (b) = (b + "_issuer")
11+
12+
13+func e (b) = (b + "_name")
14+
15+
16+func f (b) = (b + "_description")
17+
18+
19+func g (b) = (b + "_assetBuy")
20+
21+
22+func h (b) = (b + "_offer")
23+
24+
25+func i (j) = {
26+ let k = {
27+ let l = getInteger(this, j)
28+ if ($isInstanceOf(l, "Int"))
29+ then {
30+ let m = l
31+ m
32+ }
33+ else 0
34+ }
35+ k
36+ }
37+
38+
39+func n (j) = {
40+ let k = {
41+ let l = getString(this, j)
42+ if ($isInstanceOf(l, "String"))
43+ then {
44+ let m = l
45+ m
46+ }
47+ else ""
48+ }
49+ k
50+ }
51+
52+
53+func o (j) = {
54+ let k = {
55+ let l = getBoolean(this, j)
56+ if ($isInstanceOf(l, "Boolean"))
57+ then {
58+ let m = l
59+ m
60+ }
61+ else false
62+ }
63+ k
64+ }
65+
66+
67+func p (q,r,s) = if ((size(q.payments) == 0))
68+ then throw("Payment not attached")
69+ else {
70+ let t = value(q.payments[0])
71+ let k = {
72+ let l = t.assetId
73+ if ($isInstanceOf(l, "ByteVector"))
74+ then {
75+ let u = l
76+ if ((toBase58String(u) == r))
77+ then (t.amount >= s)
78+ else false
79+ }
80+ else if ($isInstanceOf(l, "Unit"))
81+ then {
82+ let v = l
83+ (t.amount >= s)
84+ }
85+ else throw("Match error")
86+ }
87+ k
88+ }
89+
90+
91+func w (x,y) = {
92+ let z = {
93+ let l = y.assetId
94+ if ($isInstanceOf(l, "ByteVector"))
95+ then {
96+ let m = l
97+ m
98+ }
99+ else if ($isInstanceOf(l, "Unit"))
100+ then {
101+ let m = l
102+ base58'2CsAf'
103+ }
104+ else throw("Match error")
105+ }
106+ let b = {
107+ let l = assetInfo(z)
108+ if ($isInstanceOf(l, "Asset"))
109+ then {
110+ let m = l
111+ toBase58String(m.issuer.bytes)
112+ }
113+ else if ($isInstanceOf(l, "Unit"))
114+ then {
115+ let v = l
116+ "Waves"
117+ }
118+ else throw("Match error")
119+ }
120+ if (o(b))
121+ then x
122+ else false
123+ }
124+
125+
126+func A (x,y) = {
127+ let z = {
128+ let l = y.assetId
129+ if ($isInstanceOf(l, "ByteVector"))
130+ then {
131+ let m = l
132+ toBase58String(m)
133+ }
134+ else if ($isInstanceOf(l, "Unit"))
135+ then {
136+ let m = l
137+ "Waves"
138+ }
139+ else throw("Match error")
140+ }
141+ ((x + "_") + z)
142+ }
143+
144+
145+func B (x,y) = {
146+ let s = toString(y.amount)
147+ ((x + "_") + s)
148+ }
149+
150+
151+func C (x,y) = {
152+ let z = {
153+ let l = y.assetId
154+ if ($isInstanceOf(l, "ByteVector"))
155+ then {
156+ let m = l
157+ m
158+ }
159+ else if ($isInstanceOf(l, "Unit"))
160+ then {
161+ let m = l
162+ base58'2CsAf'
163+ }
164+ else throw("Match error")
165+ }
166+ let D = {
167+ let l = assetInfo(z)
168+ if ($isInstanceOf(l, "Asset"))
169+ then {
170+ let m = l
171+ toBase58String(m.issuer.bytes)
172+ }
173+ else if ($isInstanceOf(l, "Unit"))
174+ then {
175+ let m = l
176+ "Waves"
177+ }
178+ else throw("Match error")
179+ }
180+ ((x + "_") + D)
181+ }
182+
183+
184+func E (x,F) = {
185+ let G = {
186+ let l = addressFromString(F._1)
187+ if ($isInstanceOf(l, "Address"))
188+ then {
189+ let m = l
190+ m
191+ }
192+ else if ($isInstanceOf(l, "Unit"))
193+ then {
194+ let m = l
195+ this
196+ }
197+ else throw("Match error")
198+ }
199+ if ((F._3 != "Waves"))
200+ then (x :+ ScriptTransfer(G, F._2, fromBase58String(F._3)))
201+ else (x :+ ScriptTransfer(G, F._2, unit))
202+ }
203+
204+
205+@Callable(q)
206+func offerForSale (H,s) = if (!(if (o(g(H)))
207+ then (s > 0)
208+ else false))
209+ then throw("Sale Asset incorrect")
210+ else {
211+ let I = value(q.payments[0])
212+ let u = {
213+ let l = I.assetId
214+ if ($isInstanceOf(l, "ByteVector"))
215+ then {
216+ let J = l
217+ J
218+ }
219+ else if ($isInstanceOf(l, "Unit"))
220+ then {
221+ let K = l
222+ throw("Asset is not NFT")
223+ }
224+ else throw("Match error")
225+ }
226+ let L = toBase58String(u)
227+ let b = {
228+ let l = assetInfo(u)
229+ if ($isInstanceOf(l, "Asset"))
230+ then {
231+ let M = l
232+ M
233+ }
234+ else throw("Error getting information about asset")
235+ }
236+ if (if (if ((b.quantity != 1))
237+ then (b.decimals != 0)
238+ else false)
239+ then b.reissuable
240+ else false)
241+ then throw("Asset is not NFT")
242+ else [IntegerEntry(a(L), s), StringEntry(c(L), toBase58String(q.caller.bytes)), StringEntry(d(L), toBase58String(b.issuer.bytes)), StringEntry(e(L), b.name), StringEntry(f(L), b.description), StringEntry(h(L), H)]
243+ }
244+
245+
246+
247+@Callable(q)
248+func offerForSwap (H) = {
249+ let N = size(q.payments)
250+ let x = {
251+ let O = q.payments
252+ let P = size(O)
253+ let Q = true
254+ func R (S,T) = if ((T >= P))
255+ then S
256+ else w(S, O[T])
257+
258+ func U (S,T) = if ((T >= P))
259+ then S
260+ else throw("List size exceeds 2")
261+
262+ U(R(R(Q, 0), 1), 2)
263+ }
264+ if (!(x))
265+ then throw("Payments incorrect")
266+ else if ((i("commission") > q.payments[1].amount))
267+ then throw("No minimum commission")
268+ else {
269+ let V = {
270+ let O = q.payments
271+ let P = size(O)
272+ let Q = ""
273+ func W (S,T) = if ((T >= P))
274+ then S
275+ else A(S, O[T])
276+
277+ func X (S,T) = if ((T >= P))
278+ then S
279+ else throw("List size exceeds 2")
280+
281+ X(W(W(Q, 0), 1), 2)
282+ }
283+ let D = {
284+ let O = q.payments
285+ let P = size(O)
286+ let Q = ""
287+ func Y (S,T) = if ((T >= P))
288+ then S
289+ else C(S, O[T])
290+
291+ func Z (S,T) = if ((T >= P))
292+ then S
293+ else throw("List size exceeds 2")
294+
295+ Z(Y(Y(Q, 0), 1), 2)
296+ }
297+ let s = {
298+ let O = q.payments
299+ let P = size(O)
300+ let Q = ""
301+ func aa (S,T) = if ((T >= P))
302+ then S
303+ else B(S, O[T])
304+
305+ func ab (S,T) = if ((T >= P))
306+ then S
307+ else throw("List size exceeds 2")
308+
309+ ab(aa(aa(Q, 0), 1), 2)
310+ }
311+[StringEntry(a(V), s), StringEntry(c(V), toBase58String(q.caller.bytes)), StringEntry(d(V), D), StringEntry(h(V), H)]
312+ }
313+ }
314+
315+
316+
317+@Callable(q)
318+func buy (ac) = {
319+ let s = i(a(ac))
320+ let r = n(h(ac))
321+ let ad = n(c(ac))
322+ let ae = {
323+ let l = addressFromString(ad)
324+ if ($isInstanceOf(l, "Address"))
325+ then {
326+ let M = l
327+ M
328+ }
329+ else throw("Address parsing error")
330+ }
331+ if (!(p(q, r, s)))
332+ then throw("Wrong payment amount or asset")
333+ else if ((ad == toBase58String(q.caller.bytes)))
334+ then throw("Owner cannot buy his NTF")
335+ else if ((s == 0))
336+ then throw("This NFT is not for sale")
337+ else {
338+ let af = ((s / 100) * 5)
339+[ScriptTransfer(q.caller, 1, fromBase58String(ac)), ScriptTransfer(ae, (s - af), unit), DeleteEntry(a(ac)), DeleteEntry(c(ac)), DeleteEntry(d(ac)), DeleteEntry(e(ac)), DeleteEntry(f(ac)), DeleteEntry(h(ac))]
340+ }
341+ }
342+
343+
344+
345+@Callable(q)
346+func swapDone (ag) = {
347+ let s = n(a(ag))
348+ let ah = n(h(ag))
349+ let ai = n(c(ag))
350+ let aj = n(c(ag))
351+ if ((aj != toBase58String(q.caller.bytes)))
352+ then throw("The calling address is not the owner of the NFT token")
353+ else if ((s == ""))
354+ then throw("This NFT is not for sale")
355+ else {
356+ let af = i("commission")
357+ let ak = split(ag, "_")
358+ let al = split(s, "_")
359+[ScriptTransfer(addressFromStringValue(aj), parseIntValue(al[0]), fromBase58String(ak[0])), ScriptTransfer(addressFromStringValue(aj), (parseIntValue(al[1]) - af), unit), ScriptTransfer(addressFromStringValue(ai), 1, fromBase58String(n(ag))), DeleteEntry(a(ak[0])), DeleteEntry(c(ak[0])), DeleteEntry(d(ak[0])), DeleteEntry(e(ak[0])), DeleteEntry(f(ak[0])), DeleteEntry(a(ag)), DeleteEntry(c(ag)), DeleteEntry(d(ag))]
360+ }
361+ }
362+
363+
364+
365+@Callable(q)
366+func cancelSelling (ac) = {
367+ let ad = n(c(ac))
368+ let ae = {
369+ let l = addressFromString(ad)
370+ if ($isInstanceOf(l, "Address"))
371+ then {
372+ let M = l
373+ M
374+ }
375+ else throw("Address parsing error")
376+ }
377+ if ((ad != toBase58String(q.caller.bytes)))
378+ then throw("The calling address is not the owner of the NFT token")
379+ else [ScriptTransfer(q.caller, 1, fromBase58String(ac)), DeleteEntry(a(ac)), DeleteEntry(c(ac)), DeleteEntry(d(ac)), DeleteEntry(e(ac)), DeleteEntry(f(ac))]
380+ }
381+
382+
383+
384+@Callable(q)
385+func swapCansel (ag) = {
386+ let ai = n(c(ag))
387+ let s = n(a(ag))
388+ if ((ai != toBase58String(q.caller.bytes)))
389+ then throw("The calling address is not the owner of the NFT token")
390+ else {
391+ let ak = split(ag, "_")
392+ let al = split(s, "_")
393+[ScriptTransfer(addressFromStringValue(ai), parseIntValue(al[0]), fromBase58String(ak[0])), ScriptTransfer(addressFromStringValue(ai), parseIntValue(al[1]), unit), DeleteEntry(a(ag)), DeleteEntry(c(ag)), DeleteEntry(d(ag))]
394+ }
395+ }
396+
397+
398+@Verifier(am)
399+func an () = sigVerify(am.bodyBytes, am.proofs[0], am.senderPublicKey)
400+

github/deemru/w8io/169f3d6 
27.00 ms