tx · 6x6BFzVViP7SrVmLsgNstymLW2yUySjaygCz1366RHTc

3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz:  -0.01300000 Waves

2023.11.14 11:12 [2842748] smart account 3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz > SELF 0.00000000 Waves

{ "type": 13, "id": "6x6BFzVViP7SrVmLsgNstymLW2yUySjaygCz1366RHTc", "fee": 1300000, "feeAssetId": null, "timestamp": 1699949524223, "version": 2, "chainId": 84, "sender": "3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz", "senderPublicKey": "9p5EiEVtTgiMBxj67TfVfstKuQs1LHPxoZRiRhyS5oiN", "proofs": [ "3An24oGaiu5F9rScRTVrXzokcbLsZJ2XVSgQn4T8oAFcRFENtDkaAuWDJHdJTw69CckQcTbZct4TTXm2wzN9E4Pt" ], "script": "base64:BgI5CAISBAoCCAgSBAoCBAgSBAoCAQgSBQoDCAEIEgMKAQgSAwoBCBIDCgEIEgUKAwgICBIGCgQICAgILQAHVkVSU0lPTgIFMS4wLjABCWdldFN0ckJ5SwEDa2V5CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFA2tleQIAAAlvcmFjbGVGZWUJAQV2YWx1ZQEJAKYIAQkBCWdldFN0ckJ5SwECD2NvbmZfb3JhY2xlX2ZlZQALZmVlUmVjZWl2ZXIJAQlnZXRTdHJCeUsBAhFjb25mX2ZlZV9yZWNlaXZlcgAPcHV6emxlX2FydF9wb29sCQEJZ2V0U3RyQnlLAQIUY29uZl9wdXp6bGVfYXJ0X3Bvb2wAE3NpZ25BcnRBcnR3b3Jrc0RhcHAJAQV2YWx1ZQEJAKYIAQkBCWdldFN0ckJ5SwECEmNvbmZfYXJ0d29ya3NfZGFwcAARdXNkdFBQQXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhtjb25mX2FjY2VwdGVkX2Fzc2V0X1VTRFRfUFAADmFydEFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIXY29uZl9hY2NlcHRlZF9hc3NldF9BUlQAEXVzZGNQUEFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIbY29uZl9hY2NlcHRlZF9hc3NldF9VU0RDX1BQAA9lYXN0QXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X0VBU1QAEXB1enpsZUFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIaY29uZl9hY2NlcHRlZF9hc3NldF9QVVpaTEUAEGV0aFBQQXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhpjb25mX2FjY2VwdGVkX2Fzc2V0X0VUSF9QUAAQd2F2ZXNBc3NldElkX3N0cgIFV0FWRVMADXVzZHRQUEFzc2V0SWQJANkEAQURdXNkdFBQQXNzZXRJZF9zdHIACmFydEFzc2V0SWQJANkEAQUOYXJ0QXNzZXRJZF9zdHIADXVzZGNQUEFzc2V0SWQJANkEAQURdXNkY1BQQXNzZXRJZF9zdHIAC2Vhc3RBc3NldElkCQDZBAEFD2Vhc3RBc3NldElkX3N0cgANcHV6emxlQXNzZXRJZAkA2QQBBRFwdXp6bGVBc3NldElkX3N0cgAMZXRoUFBBc3NldElkCQDZBAEFEGV0aFBQQXNzZXRJZF9zdHIADHdhdmVzQXNzZXRJZAEAABNhbGxfYWNjZXB0ZWRfYXNzZXRzCQDMCAIFEXVzZHRQUEFzc2V0SWRfc3RyCQDMCAIFDmFydEFzc2V0SWRfc3RyCQDMCAIFEXVzZGNQUEFzc2V0SWRfc3RyCQDMCAIFD2Vhc3RBc3NldElkX3N0cgkAzAgCBRFwdXp6bGVBc3NldElkX3N0cgkAzAgCBRB3YXZlc0Fzc2V0SWRfc3RyCQDMCAIFEGV0aFBQQXNzZXRJZF9zdHIFA25pbAAFY2hyaXMJAQlnZXRTdHJCeUsBAgxjb25mX2FkbWluXzEADmNvbW1pc3Npb25fZmVlAAMADmRhcHBSdW5uaW5nS2V5AhRjb25mX2RhcHBfaXNfcnVubmluZwARbWFpbnRlbmFuY2VNU0dLZXkCFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ5kYXBwUnVubmluZ0tleQYADm1haW50ZW5hbmNlTVNHCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFEW1haW50ZW5hbmNlTVNHS2V5AgAACW51bVNhbGVzSwIJbnVtX3NhbGVzAQlnZXRJbnRCeUsBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAEKZ2V0U2FsZUtleQMGY2FsbGVyBW5mdElkBmlzc3VlcgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDXNhbGUybmRfaW5mb18FBmNhbGxlcgIBXwUFbmZ0SWQCAV8FBmlzc3VlcgEJZ2V0QmlkS2V5BApvZmZlck93bmVyBW5mdElkCXNhbGVPd25lcgdvZmZlcklkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCW9mZmVyMm5kXwUKb2ZmZXJPd25lcgIBXwUFbmZ0SWQCAV8FCXNhbGVPd25lcgIBXwUHb2ZmZXJJZAETZ2V0SW50QnlLRnJvbU9yYWNsZQEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUJb3JhY2xlRmVlBQNrZXkCH0ludGVnZXIgdW5kZWZpbmUgb3IgMCBpbiBvcmFjbGUBDGlkQ2FsbGVyRGF0ZQEBaQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwkAlQoDCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwgFCWxhc3RCbG9jawl0aW1lc3RhbXABCWlzUGF5bWVudAEBaQMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhNObyBwYXltZW50IGF0dGFjaGVkBAdwYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEBmFtb3VudAkBBXZhbHVlAQgFB3BheW1lbnQGYW1vdW50CQCUCgIFB3BheW1lbnQFBmFtb3VudAEKTkZUSXNWYWxpZAEMYXNzZXREZXRhaWxzAwMJAAACCAUMYXNzZXREZXRhaWxzCHF1YW50aXR5AAEJAAACCAUMYXNzZXREZXRhaWxzCGRlY2ltYWxzAAAHCQAAAggFDGFzc2V0RGV0YWlscwpyZWlzc3VhYmxlBwcBEGFjY2VwdGVkQXNzZXRJZHMBB2Fzc2V0SWQDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCBRNhbGxfYWNjZXB0ZWRfYXNzZXRzBQdhc3NldElkCQACAQJAT25seSAkQVJULCBVU0RULVBQLCBVU0RDLVBQLCBFQVNULCBQVVpaTEUsIEVUSCBvciBXQVZFUyBhY2NlcHRlZAYBDWdldEJpZEFzc2V0SWQBB2Fzc2V0SWQDCQAAAgUHYXNzZXRJZAIFV0FWRVMFBHVuaXQJANkEAQUHYXNzZXRJZAEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQVuZnRpZAQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRpZAMJAAACCQCxAgEFCXNhbGVPd25lcgAACQACAQINTkZUIG5vdCBmb3VuZAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUJc2FsZU93bmVyAgFfBQVuZnRpZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAhBORlQgbm90IGZvciBzYWxlBQlzYWxlT3duZXIBCmdldEJpZERhdGEBA2tleQQHYmlkRGF0YQkBCWdldFN0ckJ5SwEJAKwCAgUDa2V5AgVfT1BFTgMJAAACBQdiaWREYXRhAgAJAAIBAg9PZmZlciBub3QgZm91bmQECmJpZERhdGFBcnIJALUJAgUHYmlkRGF0YQIBXwQHYXNzZXRJZAkBDWdldEJpZEFzc2V0SWQBCQCRAwIFCmJpZERhdGFBcnIAAgkAlQoDBQpiaWREYXRhQXJyBQdhc3NldElkBQdiaWREYXRhAQpnZXRCYWxhbmNlAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJAPAHAgUEdGhpcwUBYggJAO8HAQUEdGhpcwlhdmFpbGFibGUBDHNldFRyYW5zZmVycwUGYW1vdW50B2Fzc2V0SWQFbmZ0aWQJc2FsZU93bmVyBmNhbGxlcgQNYW1vdW50Rm9yU2lnbgkAawMFBmFtb3VudAUOY29tbWlzc2lvbl9mZWUAZAQOYW1vdW50Rm9yT3duZXIJAGUCBQZhbW91bnQFDWFtb3VudEZvclNpZ24EImFtb3VudF9jb21taXNzaW9uX2Zvcl9zaWduX3RvX3N3YXAFDWFtb3VudEZvclNpZ24EEWFtb3VudF9hcnRfYmVmb3JlCQEKZ2V0QmFsYW5jZQEFCmFydEFzc2V0SWQDCQAAAgURYW1vdW50X2FydF9iZWZvcmUFEWFtb3VudF9hcnRfYmVmb3JlBA9zd2FwX2ZlZV90b19hcnQDCQECIT0CBQdhc3NldElkBQphcnRBc3NldElkCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQ9wdXp6bGVfYXJ0X3Bvb2wCBHN3YXAJAMwIAgUOYXJ0QXNzZXRJZF9zdHIJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB2Fzc2V0SWQFImFtb3VudF9jb21taXNzaW9uX2Zvcl9zaWduX3RvX3N3YXAFA25pbAUEdW5pdAMJAAACBQ9zd2FwX2ZlZV90b19hcnQFD3N3YXBfZmVlX3RvX2FydAQQYW1vdW50X2FydF9hZnRlcgkBCmdldEJhbGFuY2UBBQphcnRBc3NldElkAwkAAAIFEGFtb3VudF9hcnRfYWZ0ZXIFEGFtb3VudF9hcnRfYWZ0ZXIEC2NvbW1pc3Npb25zCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQULZmVlUmVjZWl2ZXIDCQAAAgUHYXNzZXRJZAUKYXJ0QXNzZXRJZAUNYW1vdW50Rm9yU2lnbgkAZQIFEGFtb3VudF9hcnRfYWZ0ZXIFEWFtb3VudF9hcnRfYmVmb3JlBQphcnRBc3NldElkBAhvd25lckZlZQkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFCXNhbGVPd25lcgUOYW1vdW50Rm9yT3duZXIFB2Fzc2V0SWQEDGNvbGxlY3Rvck5GVAkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCQDZBAEFBW5mdGlkCQCVCgMFC2NvbW1pc3Npb25zBQhvd25lckZlZQUMY29sbGVjdG9yTkZUCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ92YWxpZGF0ZU1pblNlbGwBBXByaWNlAwkAZwIAAAUFcHJpY2UJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UGAQ9wcm92aWRlQmFzZURhdGECAWkFbmZ0SWQECyR0MDUxOTY1MjM2CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQskdDA1MTk2NTIzNgJfMQQGY2FsbGVyCAULJHQwNTE5NjUyMzYCXzIEBGRhdGUIBQskdDA1MTk2NTIzNgJfMwQMYXNzZXREZXRhaWxzCQEFdmFsdWUBCQDsBwEJANkEAQUFbmZ0SWQECmlzVmFsaWRORlQJAQpORlRJc1ZhbGlkAQUMYXNzZXREZXRhaWxzCQCXCgUFAmlkBQZjYWxsZXIFBGRhdGUFCmlzVmFsaWRORlQIBQxhc3NldERldGFpbHMGaXNzdWVyAQ51cGRhdGVOdW1TYWxlcwAECG51bVNhbGVzCQEJZ2V0SW50QnlLAQUJbnVtU2FsZXNLCQEMSW50ZWdlckVudHJ5AgUJbnVtU2FsZXNLCQBkAgUIbnVtU2FsZXMAAQEHaGF2ZVNURAIGaXNzdWVyBm5kZnRJZAQEZGF0YQkBC3ZhbHVlT3JFbHNlAgkAnQgCCQEHQWRkcmVzcwEJANkEAQUGaXNzdWVyCQCsAgIJAKwCAgIIc3RkX25mdF8FBm5kZnRJZAIJX21ldGFkYXRhAgAJAQIhPQIFBGRhdGECAAkGaW52b2tlAQdzZXRDb25mAgNrZXkDdmFsBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwkBCGNvbnRhaW5zAgUDa2V5AgVjb25mXwkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkFA3ZhbAUDbmlsCQACAQIgRW50cmllcyBzdGFydGluZyB3aXRoIGNvbmZfIG9ubHkJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEKYXBwUnVubmluZwIGaXNMaXZlB21lc3NhZ2UEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgQCaWQJANgEAQgFBmludm9rZQ10cmFuc2FjdGlvbklkAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUOZGFwcFJ1bm5pbmdLZXkFBmlzTGl2ZQkAzAgCCQELU3RyaW5nRW50cnkCBRFtYWludGVuYW5jZU1TR0tleQUHbWVzc2FnZQUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwFpAQdzZWxsTkZUAgVwcmljZQVhc3NldAQLJHQwNjU3MTY2MDcJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAULJHQwNjU3MTY2MDcCXzEEBmFtb3VudAgFCyR0MDY1NzE2NjA3Al8yAwkBAiE9AgUGYW1vdW50AAEJAAIBAg9ObyBORlQgYXR0YWNoZWQEBW5mdElkAwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAkAAgECE1dhdmVzIGlzIG5vdCBhIE5GVC4ECyR0MDY3OTM2ODYzCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAULJHQwNjc5MzY4NjMCXzEEBmNhbGxlcggFCyR0MDY3OTM2ODYzAl8yBARkYXRlCAULJHQwNjc5MzY4NjMCXzMECmlzVmFsaWRORlQIBQskdDA2NzkzNjg2MwJfNAQGaXNzdWVyCAULJHQwNjc5MzY4NjMCXzUDCQEBIQEFCmlzVmFsaWRORlQJAAIBAg9Ob3QgYSB2YWxpZCBuZnQDCQAAAgUGaXNzdWVyBRNzaWduQXJ0QXJ0d29ya3NEYXBwCQACAQI3VGhpcyBkQXBwIGlzIG9ubHkgZm9yIE5GVCBpc3N1ZWQgb3V0c2lkZSBTSUdOIEFydCBkQXBwLgMJAQEhAQkBB2hhdmVTVEQCCQClCAEFBmlzc3VlcgUFbmZ0SWQJAAIBAidObyBuZnQgc3RhbmRhcmQgZm91bmQgb24gaXNzdWVyIGFjY291bnQDCQEBIQEJARBhY2NlcHRlZEFzc2V0SWRzAQUFYXNzZXQJAAIBAkBPbmx5ICRBUlQsIFVTRFQtUFAsIFVTREMtUFAsIEVBU1QsIFBVWlpMRSwgRVRIIG9yIFdBVkVTIGFjY2VwdGVkAwkBASEBCQEPdmFsaWRhdGVNaW5TZWxsAQUFcHJpY2UJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQEKZ2V0U2FsZUtleQMFBmNhbGxlcgUFbmZ0SWQJAKUIAQUGaXNzdWVyAgVfT1BFTgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCkAwEFBGRhdGUCAV8JAKQDAQUFcHJpY2UCAV8FBWFzc2V0AgFfBQVuZnRJZAIBXwkApQgBBQZpc3N1ZXICAV8FAmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAIET1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkBQZjYWxsZXIFA25pbAFpAQ91cGRhdGVTYWxlUHJpY2UDBW5mdElkBXByaWNlBWFzc2V0BAskdDA3NzcyNzg0MgkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFCyR0MDc3NzI3ODQyAl8xBAZjYWxsZXIIBQskdDA3NzcyNzg0MgJfMgQEZGF0ZQgFCyR0MDc3NzI3ODQyAl8zBAppc1ZhbGlkTkZUCAULJHQwNzc3Mjc4NDICXzQEBmlzc3VlcggFCyR0MDc3NzI3ODQyAl81AwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0BAlzYWxlT3duZXIJAQlnZXRTdHJCeUsBCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkAwkBAiE9AgUJc2FsZU93bmVyBQZjYWxsZXIJAAIBAhZZb3UgZG9uJ3Qgb3duIHRoaXMgTkZUBApzYWxlU3RhdHVzCQEJZ2V0U3RyQnlLAQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQZjYWxsZXICAV8FBW5mdElkAwkBAiE9AgUKc2FsZVN0YXR1cwIET1BFTgkAAgECD1NhbGUgbm90IGFjdGl2ZQMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQVhc3NldAkAAgECQE9ubHkgJEFSVCwgVVNEVC1QUCwgVVNEQy1QUCwgRUFTVCwgUFVaWkxFLCBFVEggb3IgV0FWRVMgYWNjZXB0ZWQDCQEBIQEJAQ92YWxpZGF0ZU1pblNlbGwBBQVwcmljZQkAAgECGFdyb25nIG1pbmltdW0gc2VsbCBwcmljZQQHc2FsZUtleQkBCmdldFNhbGVLZXkDBQZjYWxsZXIFBW5mdElkCQClCAEFBmlzc3VlcgQIc2FsZUluZm8JALUJAgkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4CAV8JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQdzYWxlS2V5AgVfT1BFTgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCRAwIFCHNhbGVJbmZvAAACAV8JAKQDAQUFcHJpY2UCAV8FBWFzc2V0AgFfCQCRAwIFCHNhbGVJbmZvAAMCAV8JAJEDAgUIc2FsZUluZm8ABAIBXwkAkQMCBQhzYWxlSW5mbwAFBQNuaWwBaQEKY2FuY2VsU2FsZQEFbmZ0SWQECyR0MDg4OTQ5MTEyCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAULJHQwODg5NDkxMTICXzEEBmNhbGxlcggFCyR0MDg4OTQ5MTEyAl8yBARkYXRlCAULJHQwODg5NDkxMTICXzMECmlzVmFsaWRORlQIBQskdDA4ODk0OTExMgJfNAQGaXNzdWVyCAULJHQwODg5NDkxMTICXzUECXNhbGVPd25lcgkBCWdldFN0ckJ5SwEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQDCQECIT0CBQlzYWxlT3duZXIFBmNhbGxlcgkAAgECFllvdSBkb24ndCBvd24gdGhpcyBORlQECnNhbGVTdGF0dXMJAQlnZXRTdHJCeUsBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FBmNhbGxlcgIBXwUFbmZ0SWQDCQECIT0CBQpzYWxlU3RhdHVzAgRPUEVOCQACAQIPU2FsZSBub3QgYWN0aXZlBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQMFBmNhbGxlcgUFbmZ0SWQJAKUIAQUGaXNzdWVyBAhzYWxlSW5mbwkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQdzYWxlS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FBmNhbGxlcgIBXwUFbmZ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQdzYWxlS2V5AgFfBQJpZAIKX0NBTkNFTExFRAkArAICCQCsAgIJAKwCAgkArAICBQhzYWxlSW5mbwILX0NBTkNFTExFRF8JAKQDAQUEZGF0ZQIBXwUCaWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCQDZBAEFBW5mdElkBQNuaWwBaQEGYnV5TkZUAQVuZnRJZAQMJHQwOTk0MzEwMDEzCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUMJHQwOTk0MzEwMDEzAl8xBAZjYWxsZXIIBQwkdDA5OTQzMTAwMTMCXzIEBGRhdGUIBQwkdDA5OTQzMTAwMTMCXzMECmlzVmFsaWRORlQIBQwkdDA5OTQzMTAwMTMCXzQEBmlzc3VlcggFDCR0MDk5NDMxMDAxMwJfNQMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAQJc2FsZU93bmVyCQEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQUFbmZ0SWQEB3NhbGVLZXkJAQpnZXRTYWxlS2V5AwUJc2FsZU93bmVyBQVuZnRJZAkApQgBBQZpc3N1ZXIECHNhbGVJbmZvCQEJZ2V0U3RyQnlLAQkArAICBQdzYWxlS2V5AgVfT1BFTgMJAAACCQCxAgEFCHNhbGVJbmZvAAAJAAIBAg9TYWxlIE5vdCBmb3VuZCEEDXNhbGVJbmZvQXJyYXkJALUJAgUIc2FsZUluZm8CAV8DCQAAAgkAtgkBCQCRAwIFDXNhbGVJbmZvQXJyYXkAAQAACQACAQIKT2ZmZXIgb25seQQNJHQwMTA0MTIxMDQ0OAkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQ0kdDAxMDQxMjEwNDQ4Al8xBAZhbW91bnQIBQ0kdDAxMDQxMjEwNDQ4Al8yBA9wYXltZW50QXNzZXRTdHIDCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkAgADAwkBAiE9AgkAkQMCBQ1zYWxlSW5mb0FycmF5AAEJAKQDAQUGYW1vdW50BgkBAiE9AgkAkQMCBQ1zYWxlSW5mb0FycmF5AAIFD3BheW1lbnRBc3NldFN0cgkAAgECGlBheW1lbnQgaW5mb3MgZG9uJ3QgbWF0Y2guBA0kdDAxMDk2MjExMDY5CQEMc2V0VHJhbnNmZXJzBQUGYW1vdW50CAUHcGF5bWVudAdhc3NldElkBQVuZnRJZAUJc2FsZU93bmVyBQZjYWxsZXIEC2NvbW1pc3Npb25zCAUNJHQwMTA5NjIxMTA2OQJfMQQIb3duZXJGZWUIBQ0kdDAxMDk2MjExMDY5Al8yBAxjb2xsZWN0b3JORlQIBQ0kdDAxMDk2MjExMDY5Al8zCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQlzYWxlT3duZXICAV8FBW5mdElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHc2FsZUtleQIBXwUCaWQCB19DTE9TRUQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAIBXwUGY2FsbGVyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUIb3duZXJGZWUJAMwIAgUMY29sbGVjdG9yTkZUCQDMCAIFC2NvbW1pc3Npb25zBQNuaWwBaQEIc2V0T2ZmZXIBBW5mdElkBA0kdDAxMTQ2ODExNTQyCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTE0NjgxMTU0MgJfMQQKb2ZmZXJPd25lcggFDSR0MDExNDY4MTE1NDICXzIEBGRhdGUIBQ0kdDAxMTQ2ODExNTQyAl8zBAppc1ZhbGlkTkZUCAUNJHQwMTE0NjgxMTU0MgJfNAQGaXNzdWVyCAUNJHQwMTE0NjgxMTU0MgJfNQMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAQNJHQwMTE2MDMxMTYzOQkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQ0kdDAxMTYwMzExNjM5Al8xBAZhbW91bnQIBQ0kdDAxMTYwMzExNjM5Al8yBAdhc3NldElkAwkBASEBCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAIFV0FWRVMJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQdhc3NldElkCQACAQISYXNzZXQgbm90IGFjY2VwdGVkAwkAAAIFBmFtb3VudAAACQACAQIWT2ZmZXIgb2YgMCBub3QgYWxsb3dlZAMJAQEhAQkBD3ZhbGlkYXRlTWluU2VsbAEFBmFtb3VudAkAAgECGFdyb25nIG1pbmltdW0gc2VsbCBwcmljZQQJc2FsZU93bmVyCQEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQEJZ2V0QmlkS2V5BAUKb2ZmZXJPd25lcgUFbmZ0SWQFCXNhbGVPd25lcgUCaWQCBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCkAwEFBGRhdGUCAV8JAKQDAQUGYW1vdW50AgFfBQdhc3NldElkAgFfBQVuZnRJZAIBXwkApQgBBQZpc3N1ZXICAV8FCm9mZmVyT3duZXICAV8FAmlkBQNuaWwBaQELYWNjZXB0T2ZmZXIDBW5mdElkB29mZmVySWQKb2ZmZXJPd25lcgQNJHQwMTI0MjgxMjQ5OAkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFDSR0MDEyNDI4MTI0OTgCXzEEBmNhbGxlcggFDSR0MDEyNDI4MTI0OTgCXzIEBGRhdGUIBQ0kdDAxMjQyODEyNDk4Al8zBAppc1ZhbGlkTkZUCAUNJHQwMTI0MjgxMjQ5OAJfNAQGaXNzdWVyCAUNJHQwMTI0MjgxMjQ5OAJfNQMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAQJc2FsZU93bmVyCQEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQUFbmZ0SWQDCQECIT0CBQZjYWxsZXIFCXNhbGVPd25lcgkAAgECIE9ubHkgc2FsZSBvd25lciBjYW4gYWNjZXB0IG9mZmVyBAZiaWRLZXkJAQlnZXRCaWRLZXkEBQpvZmZlck93bmVyBQVuZnRJZAUJc2FsZU93bmVyBQdvZmZlcklkBA0kdDAxMjc1MjEyODA3CQEKZ2V0QmlkRGF0YQEFBmJpZEtleQQKYmlkRGF0YUFycggFDSR0MDEyNzUyMTI4MDcCXzEEB2Fzc2V0SWQIBQ0kdDAxMjc1MjEyODA3Al8yBAdiaWREYXRhCAUNJHQwMTI3NTIxMjgwNwJfMwQHc2FsZUtleQkBCmdldFNhbGVLZXkDBQlzYWxlT3duZXIFBW5mdElkCQClCAEFBmlzc3VlcgQIc2FsZUluZm8JAQlnZXRTdHJCeUsBCQCsAgIFB3NhbGVLZXkCBV9PUEVOAwkAAAIJALECAQUIc2FsZUluZm8AAAkAAgECD1NhbGUgTm90IGZvdW5kIQQGYW1vdW50CQEFdmFsdWUBCQC2CQEJAJEDAgUKYmlkRGF0YUFycgABBA0kdDAxMzA0MzEzMTQ5CQEMc2V0VHJhbnNmZXJzBQUGYW1vdW50BQdhc3NldElkBQVuZnRJZAUJc2FsZU93bmVyCQCRAwIFCmJpZERhdGFBcnIABgQLY29tbWlzc2lvbnMIBQ0kdDAxMzA0MzEzMTQ5Al8xBAhvd25lckZlZQgFDSR0MDEzMDQzMTMxNDkCXzIEDGNvbGxlY3Rvck5GVAgFDSR0MDEzMDQzMTMxNDkCXzMECmFzc2V0SWRTdHIDCQEJaXNEZWZpbmVkAQUHYXNzZXRJZAkA2AQBCQEFdmFsdWUBBQdhc3NldElkAgVXQVZFUwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUGYmlkS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FCXNhbGVPd25lcgIBXwUFbmZ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBmJpZEtleQIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICBQdiaWREYXRhAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQdzYWxlS2V5AgFfBQJpZAIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQhzYWxlSW5mbwIOX0NMT1NFRC1PRkZFUl8JAKQDAQUEZGF0ZQIBXwUCaWQCAV8FCm9mZmVyT3duZXICAV8JAKQDAQUGYW1vdW50AgFfBQphc3NldElkU3RyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUIb3duZXJGZWUJAMwIAgUMY29sbGVjdG9yTkZUCQDMCAIFC2NvbW1pc3Npb25zBQNuaWwBaQELY2FuY2VsT2ZmZXIEBW5mdElkB29mZmVySWQKb2ZmZXJPd25lcglzYWxlT3duZXIEDSR0MDEzOTM3MTQwMTEJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDEzOTM3MTQwMTECXzEEBmNhbGxlcggFDSR0MDEzOTM3MTQwMTECXzIEBGRhdGUIBQ0kdDAxMzkzNzE0MDExAl8zAwMJAQIhPQIFBmNhbGxlcgUKb2ZmZXJPd25lcgkBAiE9AgUGY2FsbGVyBQlzYWxlT3duZXIHCQACAQIdWW91IGNhbm5vdCBjYW5jZWwgdGhpcyBvZmZlci4EBmJpZEtleQkBCWdldEJpZEtleQQFCm9mZmVyT3duZXIFBW5mdElkBQlzYWxlT3duZXIFB29mZmVySWQEDSR0MDE0MTgzMTQyMzgJAQpnZXRCaWREYXRhAQUGYmlkS2V5BApiaWREYXRhQXJyCAUNJHQwMTQxODMxNDIzOAJfMQQHYXNzZXRJZAgFDSR0MDE0MTgzMTQyMzgCXzIEB2JpZERhdGEIBQ0kdDAxNDE4MzE0MjM4Al8zCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUGYmlkS2V5AgVfT1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBmJpZEtleQIKX0NBTkNFTExFRAkArAICCQCsAgIJAKwCAgkArAICBQdiaWREYXRhAgtfQ0FOQ0VMTEVEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKYmlkRGF0YUFycgABBQdhc3NldElkBQNuaWwApO7Z7Q==", "height": 2842748, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Fz1ZzMJugmfDpuHVH4HrT4u3xNTCAEYsGafV9CcHhFeH Next: 5p8LUKmcLET4n6q1Ck9r3YqQDJGHqL6dv4qdkPFWDpqp Diff:
OldNewDifferences
1111 let feeReceiver = getStrByK("conf_fee_receiver")
1212
1313 let puzzle_art_pool = getStrByK("conf_puzzle_art_pool")
14+
15+let signArtArtworksDapp = value(addressFromString(getStrByK("conf_artworks_dapp")))
1416
1517 let usdtPPAssetId_str = getStrByK("conf_accepted_asset_USDT_PP")
1618
168170
169171
170172 func provideBaseData (i,nftId) = {
171- let $t050795119 = idCallerDate(i)
172- let id = $t050795119._1
173- let caller = $t050795119._2
174- let date = $t050795119._3
173+ let $t051965236 = idCallerDate(i)
174+ let id = $t051965236._1
175+ let caller = $t051965236._2
176+ let date = $t051965236._3
175177 let assetDetails = value(assetInfo(fromBase58String(nftId)))
176178 let isValidNFT = NFTIsValid(assetDetails)
177179 $Tuple5(id, caller, date, isValidNFT, assetDetails.issuer)
215217
216218 @Callable(i)
217219 func sellNFT (price,asset) = {
218- let $t064546490 = isPayment(i)
219- let payment = $t064546490._1
220- let amount = $t064546490._2
220+ let $t065716607 = isPayment(i)
221+ let payment = $t065716607._1
222+ let amount = $t065716607._2
221223 if ((amount != 1))
222224 then throw("No NFT attached")
223225 else {
224226 let nftId = if (isDefined(payment.assetId))
225227 then toBase58String(value(payment.assetId))
226228 else throw("Waves is not a NFT.")
227- let $t066766746 = provideBaseData(i, nftId)
228- let id = $t066766746._1
229- let caller = $t066766746._2
230- let date = $t066766746._3
231- let isValidNFT = $t066766746._4
232- let issuer = $t066766746._5
229+ let $t067936863 = provideBaseData(i, nftId)
230+ let id = $t067936863._1
231+ let caller = $t067936863._2
232+ let date = $t067936863._3
233+ let isValidNFT = $t067936863._4
234+ let issuer = $t067936863._5
233235 if (!(isValidNFT))
234236 then throw("Not a valid nft")
235- else if (!(haveSTD(toString(issuer), nftId)))
236- then throw("No nft standard found on issuer account")
237- else if (!(acceptedAssetIds(asset)))
238- then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
239- else if (!(validateMinSell(price)))
240- then throw("Wrong minimum sell price")
241- else [StringEntry((getSaleKey(caller, nftId, toString(issuer)) + "_OPEN"), ((((((((((toString(date) + "_") + toString(price)) + "_") + asset) + "_") + nftId) + "_") + toString(issuer)) + "_") + id)), StringEntry(((("sale2nd_status_" + caller) + "_") + nftId), "OPEN"), StringEntry(("current_owner_on_dapp_" + nftId), caller)]
237+ else if ((issuer == signArtArtworksDapp))
238+ then throw("This dApp is only for NFT issued outside SIGN Art dApp.")
239+ else if (!(haveSTD(toString(issuer), nftId)))
240+ then throw("No nft standard found on issuer account")
241+ else if (!(acceptedAssetIds(asset)))
242+ then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
243+ else if (!(validateMinSell(price)))
244+ then throw("Wrong minimum sell price")
245+ else [StringEntry((getSaleKey(caller, nftId, toString(issuer)) + "_OPEN"), ((((((((((toString(date) + "_") + toString(price)) + "_") + asset) + "_") + nftId) + "_") + toString(issuer)) + "_") + id)), StringEntry(((("sale2nd_status_" + caller) + "_") + nftId), "OPEN"), StringEntry(("current_owner_on_dapp_" + nftId), caller)]
242246 }
243247 }
244248
246250
247251 @Callable(i)
248252 func updateSalePrice (nftId,price,asset) = {
249- let $t075417611 = provideBaseData(i, nftId)
250- let id = $t075417611._1
251- let caller = $t075417611._2
252- let date = $t075417611._3
253- let isValidNFT = $t075417611._4
254- let issuer = $t075417611._5
253+ let $t077727842 = provideBaseData(i, nftId)
254+ let id = $t077727842._1
255+ let caller = $t077727842._2
256+ let date = $t077727842._3
257+ let isValidNFT = $t077727842._4
258+ let issuer = $t077727842._5
255259 if (!(isValidNFT))
256260 then throw("Not a valid nft")
257261 else {
279283
280284 @Callable(i)
281285 func cancelSale (nftId) = {
282- let $t086638881 = provideBaseData(i, nftId)
283- let id = $t086638881._1
284- let caller = $t086638881._2
285- let date = $t086638881._3
286- let isValidNFT = $t086638881._4
287- let issuer = $t086638881._5
286+ let $t088949112 = provideBaseData(i, nftId)
287+ let id = $t088949112._1
288+ let caller = $t088949112._2
289+ let date = $t088949112._3
290+ let isValidNFT = $t088949112._4
291+ let issuer = $t088949112._5
288292 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
289293 if ((saleOwner != caller))
290294 then throw("You don't own this NFT")
304308
305309 @Callable(i)
306310 func buyNFT (nftId) = {
307- let $t097129782 = provideBaseData(i, nftId)
308- let id = $t097129782._1
309- let caller = $t097129782._2
310- let date = $t097129782._3
311- let isValidNFT = $t097129782._4
312- let issuer = $t097129782._5
311+ let $t0994310013 = provideBaseData(i, nftId)
312+ let id = $t0994310013._1
313+ let caller = $t0994310013._2
314+ let date = $t0994310013._3
315+ let isValidNFT = $t0994310013._4
316+ let issuer = $t0994310013._5
313317 if (!(isValidNFT))
314318 then throw("Not a valid nft")
315319 else {
323327 if ((parseInt(saleInfoArray[1]) == 0))
324328 then throw("Offer only")
325329 else {
326- let $t01018110217 = isPayment(i)
327- let payment = $t01018110217._1
328- let amount = $t01018110217._2
330+ let $t01041210448 = isPayment(i)
331+ let payment = $t01041210448._1
332+ let amount = $t01041210448._2
329333 let paymentAssetStr = if (isDefined(payment.assetId))
330334 then toBase58String(value(payment.assetId))
331335 else ""
334338 else (saleInfoArray[2] != paymentAssetStr))
335339 then throw("Payment infos don't match.")
336340 else {
337- let $t01073110838 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
338- let commissions = $t01073110838._1
339- let ownerFee = $t01073110838._2
340- let collectorNFT = $t01073110838._3
341+ let $t01096211069 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
342+ let commissions = $t01096211069._1
343+ let ownerFee = $t01096211069._2
344+ let collectorNFT = $t01096211069._3
341345 [DeleteEntry((saleKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((saleInfo + "_CLOSED_") + toString(date)) + "_") + id) + "_") + caller)), updateNumSales(), ownerFee, collectorNFT, commissions]
342346 }
343347 }
349353
350354 @Callable(i)
351355 func setOffer (nftId) = {
352- let $t01123711311 = provideBaseData(i, nftId)
353- let id = $t01123711311._1
354- let offerOwner = $t01123711311._2
355- let date = $t01123711311._3
356- let isValidNFT = $t01123711311._4
357- let issuer = $t01123711311._5
356+ let $t01146811542 = provideBaseData(i, nftId)
357+ let id = $t01146811542._1
358+ let offerOwner = $t01146811542._2
359+ let date = $t01146811542._3
360+ let isValidNFT = $t01146811542._4
361+ let issuer = $t01146811542._5
358362 if (!(isValidNFT))
359363 then throw("Not a valid nft")
360364 else {
361- let $t01137211408 = isPayment(i)
362- let payment = $t01137211408._1
363- let amount = $t01137211408._2
365+ let $t01160311639 = isPayment(i)
366+ let payment = $t01160311639._1
367+ let amount = $t01160311639._2
364368 let assetId = if (!(isDefined(payment.assetId)))
365369 then "WAVES"
366370 else toBase58String(value(payment.assetId))
381385
382386 @Callable(i)
383387 func acceptOffer (nftId,offerId,offerOwner) = {
384- let $t01219712267 = provideBaseData(i, nftId)
385- let id = $t01219712267._1
386- let caller = $t01219712267._2
387- let date = $t01219712267._3
388- let isValidNFT = $t01219712267._4
389- let issuer = $t01219712267._5
388+ let $t01242812498 = provideBaseData(i, nftId)
389+ let id = $t01242812498._1
390+ let caller = $t01242812498._2
391+ let date = $t01242812498._3
392+ let isValidNFT = $t01242812498._4
393+ let issuer = $t01242812498._5
390394 if (!(isValidNFT))
391395 then throw("Not a valid nft")
392396 else {
395399 then throw("Only sale owner can accept offer")
396400 else {
397401 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
398- let $t01252112576 = getBidData(bidKey)
399- let bidDataArr = $t01252112576._1
400- let assetId = $t01252112576._2
401- let bidData = $t01252112576._3
402+ let $t01275212807 = getBidData(bidKey)
403+ let bidDataArr = $t01275212807._1
404+ let assetId = $t01275212807._2
405+ let bidData = $t01275212807._3
402406 let saleKey = getSaleKey(saleOwner, nftId, toString(issuer))
403407 let saleInfo = getStrByK((saleKey + "_OPEN"))
404408 if ((size(saleInfo) == 0))
405409 then throw("Sale Not found!")
406410 else {
407411 let amount = value(parseInt(bidDataArr[1]))
408- let $t01281212918 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
409- let commissions = $t01281212918._1
410- let ownerFee = $t01281212918._2
411- let collectorNFT = $t01281212918._3
412+ let $t01304313149 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
413+ let commissions = $t01304313149._1
414+ let ownerFee = $t01304313149._2
415+ let collectorNFT = $t01304313149._3
412416 let assetIdStr = if (isDefined(assetId))
413417 then toBase58String(value(assetId))
414418 else "WAVES"
422426
423427 @Callable(i)
424428 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
425- let $t01370613780 = idCallerDate(i)
426- let id = $t01370613780._1
427- let caller = $t01370613780._2
428- let date = $t01370613780._3
429+ let $t01393714011 = idCallerDate(i)
430+ let id = $t01393714011._1
431+ let caller = $t01393714011._2
432+ let date = $t01393714011._3
429433 if (if ((caller != offerOwner))
430434 then (caller != saleOwner)
431435 else false)
432436 then throw("You cannot cancel this offer.")
433437 else {
434438 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
435- let $t01395214007 = getBidData(bidKey)
436- let bidDataArr = $t01395214007._1
437- let assetId = $t01395214007._2
438- let bidData = $t01395214007._3
439+ let $t01418314238 = getBidData(bidKey)
440+ let bidDataArr = $t01418314238._1
441+ let assetId = $t01418314238._2
442+ let bidData = $t01418314238._3
439443 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
440444 }
441445 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let VERSION = "1.0.0"
55
66 func getStrByK (key) = valueOrElse(getString(this, key), "")
77
88
99 let oracleFee = value(addressFromString(getStrByK("conf_oracle_fee")))
1010
1111 let feeReceiver = getStrByK("conf_fee_receiver")
1212
1313 let puzzle_art_pool = getStrByK("conf_puzzle_art_pool")
14+
15+let signArtArtworksDapp = value(addressFromString(getStrByK("conf_artworks_dapp")))
1416
1517 let usdtPPAssetId_str = getStrByK("conf_accepted_asset_USDT_PP")
1618
1719 let artAssetId_str = getStrByK("conf_accepted_asset_ART")
1820
1921 let usdcPPAssetId_str = getStrByK("conf_accepted_asset_USDC_PP")
2022
2123 let eastAssetId_str = getStrByK("conf_accepted_asset_EAST")
2224
2325 let puzzleAssetId_str = getStrByK("conf_accepted_asset_PUZZLE")
2426
2527 let ethPPAssetId_str = getStrByK("conf_accepted_asset_ETH_PP")
2628
2729 let wavesAssetId_str = "WAVES"
2830
2931 let usdtPPAssetId = fromBase58String(usdtPPAssetId_str)
3032
3133 let artAssetId = fromBase58String(artAssetId_str)
3234
3335 let usdcPPAssetId = fromBase58String(usdcPPAssetId_str)
3436
3537 let eastAssetId = fromBase58String(eastAssetId_str)
3638
3739 let puzzleAssetId = fromBase58String(puzzleAssetId_str)
3840
3941 let ethPPAssetId = fromBase58String(ethPPAssetId_str)
4042
4143 let wavesAssetId = base58''
4244
4345 let all_accepted_assets = [usdtPPAssetId_str, artAssetId_str, usdcPPAssetId_str, eastAssetId_str, puzzleAssetId_str, wavesAssetId_str, ethPPAssetId_str]
4446
4547 let chris = getStrByK("conf_admin_1")
4648
4749 let commission_fee = 3
4850
4951 let dappRunningKey = "conf_dapp_is_running"
5052
5153 let maintenanceMSGKey = "conf_maintenance_msg"
5254
5355 let dappRunning = valueOrElse(getBoolean(this, dappRunningKey), true)
5456
5557 let maintenanceMSG = valueOrElse(getString(this, maintenanceMSGKey), "")
5658
5759 let numSalesK = "num_sales"
5860
5961 func getIntByK (key) = valueOrElse(getInteger(this, key), 0)
6062
6163
6264 func getSaleKey (caller,nftId,issuer) = ((((("sale2nd_info_" + caller) + "_") + nftId) + "_") + issuer)
6365
6466
6567 func getBidKey (offerOwner,nftId,saleOwner,offerId) = ((((((("offer2nd_" + offerOwner) + "_") + nftId) + "_") + saleOwner) + "_") + offerId)
6668
6769
6870 func getIntByKFromOracle (key) = valueOrErrorMessage(getInteger(oracleFee, key), "Integer undefine or 0 in oracle")
6971
7072
7173 func idCallerDate (i) = if (!(dappRunning))
7274 then throw(maintenanceMSG)
7375 else $Tuple3(toBase58String(i.transactionId), toBase58String(i.caller.bytes), lastBlock.timestamp)
7476
7577
7678 func isPayment (i) = if ((size(i.payments) == 0))
7779 then throw("No payment attached")
7880 else {
7981 let payment = value(i.payments[0])
8082 let amount = value(payment.amount)
8183 $Tuple2(payment, amount)
8284 }
8385
8486
8587 func NFTIsValid (assetDetails) = if (if ((assetDetails.quantity == 1))
8688 then (assetDetails.decimals == 0)
8789 else false)
8890 then (assetDetails.reissuable == false)
8991 else false
9092
9193
9294 func acceptedAssetIds (assetId) = if (!(containsElement(all_accepted_assets, assetId)))
9395 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
9496 else true
9597
9698
9799 func getBidAssetId (assetId) = if ((assetId == "WAVES"))
98100 then unit
99101 else fromBase58String(assetId)
100102
101103
102104 func getSaleOwnerAndStatus (nftid) = {
103105 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
104106 if ((size(saleOwner) == 0))
105107 then throw("NFT not found")
106108 else {
107109 let saleStatus = getStrByK(((("sale2nd_status_" + saleOwner) + "_") + nftid))
108110 if ((saleStatus != "OPEN"))
109111 then throw("NFT not for sale")
110112 else saleOwner
111113 }
112114 }
113115
114116
115117 func getBidData (key) = {
116118 let bidData = getStrByK((key + "_OPEN"))
117119 if ((bidData == ""))
118120 then throw("Offer not found")
119121 else {
120122 let bidDataArr = split(bidData, "_")
121123 let assetId = getBidAssetId(bidDataArr[2])
122124 $Tuple3(bidDataArr, assetId, bidData)
123125 }
124126 }
125127
126128
127129 func getBalance (assetId) = match assetId {
128130 case b: ByteVector =>
129131 assetBalance(this, b)
130132 case _ =>
131133 wavesBalance(this).available
132134 }
133135
134136
135137 func setTransfers (amount,assetId,nftid,saleOwner,caller) = {
136138 let amountForSign = fraction(amount, commission_fee, 100)
137139 let amountForOwner = (amount - amountForSign)
138140 let amount_commission_for_sign_to_swap = amountForSign
139141 let amount_art_before = getBalance(artAssetId)
140142 if ((amount_art_before == amount_art_before))
141143 then {
142144 let swap_fee_to_art = if ((assetId != artAssetId))
143145 then invoke(Address(fromBase58String(puzzle_art_pool)), "swap", [artAssetId_str, 1], [AttachedPayment(assetId, amount_commission_for_sign_to_swap)])
144146 else unit
145147 if ((swap_fee_to_art == swap_fee_to_art))
146148 then {
147149 let amount_art_after = getBalance(artAssetId)
148150 if ((amount_art_after == amount_art_after))
149151 then {
150152 let commissions = ScriptTransfer(Address(fromBase58String(feeReceiver)), if ((assetId == artAssetId))
151153 then amountForSign
152154 else (amount_art_after - amount_art_before), artAssetId)
153155 let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
154156 let collectorNFT = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))
155157 $Tuple3(commissions, ownerFee, collectorNFT)
156158 }
157159 else throw("Strict value is not equal to itself.")
158160 }
159161 else throw("Strict value is not equal to itself.")
160162 }
161163 else throw("Strict value is not equal to itself.")
162164 }
163165
164166
165167 func validateMinSell (price) = if ((0 >= price))
166168 then throw("Wrong minimum sell price")
167169 else true
168170
169171
170172 func provideBaseData (i,nftId) = {
171- let $t050795119 = idCallerDate(i)
172- let id = $t050795119._1
173- let caller = $t050795119._2
174- let date = $t050795119._3
173+ let $t051965236 = idCallerDate(i)
174+ let id = $t051965236._1
175+ let caller = $t051965236._2
176+ let date = $t051965236._3
175177 let assetDetails = value(assetInfo(fromBase58String(nftId)))
176178 let isValidNFT = NFTIsValid(assetDetails)
177179 $Tuple5(id, caller, date, isValidNFT, assetDetails.issuer)
178180 }
179181
180182
181183 func updateNumSales () = {
182184 let numSales = getIntByK(numSalesK)
183185 IntegerEntry(numSalesK, (numSales + 1))
184186 }
185187
186188
187189 func haveSTD (issuer,ndftId) = {
188190 let data = valueOrElse(getString(Address(fromBase58String(issuer)), (("std_nft_" + ndftId) + "_metadata")), "")
189191 (data != "")
190192 }
191193
192194
193195 @Callable(invoke)
194196 func setConf (key,val) = {
195197 let caller = toString(invoke.caller)
196198 if (containsElement([chris, toString(this)], caller))
197199 then if (contains(key, "conf_"))
198200 then [StringEntry(key, val)]
199201 else throw("Entries starting with conf_ only")
200202 else throw("You are not allowed to change this")
201203 }
202204
203205
204206
205207 @Callable(invoke)
206208 func appRunning (isLive,message) = {
207209 let caller = toString(invoke.caller)
208210 let id = toBase58String(invoke.transactionId)
209211 if (containsElement([chris, toString(this)], caller))
210212 then [BooleanEntry(dappRunningKey, isLive), StringEntry(maintenanceMSGKey, message)]
211213 else throw("You are not allowed to change this")
212214 }
213215
214216
215217
216218 @Callable(i)
217219 func sellNFT (price,asset) = {
218- let $t064546490 = isPayment(i)
219- let payment = $t064546490._1
220- let amount = $t064546490._2
220+ let $t065716607 = isPayment(i)
221+ let payment = $t065716607._1
222+ let amount = $t065716607._2
221223 if ((amount != 1))
222224 then throw("No NFT attached")
223225 else {
224226 let nftId = if (isDefined(payment.assetId))
225227 then toBase58String(value(payment.assetId))
226228 else throw("Waves is not a NFT.")
227- let $t066766746 = provideBaseData(i, nftId)
228- let id = $t066766746._1
229- let caller = $t066766746._2
230- let date = $t066766746._3
231- let isValidNFT = $t066766746._4
232- let issuer = $t066766746._5
229+ let $t067936863 = provideBaseData(i, nftId)
230+ let id = $t067936863._1
231+ let caller = $t067936863._2
232+ let date = $t067936863._3
233+ let isValidNFT = $t067936863._4
234+ let issuer = $t067936863._5
233235 if (!(isValidNFT))
234236 then throw("Not a valid nft")
235- else if (!(haveSTD(toString(issuer), nftId)))
236- then throw("No nft standard found on issuer account")
237- else if (!(acceptedAssetIds(asset)))
238- then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
239- else if (!(validateMinSell(price)))
240- then throw("Wrong minimum sell price")
241- else [StringEntry((getSaleKey(caller, nftId, toString(issuer)) + "_OPEN"), ((((((((((toString(date) + "_") + toString(price)) + "_") + asset) + "_") + nftId) + "_") + toString(issuer)) + "_") + id)), StringEntry(((("sale2nd_status_" + caller) + "_") + nftId), "OPEN"), StringEntry(("current_owner_on_dapp_" + nftId), caller)]
237+ else if ((issuer == signArtArtworksDapp))
238+ then throw("This dApp is only for NFT issued outside SIGN Art dApp.")
239+ else if (!(haveSTD(toString(issuer), nftId)))
240+ then throw("No nft standard found on issuer account")
241+ else if (!(acceptedAssetIds(asset)))
242+ then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
243+ else if (!(validateMinSell(price)))
244+ then throw("Wrong minimum sell price")
245+ else [StringEntry((getSaleKey(caller, nftId, toString(issuer)) + "_OPEN"), ((((((((((toString(date) + "_") + toString(price)) + "_") + asset) + "_") + nftId) + "_") + toString(issuer)) + "_") + id)), StringEntry(((("sale2nd_status_" + caller) + "_") + nftId), "OPEN"), StringEntry(("current_owner_on_dapp_" + nftId), caller)]
242246 }
243247 }
244248
245249
246250
247251 @Callable(i)
248252 func updateSalePrice (nftId,price,asset) = {
249- let $t075417611 = provideBaseData(i, nftId)
250- let id = $t075417611._1
251- let caller = $t075417611._2
252- let date = $t075417611._3
253- let isValidNFT = $t075417611._4
254- let issuer = $t075417611._5
253+ let $t077727842 = provideBaseData(i, nftId)
254+ let id = $t077727842._1
255+ let caller = $t077727842._2
256+ let date = $t077727842._3
257+ let isValidNFT = $t077727842._4
258+ let issuer = $t077727842._5
255259 if (!(isValidNFT))
256260 then throw("Not a valid nft")
257261 else {
258262 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
259263 if ((saleOwner != caller))
260264 then throw("You don't own this NFT")
261265 else {
262266 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
263267 if ((saleStatus != "OPEN"))
264268 then throw("Sale not active")
265269 else if (!(acceptedAssetIds(asset)))
266270 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
267271 else if (!(validateMinSell(price)))
268272 then throw("Wrong minimum sell price")
269273 else {
270274 let saleKey = getSaleKey(caller, nftId, toString(issuer))
271275 let saleInfo = split(getStrByK((saleKey + "_OPEN")), "_")
272276 [StringEntry((saleKey + "_OPEN"), ((((((((((saleInfo[0] + "_") + toString(price)) + "_") + asset) + "_") + saleInfo[3]) + "_") + saleInfo[4]) + "_") + saleInfo[5]))]
273277 }
274278 }
275279 }
276280 }
277281
278282
279283
280284 @Callable(i)
281285 func cancelSale (nftId) = {
282- let $t086638881 = provideBaseData(i, nftId)
283- let id = $t086638881._1
284- let caller = $t086638881._2
285- let date = $t086638881._3
286- let isValidNFT = $t086638881._4
287- let issuer = $t086638881._5
286+ let $t088949112 = provideBaseData(i, nftId)
287+ let id = $t088949112._1
288+ let caller = $t088949112._2
289+ let date = $t088949112._3
290+ let isValidNFT = $t088949112._4
291+ let issuer = $t088949112._5
288292 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
289293 if ((saleOwner != caller))
290294 then throw("You don't own this NFT")
291295 else {
292296 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
293297 if ((saleStatus != "OPEN"))
294298 then throw("Sale not active")
295299 else {
296300 let saleKey = getSaleKey(caller, nftId, toString(issuer))
297301 let saleInfo = getStrByK((saleKey + "_OPEN"))
298302 [DeleteEntry((saleKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + caller) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((((saleKey + "_") + id) + "_CANCELLED"), ((((saleInfo + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftId))]
299303 }
300304 }
301305 }
302306
303307
304308
305309 @Callable(i)
306310 func buyNFT (nftId) = {
307- let $t097129782 = provideBaseData(i, nftId)
308- let id = $t097129782._1
309- let caller = $t097129782._2
310- let date = $t097129782._3
311- let isValidNFT = $t097129782._4
312- let issuer = $t097129782._5
311+ let $t0994310013 = provideBaseData(i, nftId)
312+ let id = $t0994310013._1
313+ let caller = $t0994310013._2
314+ let date = $t0994310013._3
315+ let isValidNFT = $t0994310013._4
316+ let issuer = $t0994310013._5
313317 if (!(isValidNFT))
314318 then throw("Not a valid nft")
315319 else {
316320 let saleOwner = getSaleOwnerAndStatus(nftId)
317321 let saleKey = getSaleKey(saleOwner, nftId, toString(issuer))
318322 let saleInfo = getStrByK((saleKey + "_OPEN"))
319323 if ((size(saleInfo) == 0))
320324 then throw("Sale Not found!")
321325 else {
322326 let saleInfoArray = split(saleInfo, "_")
323327 if ((parseInt(saleInfoArray[1]) == 0))
324328 then throw("Offer only")
325329 else {
326- let $t01018110217 = isPayment(i)
327- let payment = $t01018110217._1
328- let amount = $t01018110217._2
330+ let $t01041210448 = isPayment(i)
331+ let payment = $t01041210448._1
332+ let amount = $t01041210448._2
329333 let paymentAssetStr = if (isDefined(payment.assetId))
330334 then toBase58String(value(payment.assetId))
331335 else ""
332336 if (if ((saleInfoArray[1] != toString(amount)))
333337 then true
334338 else (saleInfoArray[2] != paymentAssetStr))
335339 then throw("Payment infos don't match.")
336340 else {
337- let $t01073110838 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
338- let commissions = $t01073110838._1
339- let ownerFee = $t01073110838._2
340- let collectorNFT = $t01073110838._3
341+ let $t01096211069 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
342+ let commissions = $t01096211069._1
343+ let ownerFee = $t01096211069._2
344+ let collectorNFT = $t01096211069._3
341345 [DeleteEntry((saleKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((saleInfo + "_CLOSED_") + toString(date)) + "_") + id) + "_") + caller)), updateNumSales(), ownerFee, collectorNFT, commissions]
342346 }
343347 }
344348 }
345349 }
346350 }
347351
348352
349353
350354 @Callable(i)
351355 func setOffer (nftId) = {
352- let $t01123711311 = provideBaseData(i, nftId)
353- let id = $t01123711311._1
354- let offerOwner = $t01123711311._2
355- let date = $t01123711311._3
356- let isValidNFT = $t01123711311._4
357- let issuer = $t01123711311._5
356+ let $t01146811542 = provideBaseData(i, nftId)
357+ let id = $t01146811542._1
358+ let offerOwner = $t01146811542._2
359+ let date = $t01146811542._3
360+ let isValidNFT = $t01146811542._4
361+ let issuer = $t01146811542._5
358362 if (!(isValidNFT))
359363 then throw("Not a valid nft")
360364 else {
361- let $t01137211408 = isPayment(i)
362- let payment = $t01137211408._1
363- let amount = $t01137211408._2
365+ let $t01160311639 = isPayment(i)
366+ let payment = $t01160311639._1
367+ let amount = $t01160311639._2
364368 let assetId = if (!(isDefined(payment.assetId)))
365369 then "WAVES"
366370 else toBase58String(value(payment.assetId))
367371 if (!(acceptedAssetIds(assetId)))
368372 then throw("asset not accepted")
369373 else if ((amount == 0))
370374 then throw("Offer of 0 not allowed")
371375 else if (!(validateMinSell(amount)))
372376 then throw("Wrong minimum sell price")
373377 else {
374378 let saleOwner = getSaleOwnerAndStatus(nftId)
375379 [StringEntry((getBidKey(offerOwner, nftId, saleOwner, id) + "_OPEN"), ((((((((((((toString(date) + "_") + toString(amount)) + "_") + assetId) + "_") + nftId) + "_") + toString(issuer)) + "_") + offerOwner) + "_") + id))]
376380 }
377381 }
378382 }
379383
380384
381385
382386 @Callable(i)
383387 func acceptOffer (nftId,offerId,offerOwner) = {
384- let $t01219712267 = provideBaseData(i, nftId)
385- let id = $t01219712267._1
386- let caller = $t01219712267._2
387- let date = $t01219712267._3
388- let isValidNFT = $t01219712267._4
389- let issuer = $t01219712267._5
388+ let $t01242812498 = provideBaseData(i, nftId)
389+ let id = $t01242812498._1
390+ let caller = $t01242812498._2
391+ let date = $t01242812498._3
392+ let isValidNFT = $t01242812498._4
393+ let issuer = $t01242812498._5
390394 if (!(isValidNFT))
391395 then throw("Not a valid nft")
392396 else {
393397 let saleOwner = getSaleOwnerAndStatus(nftId)
394398 if ((caller != saleOwner))
395399 then throw("Only sale owner can accept offer")
396400 else {
397401 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
398- let $t01252112576 = getBidData(bidKey)
399- let bidDataArr = $t01252112576._1
400- let assetId = $t01252112576._2
401- let bidData = $t01252112576._3
402+ let $t01275212807 = getBidData(bidKey)
403+ let bidDataArr = $t01275212807._1
404+ let assetId = $t01275212807._2
405+ let bidData = $t01275212807._3
402406 let saleKey = getSaleKey(saleOwner, nftId, toString(issuer))
403407 let saleInfo = getStrByK((saleKey + "_OPEN"))
404408 if ((size(saleInfo) == 0))
405409 then throw("Sale Not found!")
406410 else {
407411 let amount = value(parseInt(bidDataArr[1]))
408- let $t01281212918 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
409- let commissions = $t01281212918._1
410- let ownerFee = $t01281212918._2
411- let collectorNFT = $t01281212918._3
412+ let $t01304313149 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
413+ let commissions = $t01304313149._1
414+ let ownerFee = $t01304313149._2
415+ let collectorNFT = $t01304313149._3
412416 let assetIdStr = if (isDefined(assetId))
413417 then toBase58String(value(assetId))
414418 else "WAVES"
415419 [DeleteEntry((saleKey + "_OPEN")), DeleteEntry((bidKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((bidKey + "_CLOSED"), ((((bidData + "_CLOSED_") + toString(date)) + "_") + id)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((((((saleInfo + "_CLOSED-OFFER_") + toString(date)) + "_") + id) + "_") + offerOwner) + "_") + toString(amount)) + "_") + assetIdStr)), updateNumSales(), ownerFee, collectorNFT, commissions]
416420 }
417421 }
418422 }
419423 }
420424
421425
422426
423427 @Callable(i)
424428 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
425- let $t01370613780 = idCallerDate(i)
426- let id = $t01370613780._1
427- let caller = $t01370613780._2
428- let date = $t01370613780._3
429+ let $t01393714011 = idCallerDate(i)
430+ let id = $t01393714011._1
431+ let caller = $t01393714011._2
432+ let date = $t01393714011._3
429433 if (if ((caller != offerOwner))
430434 then (caller != saleOwner)
431435 else false)
432436 then throw("You cannot cancel this offer.")
433437 else {
434438 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
435- let $t01395214007 = getBidData(bidKey)
436- let bidDataArr = $t01395214007._1
437- let assetId = $t01395214007._2
438- let bidData = $t01395214007._3
439+ let $t01418314238 = getBidData(bidKey)
440+ let bidDataArr = $t01418314238._1
441+ let assetId = $t01418314238._2
442+ let bidData = $t01418314238._3
439443 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
440444 }
441445 }
442446
443447

github/deemru/w8io/3ef1775 
119.50 ms