tx · 5p8LUKmcLET4n6q1Ck9r3YqQDJGHqL6dv4qdkPFWDpqp

3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz:  -0.01700000 Waves

2023.12.02 08:57 [2868628] smart account 3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz > SELF 0.00000000 Waves

{ "type": 13, "id": "5p8LUKmcLET4n6q1Ck9r3YqQDJGHqL6dv4qdkPFWDpqp", "fee": 1700000, "feeAssetId": null, "timestamp": 1701496669608, "version": 2, "chainId": 84, "sender": "3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz", "senderPublicKey": "9p5EiEVtTgiMBxj67TfVfstKuQs1LHPxoZRiRhyS5oiN", "proofs": [ "5vP42UTsFAPmZwtCfdLj2CDtDKpXNr187PzD5WGc9oDLs1GGKoFkvzDUD8BrZE1PcUeda8mt6H3TUiBS757zDw8n" ], "script": "base64:BgI5CAISBAoCCAgSBAoCBAgSBAoCAQgSBQoDCAEIEgMKAQgSAwoBCBIDCgEIEgUKAwgICBIGCgQICAgILQAHVkVSU0lPTgIFMS4wLjABCWdldFN0ckJ5SwEDa2V5CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFA2tleQIAAAlvcmFjbGVGZWUJAQV2YWx1ZQEJAKYIAQkBCWdldFN0ckJ5SwECD2NvbmZfb3JhY2xlX2ZlZQALZmVlUmVjZWl2ZXIJAQlnZXRTdHJCeUsBAhFjb25mX2ZlZV9yZWNlaXZlcgAPcHV6emxlX2FydF9wb29sCQEJZ2V0U3RyQnlLAQIUY29uZl9wdXp6bGVfYXJ0X3Bvb2wAE3NpZ25BcnRBcnR3b3Jrc0RhcHAJAQV2YWx1ZQEJAKYIAQkBCWdldFN0ckJ5SwECEmNvbmZfYXJ0d29ya3NfZGFwcAARdXNkdFBQQXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhtjb25mX2FjY2VwdGVkX2Fzc2V0X1VTRFRfUFAADmFydEFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIXY29uZl9hY2NlcHRlZF9hc3NldF9BUlQAEXVzZGNQUEFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIbY29uZl9hY2NlcHRlZF9hc3NldF9VU0RDX1BQAA9lYXN0QXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X0VBU1QAEXB1enpsZUFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIaY29uZl9hY2NlcHRlZF9hc3NldF9QVVpaTEUAEGV0aFBQQXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhpjb25mX2FjY2VwdGVkX2Fzc2V0X0VUSF9QUAAQd2F2ZXNBc3NldElkX3N0cgIFV0FWRVMADXVzZHRQUEFzc2V0SWQJANkEAQURdXNkdFBQQXNzZXRJZF9zdHIACmFydEFzc2V0SWQJANkEAQUOYXJ0QXNzZXRJZF9zdHIADXVzZGNQUEFzc2V0SWQJANkEAQURdXNkY1BQQXNzZXRJZF9zdHIAC2Vhc3RBc3NldElkCQDZBAEFD2Vhc3RBc3NldElkX3N0cgANcHV6emxlQXNzZXRJZAkA2QQBBRFwdXp6bGVBc3NldElkX3N0cgAMZXRoUFBBc3NldElkCQDZBAEFEGV0aFBQQXNzZXRJZF9zdHIADHdhdmVzQXNzZXRJZAEAABNhbGxfYWNjZXB0ZWRfYXNzZXRzCQDMCAIFEXVzZHRQUEFzc2V0SWRfc3RyCQDMCAIFDmFydEFzc2V0SWRfc3RyCQDMCAIFEXVzZGNQUEFzc2V0SWRfc3RyCQDMCAIFD2Vhc3RBc3NldElkX3N0cgkAzAgCBRFwdXp6bGVBc3NldElkX3N0cgkAzAgCBRB3YXZlc0Fzc2V0SWRfc3RyCQDMCAIFEGV0aFBQQXNzZXRJZF9zdHIFA25pbAAFY2hyaXMJAQlnZXRTdHJCeUsBAgxjb25mX2FkbWluXzEADmNvbW1pc3Npb25fZmVlAAMADmRhcHBSdW5uaW5nS2V5AhRjb25mX2RhcHBfaXNfcnVubmluZwARbWFpbnRlbmFuY2VNU0dLZXkCFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ5kYXBwUnVubmluZ0tleQYADm1haW50ZW5hbmNlTVNHCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFEW1haW50ZW5hbmNlTVNHS2V5AgAACW51bVNhbGVzSwIJbnVtX3NhbGVzAQlnZXRJbnRCeUsBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAEKZ2V0U2FsZUtleQMGY2FsbGVyBW5mdElkBmlzc3VlcgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDXNhbGUybmRfaW5mb18FBmNhbGxlcgIBXwUFbmZ0SWQCAV8FBmlzc3VlcgEJZ2V0QmlkS2V5BApvZmZlck93bmVyBW5mdElkCXNhbGVPd25lcgdvZmZlcklkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCW9mZmVyMm5kXwUKb2ZmZXJPd25lcgIBXwUFbmZ0SWQCAV8FCXNhbGVPd25lcgIBXwUHb2ZmZXJJZAETZ2V0SW50QnlLRnJvbU9yYWNsZQEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUJb3JhY2xlRmVlBQNrZXkCH0ludGVnZXIgdW5kZWZpbmUgb3IgMCBpbiBvcmFjbGUBDGlkQ2FsbGVyRGF0ZQEBaQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwkAlQoDCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwgFCWxhc3RCbG9jawl0aW1lc3RhbXABCWlzUGF5bWVudAEBaQMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhNObyBwYXltZW50IGF0dGFjaGVkBAdwYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEBmFtb3VudAkBBXZhbHVlAQgFB3BheW1lbnQGYW1vdW50CQCUCgIFB3BheW1lbnQFBmFtb3VudAEKTkZUSXNWYWxpZAEMYXNzZXREZXRhaWxzAwMJAAACCAUMYXNzZXREZXRhaWxzCHF1YW50aXR5AAEJAAACCAUMYXNzZXREZXRhaWxzCGRlY2ltYWxzAAAHCQAAAggFDGFzc2V0RGV0YWlscwpyZWlzc3VhYmxlBwcBEGFjY2VwdGVkQXNzZXRJZHMBB2Fzc2V0SWQDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCBRNhbGxfYWNjZXB0ZWRfYXNzZXRzBQdhc3NldElkCQACAQJAT25seSAkQVJULCBVU0RULVBQLCBVU0RDLVBQLCBFQVNULCBQVVpaTEUsIEVUSCBvciBXQVZFUyBhY2NlcHRlZAYBDWdldEJpZEFzc2V0SWQBB2Fzc2V0SWQDCQAAAgUHYXNzZXRJZAIFV0FWRVMFBHVuaXQJANkEAQUHYXNzZXRJZAEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQVuZnRpZAQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRpZAMJAAACCQCxAgEFCXNhbGVPd25lcgAACQACAQINTkZUIG5vdCBmb3VuZAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUJc2FsZU93bmVyAgFfBQVuZnRpZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAhBORlQgbm90IGZvciBzYWxlBQlzYWxlT3duZXIBCmdldEJpZERhdGEBA2tleQQHYmlkRGF0YQkBCWdldFN0ckJ5SwEJAKwCAgUDa2V5AgVfT1BFTgMJAAACBQdiaWREYXRhAgAJAAIBAg9PZmZlciBub3QgZm91bmQECmJpZERhdGFBcnIJALUJAgUHYmlkRGF0YQIBXwQHYXNzZXRJZAkBDWdldEJpZEFzc2V0SWQBCQCRAwIFCmJpZERhdGFBcnIAAgkAlQoDBQpiaWREYXRhQXJyBQdhc3NldElkBQdiaWREYXRhAQpnZXRCYWxhbmNlAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJAPAHAgUEdGhpcwUBYggJAO8HAQUEdGhpcwlhdmFpbGFibGUBDHNldFRyYW5zZmVycwUGYW1vdW50B2Fzc2V0SWQFbmZ0aWQJc2FsZU93bmVyBmNhbGxlcgQNYW1vdW50Rm9yU2lnbgkAawMFBmFtb3VudAUOY29tbWlzc2lvbl9mZWUAZAQOYW1vdW50Rm9yT3duZXIJAGUCBQZhbW91bnQFDWFtb3VudEZvclNpZ24EImFtb3VudF9jb21taXNzaW9uX2Zvcl9zaWduX3RvX3N3YXAFDWFtb3VudEZvclNpZ24EEWFtb3VudF9hcnRfYmVmb3JlCQEKZ2V0QmFsYW5jZQEFCmFydEFzc2V0SWQDCQAAAgURYW1vdW50X2FydF9iZWZvcmUFEWFtb3VudF9hcnRfYmVmb3JlBA9zd2FwX2ZlZV90b19hcnQDCQECIT0CBQdhc3NldElkBQphcnRBc3NldElkCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQ9wdXp6bGVfYXJ0X3Bvb2wCBHN3YXAJAMwIAgUOYXJ0QXNzZXRJZF9zdHIJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB2Fzc2V0SWQFImFtb3VudF9jb21taXNzaW9uX2Zvcl9zaWduX3RvX3N3YXAFA25pbAUEdW5pdAMJAAACBQ9zd2FwX2ZlZV90b19hcnQFD3N3YXBfZmVlX3RvX2FydAQQYW1vdW50X2FydF9hZnRlcgkBCmdldEJhbGFuY2UBBQphcnRBc3NldElkAwkAAAIFEGFtb3VudF9hcnRfYWZ0ZXIFEGFtb3VudF9hcnRfYWZ0ZXIEC2NvbW1pc3Npb25zCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQULZmVlUmVjZWl2ZXIDCQAAAgUHYXNzZXRJZAUKYXJ0QXNzZXRJZAUNYW1vdW50Rm9yU2lnbgkAZQIFEGFtb3VudF9hcnRfYWZ0ZXIFEWFtb3VudF9hcnRfYmVmb3JlBQphcnRBc3NldElkBAhvd25lckZlZQkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFCXNhbGVPd25lcgUOYW1vdW50Rm9yT3duZXIFB2Fzc2V0SWQEDGNvbGxlY3Rvck5GVAkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCQDZBAEFBW5mdGlkCQCVCgMFC2NvbW1pc3Npb25zBQhvd25lckZlZQUMY29sbGVjdG9yTkZUCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ92YWxpZGF0ZU1pblNlbGwBBXByaWNlAwkAZgIAAAUFcHJpY2UJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UGAQ9wcm92aWRlQmFzZURhdGECAWkFbmZ0SWQECyR0MDUxOTU1MjM1CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQskdDA1MTk1NTIzNQJfMQQGY2FsbGVyCAULJHQwNTE5NTUyMzUCXzIEBGRhdGUIBQskdDA1MTk1NTIzNQJfMwQMYXNzZXREZXRhaWxzCQEFdmFsdWUBCQDsBwEJANkEAQUFbmZ0SWQECmlzVmFsaWRORlQJAQpORlRJc1ZhbGlkAQUMYXNzZXREZXRhaWxzCQCXCgUFAmlkBQZjYWxsZXIFBGRhdGUFCmlzVmFsaWRORlQIBQxhc3NldERldGFpbHMGaXNzdWVyAQ51cGRhdGVOdW1TYWxlcwAECG51bVNhbGVzCQEJZ2V0SW50QnlLAQUJbnVtU2FsZXNLCQEMSW50ZWdlckVudHJ5AgUJbnVtU2FsZXNLCQBkAgUIbnVtU2FsZXMAAQEHaGF2ZVNURAIGaXNzdWVyBm5kZnRJZAQEZGF0YQkBC3ZhbHVlT3JFbHNlAgkAnQgCCQEHQWRkcmVzcwEJANkEAQUGaXNzdWVyCQCsAgIJAKwCAgIIc3RkX25mdF8FBm5kZnRJZAIJX21ldGFkYXRhAgAJAQIhPQIFBGRhdGECAAkGaW52b2tlAQdzZXRDb25mAgNrZXkDdmFsBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwkBCGNvbnRhaW5zAgUDa2V5AgVjb25mXwkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkFA3ZhbAUDbmlsCQACAQIgRW50cmllcyBzdGFydGluZyB3aXRoIGNvbmZfIG9ubHkJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEKYXBwUnVubmluZwIGaXNMaXZlB21lc3NhZ2UEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgQCaWQJANgEAQgFBmludm9rZQ10cmFuc2FjdGlvbklkAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUOZGFwcFJ1bm5pbmdLZXkFBmlzTGl2ZQkAzAgCCQELU3RyaW5nRW50cnkCBRFtYWludGVuYW5jZU1TR0tleQUHbWVzc2FnZQUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwFpAQdzZWxsTkZUAgVwcmljZQVhc3NldAQLJHQwNjU3MDY2MDYJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAULJHQwNjU3MDY2MDYCXzEEBmFtb3VudAgFCyR0MDY1NzA2NjA2Al8yAwkBAiE9AgUGYW1vdW50AAEJAAIBAg9ObyBORlQgYXR0YWNoZWQEBW5mdElkAwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAkAAgECE1dhdmVzIGlzIG5vdCBhIE5GVC4ECyR0MDY3OTI2ODYyCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAULJHQwNjc5MjY4NjICXzEEBmNhbGxlcggFCyR0MDY3OTI2ODYyAl8yBARkYXRlCAULJHQwNjc5MjY4NjICXzMECmlzVmFsaWRORlQIBQskdDA2NzkyNjg2MgJfNAQGaXNzdWVyCAULJHQwNjc5MjY4NjICXzUDCQEBIQEFCmlzVmFsaWRORlQJAAIBAg9Ob3QgYSB2YWxpZCBuZnQDCQAAAgUGaXNzdWVyBRNzaWduQXJ0QXJ0d29ya3NEYXBwCQACAQI3VGhpcyBkQXBwIGlzIG9ubHkgZm9yIE5GVCBpc3N1ZWQgb3V0c2lkZSBTSUdOIEFydCBkQXBwLgMJAQEhAQkBB2hhdmVTVEQCCQClCAEFBmlzc3VlcgUFbmZ0SWQJAAIBAidObyBuZnQgc3RhbmRhcmQgZm91bmQgb24gaXNzdWVyIGFjY291bnQDCQEBIQEJARBhY2NlcHRlZEFzc2V0SWRzAQUFYXNzZXQJAAIBAkBPbmx5ICRBUlQsIFVTRFQtUFAsIFVTREMtUFAsIEVBU1QsIFBVWlpMRSwgRVRIIG9yIFdBVkVTIGFjY2VwdGVkAwkBASEBCQEPdmFsaWRhdGVNaW5TZWxsAQUFcHJpY2UJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQEKZ2V0U2FsZUtleQMFBmNhbGxlcgUFbmZ0SWQJAKUIAQUGaXNzdWVyAgVfT1BFTgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCkAwEFBGRhdGUCAV8JAKQDAQUFcHJpY2UCAV8FBWFzc2V0AgFfBQVuZnRJZAIBXwkApQgBBQZpc3N1ZXICAV8FAmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAIET1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkBQZjYWxsZXIFA25pbAFpAQ91cGRhdGVTYWxlUHJpY2UDBW5mdElkBXByaWNlBWFzc2V0BAskdDA3NzcxNzg0MQkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFCyR0MDc3NzE3ODQxAl8xBAZjYWxsZXIIBQskdDA3NzcxNzg0MQJfMgQEZGF0ZQgFCyR0MDc3NzE3ODQxAl8zBAppc1ZhbGlkTkZUCAULJHQwNzc3MTc4NDECXzQEBmlzc3VlcggFCyR0MDc3NzE3ODQxAl81AwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0BAlzYWxlT3duZXIJAQlnZXRTdHJCeUsBCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkAwkBAiE9AgUJc2FsZU93bmVyBQZjYWxsZXIJAAIBAhZZb3UgZG9uJ3Qgb3duIHRoaXMgTkZUBApzYWxlU3RhdHVzCQEJZ2V0U3RyQnlLAQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQZjYWxsZXICAV8FBW5mdElkAwkBAiE9AgUKc2FsZVN0YXR1cwIET1BFTgkAAgECD1NhbGUgbm90IGFjdGl2ZQMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQVhc3NldAkAAgECQE9ubHkgJEFSVCwgVVNEVC1QUCwgVVNEQy1QUCwgRUFTVCwgUFVaWkxFLCBFVEggb3IgV0FWRVMgYWNjZXB0ZWQDCQEBIQEJAQ92YWxpZGF0ZU1pblNlbGwBBQVwcmljZQkAAgECGFdyb25nIG1pbmltdW0gc2VsbCBwcmljZQQHc2FsZUtleQkBCmdldFNhbGVLZXkDBQZjYWxsZXIFBW5mdElkCQClCAEFBmlzc3VlcgQIc2FsZUluZm8JALUJAgkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4CAV8JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQdzYWxlS2V5AgVfT1BFTgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCRAwIFCHNhbGVJbmZvAAACAV8JAKQDAQUFcHJpY2UCAV8FBWFzc2V0AgFfCQCRAwIFCHNhbGVJbmZvAAMCAV8JAJEDAgUIc2FsZUluZm8ABAIBXwkAkQMCBQhzYWxlSW5mbwAFBQNuaWwBaQEKY2FuY2VsU2FsZQEFbmZ0SWQECyR0MDg4OTM5MTExCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAULJHQwODg5MzkxMTECXzEEBmNhbGxlcggFCyR0MDg4OTM5MTExAl8yBARkYXRlCAULJHQwODg5MzkxMTECXzMECmlzVmFsaWRORlQIBQskdDA4ODkzOTExMQJfNAQGaXNzdWVyCAULJHQwODg5MzkxMTECXzUECXNhbGVPd25lcgkBCWdldFN0ckJ5SwEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQDCQECIT0CBQlzYWxlT3duZXIFBmNhbGxlcgkAAgECFllvdSBkb24ndCBvd24gdGhpcyBORlQECnNhbGVTdGF0dXMJAQlnZXRTdHJCeUsBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FBmNhbGxlcgIBXwUFbmZ0SWQDCQECIT0CBQpzYWxlU3RhdHVzAgRPUEVOCQACAQIPU2FsZSBub3QgYWN0aXZlBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQMFBmNhbGxlcgUFbmZ0SWQJAKUIAQUGaXNzdWVyBAhzYWxlSW5mbwkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQdzYWxlS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FBmNhbGxlcgIBXwUFbmZ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQdzYWxlS2V5AgFfBQJpZAIKX0NBTkNFTExFRAkArAICCQCsAgIJAKwCAgkArAICBQhzYWxlSW5mbwILX0NBTkNFTExFRF8JAKQDAQUEZGF0ZQIBXwUCaWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCQDZBAEFBW5mdElkBQNuaWwBaQEGYnV5TkZUAQVuZnRJZAQMJHQwOTk0MjEwMDEyCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUMJHQwOTk0MjEwMDEyAl8xBAZjYWxsZXIIBQwkdDA5OTQyMTAwMTICXzIEBGRhdGUIBQwkdDA5OTQyMTAwMTICXzMECmlzVmFsaWRORlQIBQwkdDA5OTQyMTAwMTICXzQEBmlzc3VlcggFDCR0MDk5NDIxMDAxMgJfNQMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAQJc2FsZU93bmVyCQEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQUFbmZ0SWQEB3NhbGVLZXkJAQpnZXRTYWxlS2V5AwUJc2FsZU93bmVyBQVuZnRJZAkApQgBBQZpc3N1ZXIECHNhbGVJbmZvCQEJZ2V0U3RyQnlLAQkArAICBQdzYWxlS2V5AgVfT1BFTgMJAAACCQCxAgEFCHNhbGVJbmZvAAAJAAIBAg9TYWxlIE5vdCBmb3VuZCEEDXNhbGVJbmZvQXJyYXkJALUJAgUIc2FsZUluZm8CAV8DCQAAAgkAtgkBCQCRAwIFDXNhbGVJbmZvQXJyYXkAAQAACQACAQIKT2ZmZXIgb25seQQNJHQwMTA0MTExMDQ0NwkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQ0kdDAxMDQxMTEwNDQ3Al8xBAZhbW91bnQIBQ0kdDAxMDQxMTEwNDQ3Al8yBA9wYXltZW50QXNzZXRTdHIDCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkAgADAwkBAiE9AgkAkQMCBQ1zYWxlSW5mb0FycmF5AAEJAKQDAQUGYW1vdW50BgkBAiE9AgkAkQMCBQ1zYWxlSW5mb0FycmF5AAIFD3BheW1lbnRBc3NldFN0cgkAAgECGlBheW1lbnQgaW5mb3MgZG9uJ3QgbWF0Y2guBA0kdDAxMDk2MTExMDY4CQEMc2V0VHJhbnNmZXJzBQUGYW1vdW50CAUHcGF5bWVudAdhc3NldElkBQVuZnRJZAUJc2FsZU93bmVyBQZjYWxsZXIEC2NvbW1pc3Npb25zCAUNJHQwMTA5NjExMTA2OAJfMQQIb3duZXJGZWUIBQ0kdDAxMDk2MTExMDY4Al8yBAxjb2xsZWN0b3JORlQIBQ0kdDAxMDk2MTExMDY4Al8zCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQlzYWxlT3duZXICAV8FBW5mdElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHc2FsZUtleQIBXwUCaWQCB19DTE9TRUQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAIBXwUGY2FsbGVyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUIb3duZXJGZWUJAMwIAgUMY29sbGVjdG9yTkZUCQDMCAIFC2NvbW1pc3Npb25zBQNuaWwBaQEIc2V0T2ZmZXIBBW5mdElkBA0kdDAxMTQ2NzExNTQxCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTE0NjcxMTU0MQJfMQQKb2ZmZXJPd25lcggFDSR0MDExNDY3MTE1NDECXzIEBGRhdGUIBQ0kdDAxMTQ2NzExNTQxAl8zBAppc1ZhbGlkTkZUCAUNJHQwMTE0NjcxMTU0MQJfNAQGaXNzdWVyCAUNJHQwMTE0NjcxMTU0MQJfNQMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAQNJHQwMTE2MDIxMTYzOAkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQ0kdDAxMTYwMjExNjM4Al8xBAZhbW91bnQIBQ0kdDAxMTYwMjExNjM4Al8yBAdhc3NldElkAwkBASEBCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAIFV0FWRVMJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQdhc3NldElkCQACAQISYXNzZXQgbm90IGFjY2VwdGVkAwkAAAIFBmFtb3VudAAACQACAQIWT2ZmZXIgb2YgMCBub3QgYWxsb3dlZAMJAQEhAQkBD3ZhbGlkYXRlTWluU2VsbAEFBmFtb3VudAkAAgECGFdyb25nIG1pbmltdW0gc2VsbCBwcmljZQQJc2FsZU93bmVyCQEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQEJZ2V0QmlkS2V5BAUKb2ZmZXJPd25lcgUFbmZ0SWQFCXNhbGVPd25lcgUCaWQCBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCkAwEFBGRhdGUCAV8JAKQDAQUGYW1vdW50AgFfBQdhc3NldElkAgFfBQVuZnRJZAIBXwkApQgBBQZpc3N1ZXICAV8FCm9mZmVyT3duZXICAV8FAmlkBQNuaWwBaQELYWNjZXB0T2ZmZXIDBW5mdElkB29mZmVySWQKb2ZmZXJPd25lcgQNJHQwMTI0MjcxMjQ5NwkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFDSR0MDEyNDI3MTI0OTcCXzEEBmNhbGxlcggFDSR0MDEyNDI3MTI0OTcCXzIEBGRhdGUIBQ0kdDAxMjQyNzEyNDk3Al8zBAppc1ZhbGlkTkZUCAUNJHQwMTI0MjcxMjQ5NwJfNAQGaXNzdWVyCAUNJHQwMTI0MjcxMjQ5NwJfNQMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAQJc2FsZU93bmVyCQEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQUFbmZ0SWQDCQECIT0CBQZjYWxsZXIFCXNhbGVPd25lcgkAAgECIE9ubHkgc2FsZSBvd25lciBjYW4gYWNjZXB0IG9mZmVyBAZiaWRLZXkJAQlnZXRCaWRLZXkEBQpvZmZlck93bmVyBQVuZnRJZAUJc2FsZU93bmVyBQdvZmZlcklkBA0kdDAxMjc1MTEyODA2CQEKZ2V0QmlkRGF0YQEFBmJpZEtleQQKYmlkRGF0YUFycggFDSR0MDEyNzUxMTI4MDYCXzEEB2Fzc2V0SWQIBQ0kdDAxMjc1MTEyODA2Al8yBAdiaWREYXRhCAUNJHQwMTI3NTExMjgwNgJfMwQHc2FsZUtleQkBCmdldFNhbGVLZXkDBQlzYWxlT3duZXIFBW5mdElkCQClCAEFBmlzc3VlcgQIc2FsZUluZm8JAQlnZXRTdHJCeUsBCQCsAgIFB3NhbGVLZXkCBV9PUEVOAwkAAAIJALECAQUIc2FsZUluZm8AAAkAAgECD1NhbGUgTm90IGZvdW5kIQQGYW1vdW50CQEFdmFsdWUBCQC2CQEJAJEDAgUKYmlkRGF0YUFycgABBA0kdDAxMzA0MjEzMTQ4CQEMc2V0VHJhbnNmZXJzBQUGYW1vdW50BQdhc3NldElkBQVuZnRJZAUJc2FsZU93bmVyCQCRAwIFCmJpZERhdGFBcnIABgQLY29tbWlzc2lvbnMIBQ0kdDAxMzA0MjEzMTQ4Al8xBAhvd25lckZlZQgFDSR0MDEzMDQyMTMxNDgCXzIEDGNvbGxlY3Rvck5GVAgFDSR0MDEzMDQyMTMxNDgCXzMECmFzc2V0SWRTdHIDCQEJaXNEZWZpbmVkAQUHYXNzZXRJZAkA2AQBCQEFdmFsdWUBBQdhc3NldElkAgVXQVZFUwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUGYmlkS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FCXNhbGVPd25lcgIBXwUFbmZ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBmJpZEtleQIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICBQdiaWREYXRhAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQdzYWxlS2V5AgFfBQJpZAIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQhzYWxlSW5mbwIOX0NMT1NFRC1PRkZFUl8JAKQDAQUEZGF0ZQIBXwUCaWQCAV8FCm9mZmVyT3duZXICAV8JAKQDAQUGYW1vdW50AgFfBQphc3NldElkU3RyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUIb3duZXJGZWUJAMwIAgUMY29sbGVjdG9yTkZUCQDMCAIFC2NvbW1pc3Npb25zBQNuaWwBaQELY2FuY2VsT2ZmZXIEBW5mdElkB29mZmVySWQKb2ZmZXJPd25lcglzYWxlT3duZXIEDSR0MDEzOTM2MTQwMTAJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDEzOTM2MTQwMTACXzEEBmNhbGxlcggFDSR0MDEzOTM2MTQwMTACXzIEBGRhdGUIBQ0kdDAxMzkzNjE0MDEwAl8zAwMJAQIhPQIFBmNhbGxlcgUKb2ZmZXJPd25lcgkBAiE9AgUGY2FsbGVyBQlzYWxlT3duZXIHCQACAQIdWW91IGNhbm5vdCBjYW5jZWwgdGhpcyBvZmZlci4EBmJpZEtleQkBCWdldEJpZEtleQQFCm9mZmVyT3duZXIFBW5mdElkBQlzYWxlT3duZXIFB29mZmVySWQEDSR0MDE0MTgyMTQyMzcJAQpnZXRCaWREYXRhAQUGYmlkS2V5BApiaWREYXRhQXJyCAUNJHQwMTQxODIxNDIzNwJfMQQHYXNzZXRJZAgFDSR0MDE0MTgyMTQyMzcCXzIEB2JpZERhdGEIBQ0kdDAxNDE4MjE0MjM3Al8zCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUGYmlkS2V5AgVfT1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBmJpZEtleQIKX0NBTkNFTExFRAkArAICCQCsAgIJAKwCAgkArAICBQdiaWREYXRhAgtfQ0FOQ0VMTEVEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKYmlkRGF0YUFycgABBQdhc3NldElkBQNuaWwAb5/Raw==", "height": 2868628, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6x6BFzVViP7SrVmLsgNstymLW2yUySjaygCz1366RHTc Next: H3DWjkznvZfxRAjQXMqJqiDDyUP2CdTAgARUBUnj2iXg Diff:
OldNewDifferences
167167 }
168168
169169
170-func aq (ar) = if ((0 >= ar))
170+func aq (ar) = if ((0 > ar))
171171 then throw("Wrong minimum sell price")
172172 else true
173173
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0.0"
55
66 func b (c) = valueOrElse(getString(this, c), "")
77
88
99 let d = value(addressFromString(b("conf_oracle_fee")))
1010
1111 let e = b("conf_fee_receiver")
1212
1313 let f = b("conf_puzzle_art_pool")
1414
1515 let g = value(addressFromString(b("conf_artworks_dapp")))
1616
1717 let h = b("conf_accepted_asset_USDT_PP")
1818
1919 let i = b("conf_accepted_asset_ART")
2020
2121 let j = b("conf_accepted_asset_USDC_PP")
2222
2323 let k = b("conf_accepted_asset_EAST")
2424
2525 let l = b("conf_accepted_asset_PUZZLE")
2626
2727 let m = b("conf_accepted_asset_ETH_PP")
2828
2929 let n = "WAVES"
3030
3131 let o = fromBase58String(h)
3232
3333 let p = fromBase58String(i)
3434
3535 let q = fromBase58String(j)
3636
3737 let r = fromBase58String(k)
3838
3939 let s = fromBase58String(l)
4040
4141 let t = fromBase58String(m)
4242
4343 let u = base58''
4444
4545 let v = [h, i, j, k, l, n, m]
4646
4747 let w = b("conf_admin_1")
4848
4949 let x = 3
5050
5151 let y = "conf_dapp_is_running"
5252
5353 let z = "conf_maintenance_msg"
5454
5555 let A = valueOrElse(getBoolean(this, y), true)
5656
5757 let B = valueOrElse(getString(this, z), "")
5858
5959 let C = "num_sales"
6060
6161 func D (c) = valueOrElse(getInteger(this, c), 0)
6262
6363
6464 func E (F,G,H) = ((((("sale2nd_info_" + F) + "_") + G) + "_") + H)
6565
6666
6767 func I (J,G,K,L) = ((((((("offer2nd_" + J) + "_") + G) + "_") + K) + "_") + L)
6868
6969
7070 func M (c) = valueOrErrorMessage(getInteger(d, c), "Integer undefine or 0 in oracle")
7171
7272
7373 func N (O) = if (!(A))
7474 then throw(B)
7575 else $Tuple3(toBase58String(O.transactionId), toBase58String(O.caller.bytes), lastBlock.timestamp)
7676
7777
7878 func P (O) = if ((size(O.payments) == 0))
7979 then throw("No payment attached")
8080 else {
8181 let Q = value(O.payments[0])
8282 let R = value(Q.amount)
8383 $Tuple2(Q, R)
8484 }
8585
8686
8787 func S (T) = if (if ((T.quantity == 1))
8888 then (T.decimals == 0)
8989 else false)
9090 then (T.reissuable == false)
9191 else false
9292
9393
9494 func U (V) = if (!(containsElement(v, V)))
9595 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
9696 else true
9797
9898
9999 func W (V) = if ((V == "WAVES"))
100100 then unit
101101 else fromBase58String(V)
102102
103103
104104 func X (Y) = {
105105 let K = b(("current_owner_on_dapp_" + Y))
106106 if ((size(K) == 0))
107107 then throw("NFT not found")
108108 else {
109109 let Z = b(((("sale2nd_status_" + K) + "_") + Y))
110110 if ((Z != "OPEN"))
111111 then throw("NFT not for sale")
112112 else K
113113 }
114114 }
115115
116116
117117 func aa (c) = {
118118 let ab = b((c + "_OPEN"))
119119 if ((ab == ""))
120120 then throw("Offer not found")
121121 else {
122122 let ac = split(ab, "_")
123123 let V = W(ac[2])
124124 $Tuple3(ac, V, ab)
125125 }
126126 }
127127
128128
129129 func ad (V) = {
130130 let ae = V
131131 if ($isInstanceOf(ae, "ByteVector"))
132132 then {
133133 let af = ae
134134 assetBalance(this, af)
135135 }
136136 else wavesBalance(this).available
137137 }
138138
139139
140140 func ag (R,V,Y,K,F) = {
141141 let ah = fraction(R, x, 100)
142142 let ai = (R - ah)
143143 let aj = ah
144144 let ak = ad(p)
145145 if ((ak == ak))
146146 then {
147147 let al = if ((V != p))
148148 then invoke(Address(fromBase58String(f)), "swap", [i, 1], [AttachedPayment(V, aj)])
149149 else unit
150150 if ((al == al))
151151 then {
152152 let am = ad(p)
153153 if ((am == am))
154154 then {
155155 let an = ScriptTransfer(Address(fromBase58String(e)), if ((V == p))
156156 then ah
157157 else (am - ak), p)
158158 let ao = ScriptTransfer(Address(fromBase58String(K)), ai, V)
159159 let ap = ScriptTransfer(Address(fromBase58String(F)), 1, fromBase58String(Y))
160160 $Tuple3(an, ao, ap)
161161 }
162162 else throw("Strict value is not equal to itself.")
163163 }
164164 else throw("Strict value is not equal to itself.")
165165 }
166166 else throw("Strict value is not equal to itself.")
167167 }
168168
169169
170-func aq (ar) = if ((0 >= ar))
170+func aq (ar) = if ((0 > ar))
171171 then throw("Wrong minimum sell price")
172172 else true
173173
174174
175175 func as (O,G) = {
176176 let at = N(O)
177177 let au = at._1
178178 let F = at._2
179179 let av = at._3
180180 let T = value(assetInfo(fromBase58String(G)))
181181 let aw = S(T)
182182 $Tuple5(au, F, av, aw, T.issuer)
183183 }
184184
185185
186186 func ax () = {
187187 let ay = D(C)
188188 IntegerEntry(C, (ay + 1))
189189 }
190190
191191
192192 func az (H,aA) = {
193193 let aB = valueOrElse(getString(Address(fromBase58String(H)), (("std_nft_" + aA) + "_metadata")), "")
194194 (aB != "")
195195 }
196196
197197
198198 @Callable(aC)
199199 func setConf (c,aD) = {
200200 let F = toString(aC.caller)
201201 if (containsElement([w, toString(this)], F))
202202 then if (contains(c, "conf_"))
203203 then [StringEntry(c, aD)]
204204 else throw("Entries starting with conf_ only")
205205 else throw("You are not allowed to change this")
206206 }
207207
208208
209209
210210 @Callable(aC)
211211 func appRunning (aE,aF) = {
212212 let F = toString(aC.caller)
213213 let au = toBase58String(aC.transactionId)
214214 if (containsElement([w, toString(this)], F))
215215 then [BooleanEntry(y, aE), StringEntry(z, aF)]
216216 else throw("You are not allowed to change this")
217217 }
218218
219219
220220
221221 @Callable(O)
222222 func sellNFT (ar,aG) = {
223223 let aH = P(O)
224224 let Q = aH._1
225225 let R = aH._2
226226 if ((R != 1))
227227 then throw("No NFT attached")
228228 else {
229229 let G = if (isDefined(Q.assetId))
230230 then toBase58String(value(Q.assetId))
231231 else throw("Waves is not a NFT.")
232232 let aI = as(O, G)
233233 let au = aI._1
234234 let F = aI._2
235235 let av = aI._3
236236 let aw = aI._4
237237 let H = aI._5
238238 if (!(aw))
239239 then throw("Not a valid nft")
240240 else if ((H == g))
241241 then throw("This dApp is only for NFT issued outside SIGN Art dApp.")
242242 else if (!(az(toString(H), G)))
243243 then throw("No nft standard found on issuer account")
244244 else if (!(U(aG)))
245245 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
246246 else if (!(aq(ar)))
247247 then throw("Wrong minimum sell price")
248248 else [StringEntry((E(F, G, toString(H)) + "_OPEN"), ((((((((((toString(av) + "_") + toString(ar)) + "_") + aG) + "_") + G) + "_") + toString(H)) + "_") + au)), StringEntry(((("sale2nd_status_" + F) + "_") + G), "OPEN"), StringEntry(("current_owner_on_dapp_" + G), F)]
249249 }
250250 }
251251
252252
253253
254254 @Callable(O)
255255 func updateSalePrice (G,ar,aG) = {
256256 let aJ = as(O, G)
257257 let au = aJ._1
258258 let F = aJ._2
259259 let av = aJ._3
260260 let aw = aJ._4
261261 let H = aJ._5
262262 if (!(aw))
263263 then throw("Not a valid nft")
264264 else {
265265 let K = b(("current_owner_on_dapp_" + G))
266266 if ((K != F))
267267 then throw("You don't own this NFT")
268268 else {
269269 let Z = b(((("sale2nd_status_" + F) + "_") + G))
270270 if ((Z != "OPEN"))
271271 then throw("Sale not active")
272272 else if (!(U(aG)))
273273 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
274274 else if (!(aq(ar)))
275275 then throw("Wrong minimum sell price")
276276 else {
277277 let aK = E(F, G, toString(H))
278278 let aL = split(b((aK + "_OPEN")), "_")
279279 [StringEntry((aK + "_OPEN"), ((((((((((aL[0] + "_") + toString(ar)) + "_") + aG) + "_") + aL[3]) + "_") + aL[4]) + "_") + aL[5]))]
280280 }
281281 }
282282 }
283283 }
284284
285285
286286
287287 @Callable(O)
288288 func cancelSale (G) = {
289289 let aM = as(O, G)
290290 let au = aM._1
291291 let F = aM._2
292292 let av = aM._3
293293 let aw = aM._4
294294 let H = aM._5
295295 let K = b(("current_owner_on_dapp_" + G))
296296 if ((K != F))
297297 then throw("You don't own this NFT")
298298 else {
299299 let Z = b(((("sale2nd_status_" + F) + "_") + G))
300300 if ((Z != "OPEN"))
301301 then throw("Sale not active")
302302 else {
303303 let aK = E(F, G, toString(H))
304304 let aL = b((aK + "_OPEN"))
305305 [DeleteEntry((aK + "_OPEN")), DeleteEntry(((("sale2nd_status_" + F) + "_") + G)), DeleteEntry(("current_owner_on_dapp_" + G)), StringEntry((((aK + "_") + au) + "_CANCELLED"), ((((aL + "_CANCELLED_") + toString(av)) + "_") + au)), ScriptTransfer(Address(fromBase58String(F)), 1, fromBase58String(G))]
306306 }
307307 }
308308 }
309309
310310
311311
312312 @Callable(O)
313313 func buyNFT (G) = {
314314 let aN = as(O, G)
315315 let au = aN._1
316316 let F = aN._2
317317 let av = aN._3
318318 let aw = aN._4
319319 let H = aN._5
320320 if (!(aw))
321321 then throw("Not a valid nft")
322322 else {
323323 let K = X(G)
324324 let aK = E(K, G, toString(H))
325325 let aL = b((aK + "_OPEN"))
326326 if ((size(aL) == 0))
327327 then throw("Sale Not found!")
328328 else {
329329 let aO = split(aL, "_")
330330 if ((parseInt(aO[1]) == 0))
331331 then throw("Offer only")
332332 else {
333333 let aP = P(O)
334334 let Q = aP._1
335335 let R = aP._2
336336 let aQ = if (isDefined(Q.assetId))
337337 then toBase58String(value(Q.assetId))
338338 else ""
339339 if (if ((aO[1] != toString(R)))
340340 then true
341341 else (aO[2] != aQ))
342342 then throw("Payment infos don't match.")
343343 else {
344344 let aR = ag(R, Q.assetId, G, K, F)
345345 let an = aR._1
346346 let ao = aR._2
347347 let ap = aR._3
348348 [DeleteEntry((aK + "_OPEN")), DeleteEntry(((("sale2nd_status_" + K) + "_") + G)), DeleteEntry(("current_owner_on_dapp_" + G)), StringEntry((((aK + "_") + au) + "_CLOSED"), ((((((aL + "_CLOSED_") + toString(av)) + "_") + au) + "_") + F)), ax(), ao, ap, an]
349349 }
350350 }
351351 }
352352 }
353353 }
354354
355355
356356
357357 @Callable(O)
358358 func setOffer (G) = {
359359 let aS = as(O, G)
360360 let au = aS._1
361361 let J = aS._2
362362 let av = aS._3
363363 let aw = aS._4
364364 let H = aS._5
365365 if (!(aw))
366366 then throw("Not a valid nft")
367367 else {
368368 let aT = P(O)
369369 let Q = aT._1
370370 let R = aT._2
371371 let V = if (!(isDefined(Q.assetId)))
372372 then "WAVES"
373373 else toBase58String(value(Q.assetId))
374374 if (!(U(V)))
375375 then throw("asset not accepted")
376376 else if ((R == 0))
377377 then throw("Offer of 0 not allowed")
378378 else if (!(aq(R)))
379379 then throw("Wrong minimum sell price")
380380 else {
381381 let K = X(G)
382382 [StringEntry((I(J, G, K, au) + "_OPEN"), ((((((((((((toString(av) + "_") + toString(R)) + "_") + V) + "_") + G) + "_") + toString(H)) + "_") + J) + "_") + au))]
383383 }
384384 }
385385 }
386386
387387
388388
389389 @Callable(O)
390390 func acceptOffer (G,L,J) = {
391391 let aU = as(O, G)
392392 let au = aU._1
393393 let F = aU._2
394394 let av = aU._3
395395 let aw = aU._4
396396 let H = aU._5
397397 if (!(aw))
398398 then throw("Not a valid nft")
399399 else {
400400 let K = X(G)
401401 if ((F != K))
402402 then throw("Only sale owner can accept offer")
403403 else {
404404 let aV = I(J, G, K, L)
405405 let aW = aa(aV)
406406 let ac = aW._1
407407 let V = aW._2
408408 let ab = aW._3
409409 let aK = E(K, G, toString(H))
410410 let aL = b((aK + "_OPEN"))
411411 if ((size(aL) == 0))
412412 then throw("Sale Not found!")
413413 else {
414414 let R = value(parseInt(ac[1]))
415415 let aX = ag(R, V, G, K, ac[6])
416416 let an = aX._1
417417 let ao = aX._2
418418 let ap = aX._3
419419 let aY = if (isDefined(V))
420420 then toBase58String(value(V))
421421 else "WAVES"
422422 [DeleteEntry((aK + "_OPEN")), DeleteEntry((aV + "_OPEN")), DeleteEntry(((("sale2nd_status_" + K) + "_") + G)), DeleteEntry(("current_owner_on_dapp_" + G)), StringEntry((aV + "_CLOSED"), ((((ab + "_CLOSED_") + toString(av)) + "_") + au)), StringEntry((((aK + "_") + au) + "_CLOSED"), ((((((((((aL + "_CLOSED-OFFER_") + toString(av)) + "_") + au) + "_") + J) + "_") + toString(R)) + "_") + aY)), ax(), ao, ap, an]
423423 }
424424 }
425425 }
426426 }
427427
428428
429429
430430 @Callable(O)
431431 func cancelOffer (G,L,J,K) = {
432432 let aZ = N(O)
433433 let au = aZ._1
434434 let F = aZ._2
435435 let av = aZ._3
436436 if (if ((F != J))
437437 then (F != K)
438438 else false)
439439 then throw("You cannot cancel this offer.")
440440 else {
441441 let aV = I(J, G, K, L)
442442 let ba = aa(aV)
443443 let ac = ba._1
444444 let V = ba._2
445445 let ab = ba._3
446446 [DeleteEntry((aV + "_OPEN")), StringEntry((aV + "_CANCELLED"), ((((ab + "_CANCELLED_") + toString(av)) + "_") + au)), ScriptTransfer(Address(fromBase58String(F)), parseIntValue(ac[1]), V)]
447447 }
448448 }
449449
450450

github/deemru/w8io/3da68e3 
60.84 ms