tx · H3DWjkznvZfxRAjQXMqJqiDDyUP2CdTAgARUBUnj2iXg

3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz:  -0.01300000 Waves

2024.01.18 08:21 [2936563] smart account 3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz > SELF 0.00000000 Waves

{ "type": 13, "id": "H3DWjkznvZfxRAjQXMqJqiDDyUP2CdTAgARUBUnj2iXg", "fee": 1300000, "feeAssetId": null, "timestamp": 1705555323585, "version": 2, "chainId": 84, "sender": "3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz", "senderPublicKey": "9p5EiEVtTgiMBxj67TfVfstKuQs1LHPxoZRiRhyS5oiN", "proofs": [ "3Vd3H3LZwc9s1yAuMoUTC9GtQPQY2P64vmjm4jPkrAxYKjvvjhTe1VcyMaP7GAsgXys28siWnHtAQUTxctPzTkkT" ], "script": "base64:BgI5CAISBAoCCAgSBAoCBAgSBAoCAQgSBQoDCAEIEgMKAQgSAwoBCBIDCgEIEgUKAwgICBIGCgQICAgILQAHVkVSU0lPTgIFMS4wLjABCWdldFN0ckJ5SwEDa2V5CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFA2tleQIAAAlvcmFjbGVGZWUJAQV2YWx1ZQEJAKYIAQkBCWdldFN0ckJ5SwECD2NvbmZfb3JhY2xlX2ZlZQALZmVlUmVjZWl2ZXIJAQlnZXRTdHJCeUsBAhFjb25mX2ZlZV9yZWNlaXZlcgAPcHV6emxlX2FydF9wb29sCQEJZ2V0U3RyQnlLAQIUY29uZl9wdXp6bGVfYXJ0X3Bvb2wAE3NpZ25BcnRBcnR3b3Jrc0RhcHAJAQV2YWx1ZQEJAKYIAQkBCWdldFN0ckJ5SwECEmNvbmZfYXJ0d29ya3NfZGFwcAARdXNkdFBQQXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhtjb25mX2FjY2VwdGVkX2Fzc2V0X1VTRFRfUFAADmFydEFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIXY29uZl9hY2NlcHRlZF9hc3NldF9BUlQAEXVzZGNQUEFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIbY29uZl9hY2NlcHRlZF9hc3NldF9VU0RDX1BQAA9lYXN0QXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X0VBU1QAEXB1enpsZUFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIaY29uZl9hY2NlcHRlZF9hc3NldF9QVVpaTEUAEGV0aFBQQXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhpjb25mX2FjY2VwdGVkX2Fzc2V0X0VUSF9QUAAQd2F2ZXNBc3NldElkX3N0cgIFV0FWRVMADXVzZHRQUEFzc2V0SWQJANkEAQURdXNkdFBQQXNzZXRJZF9zdHIACmFydEFzc2V0SWQJANkEAQUOYXJ0QXNzZXRJZF9zdHIADXVzZGNQUEFzc2V0SWQJANkEAQURdXNkY1BQQXNzZXRJZF9zdHIAC2Vhc3RBc3NldElkCQDZBAEFD2Vhc3RBc3NldElkX3N0cgANcHV6emxlQXNzZXRJZAkA2QQBBRFwdXp6bGVBc3NldElkX3N0cgAMZXRoUFBBc3NldElkCQDZBAEFEGV0aFBQQXNzZXRJZF9zdHIADHdhdmVzQXNzZXRJZAEAABNhbGxfYWNjZXB0ZWRfYXNzZXRzCQDMCAIFEXVzZHRQUEFzc2V0SWRfc3RyCQDMCAIFDmFydEFzc2V0SWRfc3RyCQDMCAIFEXVzZGNQUEFzc2V0SWRfc3RyCQDMCAIFD2Vhc3RBc3NldElkX3N0cgkAzAgCBRFwdXp6bGVBc3NldElkX3N0cgkAzAgCBRB3YXZlc0Fzc2V0SWRfc3RyCQDMCAIFEGV0aFBQQXNzZXRJZF9zdHIFA25pbAAFY2hyaXMJAQlnZXRTdHJCeUsBAgxjb25mX2FkbWluXzEADmNvbW1pc3Npb25fZmVlAAMADmRhcHBSdW5uaW5nS2V5AhRjb25mX2RhcHBfaXNfcnVubmluZwARbWFpbnRlbmFuY2VNU0dLZXkCFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ5kYXBwUnVubmluZ0tleQYADm1haW50ZW5hbmNlTVNHCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFEW1haW50ZW5hbmNlTVNHS2V5AgAACW51bVNhbGVzSwIJbnVtX3NhbGVzAQlnZXRJbnRCeUsBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAEKZ2V0U2FsZUtleQMGY2FsbGVyBW5mdElkBmlzc3VlcgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDXNhbGUybmRfaW5mb18FBmNhbGxlcgIBXwUFbmZ0SWQCAV8FBmlzc3VlcgEJZ2V0QmlkS2V5BApvZmZlck93bmVyBW5mdElkCXNhbGVPd25lcgdvZmZlcklkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCW9mZmVyMm5kXwUKb2ZmZXJPd25lcgIBXwUFbmZ0SWQCAV8FCXNhbGVPd25lcgIBXwUHb2ZmZXJJZAETZ2V0SW50QnlLRnJvbU9yYWNsZQEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUJb3JhY2xlRmVlBQNrZXkCH0ludGVnZXIgdW5kZWZpbmUgb3IgMCBpbiBvcmFjbGUBDGlkQ2FsbGVyRGF0ZQEBaQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwkAlQoDCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwgFCWxhc3RCbG9jawl0aW1lc3RhbXABCWlzUGF5bWVudAEBaQMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhNObyBwYXltZW50IGF0dGFjaGVkBAdwYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEBmFtb3VudAkBBXZhbHVlAQgFB3BheW1lbnQGYW1vdW50CQCUCgIFB3BheW1lbnQFBmFtb3VudAEKTkZUSXNWYWxpZAEMYXNzZXREZXRhaWxzAwMJAAACCAUMYXNzZXREZXRhaWxzCHF1YW50aXR5AAEJAAACCAUMYXNzZXREZXRhaWxzCGRlY2ltYWxzAAAHCQAAAggFDGFzc2V0RGV0YWlscwpyZWlzc3VhYmxlBwcBEGFjY2VwdGVkQXNzZXRJZHMBB2Fzc2V0SWQDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCBRNhbGxfYWNjZXB0ZWRfYXNzZXRzBQdhc3NldElkCQACAQJAT25seSAkQVJULCBVU0RULVBQLCBVU0RDLVBQLCBFQVNULCBQVVpaTEUsIEVUSCBvciBXQVZFUyBhY2NlcHRlZAYBDWdldEJpZEFzc2V0SWQBB2Fzc2V0SWQDCQAAAgUHYXNzZXRJZAIFV0FWRVMFBHVuaXQJANkEAQUHYXNzZXRJZAEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQVuZnRpZAQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRpZAMJAAACCQCxAgEFCXNhbGVPd25lcgAACQACAQINTkZUIG5vdCBmb3VuZAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUJc2FsZU93bmVyAgFfBQVuZnRpZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAhBORlQgbm90IGZvciBzYWxlBQlzYWxlT3duZXIBCmdldEJpZERhdGEBA2tleQQHYmlkRGF0YQkBCWdldFN0ckJ5SwEJAKwCAgUDa2V5AgVfT1BFTgMJAAACBQdiaWREYXRhAgAJAAIBAg9PZmZlciBub3QgZm91bmQECmJpZERhdGFBcnIJALUJAgUHYmlkRGF0YQIBXwQHYXNzZXRJZAkBDWdldEJpZEFzc2V0SWQBCQCRAwIFCmJpZERhdGFBcnIAAgkAlQoDBQpiaWREYXRhQXJyBQdhc3NldElkBQdiaWREYXRhAQpnZXRCYWxhbmNlAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJAPAHAgUEdGhpcwUBYggJAO8HAQUEdGhpcwlhdmFpbGFibGUBDHNldFRyYW5zZmVycwUGYW1vdW50B2Fzc2V0SWQFbmZ0aWQJc2FsZU93bmVyBmNhbGxlcgQNYW1vdW50Rm9yU2lnbgkAawMFBmFtb3VudAUOY29tbWlzc2lvbl9mZWUAZAQOYW1vdW50Rm9yT3duZXIJAGUCBQZhbW91bnQFDWFtb3VudEZvclNpZ24EImFtb3VudF9jb21taXNzaW9uX2Zvcl9zaWduX3RvX3N3YXAFDWFtb3VudEZvclNpZ24EEWFtb3VudF9hcnRfYmVmb3JlCQEKZ2V0QmFsYW5jZQEFCmFydEFzc2V0SWQDCQAAAgURYW1vdW50X2FydF9iZWZvcmUFEWFtb3VudF9hcnRfYmVmb3JlBA9zd2FwX2ZlZV90b19hcnQDCQECIT0CBQdhc3NldElkBQphcnRBc3NldElkCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQ9wdXp6bGVfYXJ0X3Bvb2wCBHN3YXAJAMwIAgUOYXJ0QXNzZXRJZF9zdHIJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB2Fzc2V0SWQFImFtb3VudF9jb21taXNzaW9uX2Zvcl9zaWduX3RvX3N3YXAFA25pbAUEdW5pdAMJAAACBQ9zd2FwX2ZlZV90b19hcnQFD3N3YXBfZmVlX3RvX2FydAQQYW1vdW50X2FydF9hZnRlcgkBCmdldEJhbGFuY2UBBQphcnRBc3NldElkAwkAAAIFEGFtb3VudF9hcnRfYWZ0ZXIFEGFtb3VudF9hcnRfYWZ0ZXIEC2NvbW1pc3Npb25zCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQULZmVlUmVjZWl2ZXIDCQAAAgUHYXNzZXRJZAUKYXJ0QXNzZXRJZAUNYW1vdW50Rm9yU2lnbgkAZQIFEGFtb3VudF9hcnRfYWZ0ZXIFEWFtb3VudF9hcnRfYmVmb3JlBQphcnRBc3NldElkBAhvd25lckZlZQkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFCXNhbGVPd25lcgUOYW1vdW50Rm9yT3duZXIFB2Fzc2V0SWQEDGNvbGxlY3Rvck5GVAkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCQDZBAEFBW5mdGlkCQCVCgMFC2NvbW1pc3Npb25zBQhvd25lckZlZQUMY29sbGVjdG9yTkZUCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ92YWxpZGF0ZU1pblNlbGwBBXByaWNlAwkAZgIAAAUFcHJpY2UJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UGAQ9wcm92aWRlQmFzZURhdGECAWkFbmZ0SWQECyR0MDUxOTU1MjM1CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQskdDA1MTk1NTIzNQJfMQQGY2FsbGVyCAULJHQwNTE5NTUyMzUCXzIEBGRhdGUIBQskdDA1MTk1NTIzNQJfMwQMYXNzZXREZXRhaWxzCQEFdmFsdWUBCQDsBwEJANkEAQUFbmZ0SWQECmlzVmFsaWRORlQJAQpORlRJc1ZhbGlkAQUMYXNzZXREZXRhaWxzCQCXCgUFAmlkBQZjYWxsZXIFBGRhdGUFCmlzVmFsaWRORlQIBQxhc3NldERldGFpbHMGaXNzdWVyAQ51cGRhdGVOdW1TYWxlcwAECG51bVNhbGVzCQEJZ2V0SW50QnlLAQUJbnVtU2FsZXNLCQEMSW50ZWdlckVudHJ5AgUJbnVtU2FsZXNLCQBkAgUIbnVtU2FsZXMAAQEHaGF2ZVNURAIGaXNzdWVyBm5kZnRJZAQIZGF0YV9jaWQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgkBB0FkZHJlc3MBCQDZBAEFBmlzc3VlcgkArAICCQCsAgICCHN0ZF9uZnRfBQZuZGZ0SWQCBF9jaWQCAAQJZGF0YV9qc29uCQELdmFsdWVPckVsc2UCCQCdCAIJAQdBZGRyZXNzAQkA2QQBBQZpc3N1ZXIJAKwCAgkArAICAghzdGRfbmZ0XwUGbmRmdElkAgVfanNvbgIAAwkBAiE9AgUIZGF0YV9jaWQCAAYJAQIhPQIFCWRhdGFfanNvbgIACQZpbnZva2UBB3NldENvbmYCA2tleQN2YWwEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDCQEIY29udGFpbnMCBQNrZXkCBWNvbmZfCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwJAAIBAiBFbnRyaWVzIHN0YXJ0aW5nIHdpdGggY29uZl8gb25seQkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMGaW52b2tlAQphcHBSdW5uaW5nAgZpc0xpdmUHbWVzc2FnZQQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyBAJpZAkA2AQBCAUGaW52b2tlDXRyYW5zYWN0aW9uSWQDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBQ5kYXBwUnVubmluZ0tleQUGaXNMaXZlCQDMCAIJAQtTdHJpbmdFbnRyeQIFEW1haW50ZW5hbmNlTVNHS2V5BQdtZXNzYWdlBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzAWkBB3NlbGxORlQCBXByaWNlBWFzc2V0BAskdDA2NzAwNjczNgkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQskdDA2NzAwNjczNgJfMQQGYW1vdW50CAULJHQwNjcwMDY3MzYCXzIDCQECIT0CBQZhbW91bnQAAQkAAgECD05vIE5GVCBhdHRhY2hlZAQFbmZ0SWQDCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkCQACAQITV2F2ZXMgaXMgbm90IGEgTkZULgQLJHQwNjkyMjY5OTIJAQ9wcm92aWRlQmFzZURhdGECBQFpBQVuZnRJZAQCaWQIBQskdDA2OTIyNjk5MgJfMQQGY2FsbGVyCAULJHQwNjkyMjY5OTICXzIEBGRhdGUIBQskdDA2OTIyNjk5MgJfMwQKaXNWYWxpZE5GVAgFCyR0MDY5MjI2OTkyAl80BAZpc3N1ZXIIBQskdDA2OTIyNjk5MgJfNQMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAMJAAACBQZpc3N1ZXIFE3NpZ25BcnRBcnR3b3Jrc0RhcHAJAAIBAjdUaGlzIGRBcHAgaXMgb25seSBmb3IgTkZUIGlzc3VlZCBvdXRzaWRlIFNJR04gQXJ0IGRBcHAuAwkBASEBCQEHaGF2ZVNURAIJAKUIAQUGaXNzdWVyBQVuZnRJZAkAAgECJ05vIG5mdCBzdGFuZGFyZCBmb3VuZCBvbiBpc3N1ZXIgYWNjb3VudAMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQVhc3NldAkAAgECQE9ubHkgJEFSVCwgVVNEVC1QUCwgVVNEQy1QUCwgRUFTVCwgUFVaWkxFLCBFVEggb3IgV0FWRVMgYWNjZXB0ZWQDCQEBIQEJAQ92YWxpZGF0ZU1pblNlbGwBBQVwcmljZQkAAgECGFdyb25nIG1pbmltdW0gc2VsbCBwcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAQpnZXRTYWxlS2V5AwUGY2FsbGVyBQVuZnRJZAkApQgBBQZpc3N1ZXICBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUEZGF0ZQIBXwkApAMBBQVwcmljZQIBXwUFYXNzZXQCAV8FBW5mdElkAgFfCQClCAEFBmlzc3VlcgIBXwUCaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQZjYWxsZXICAV8FBW5mdElkAgRPUEVOCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQFBmNhbGxlcgUDbmlsAWkBD3VwZGF0ZVNhbGVQcmljZQMFbmZ0SWQFcHJpY2UFYXNzZXQECyR0MDc5MDE3OTcxCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAULJHQwNzkwMTc5NzECXzEEBmNhbGxlcggFCyR0MDc5MDE3OTcxAl8yBARkYXRlCAULJHQwNzkwMTc5NzECXzMECmlzVmFsaWRORlQIBQskdDA3OTAxNzk3MQJfNAQGaXNzdWVyCAULJHQwNzkwMTc5NzECXzUDCQEBIQEFCmlzVmFsaWRORlQJAAIBAg9Ob3QgYSB2YWxpZCBuZnQECXNhbGVPd25lcgkBCWdldFN0ckJ5SwEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQDCQECIT0CBQlzYWxlT3duZXIFBmNhbGxlcgkAAgECFllvdSBkb24ndCBvd24gdGhpcyBORlQECnNhbGVTdGF0dXMJAQlnZXRTdHJCeUsBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FBmNhbGxlcgIBXwUFbmZ0SWQDCQECIT0CBQpzYWxlU3RhdHVzAgRPUEVOCQACAQIPU2FsZSBub3QgYWN0aXZlAwkBASEBCQEQYWNjZXB0ZWRBc3NldElkcwEFBWFzc2V0CQACAQJAT25seSAkQVJULCBVU0RULVBQLCBVU0RDLVBQLCBFQVNULCBQVVpaTEUsIEVUSCBvciBXQVZFUyBhY2NlcHRlZAMJAQEhAQkBD3ZhbGlkYXRlTWluU2VsbAEFBXByaWNlCQACAQIYV3JvbmcgbWluaW11bSBzZWxsIHByaWNlBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQMFBmNhbGxlcgUFbmZ0SWQJAKUIAQUGaXNzdWVyBAhzYWxlSW5mbwkAtQkCCQEJZ2V0U3RyQnlLAQkArAICBQdzYWxlS2V5AgVfT1BFTgIBXwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAJEDAgUIc2FsZUluZm8AAAIBXwkApAMBBQVwcmljZQIBXwUFYXNzZXQCAV8JAJEDAgUIc2FsZUluZm8AAwIBXwkAkQMCBQhzYWxlSW5mbwAEAgFfCQCRAwIFCHNhbGVJbmZvAAUFA25pbAFpAQpjYW5jZWxTYWxlAQVuZnRJZAQLJHQwOTAyMzkyNDEJAQ9wcm92aWRlQmFzZURhdGECBQFpBQVuZnRJZAQCaWQIBQskdDA5MDIzOTI0MQJfMQQGY2FsbGVyCAULJHQwOTAyMzkyNDECXzIEBGRhdGUIBQskdDA5MDIzOTI0MQJfMwQKaXNWYWxpZE5GVAgFCyR0MDkwMjM5MjQxAl80BAZpc3N1ZXIIBQskdDA5MDIzOTI0MQJfNQQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAMJAQIhPQIFCXNhbGVPd25lcgUGY2FsbGVyCQACAQIWWW91IGRvbid0IG93biB0aGlzIE5GVAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAg9TYWxlIG5vdCBhY3RpdmUEB3NhbGVLZXkJAQpnZXRTYWxlS2V5AwUGY2FsbGVyBQVuZnRJZAkApQgBBQZpc3N1ZXIECHNhbGVJbmZvCQEJZ2V0U3RyQnlLAQkArAICBQdzYWxlS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFB3NhbGVLZXkCAV8FAmlkAgpfQ0FOQ0VMTEVECQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAgtfQ0FOQ0VMTEVEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAEJANkEAQUFbmZ0SWQFA25pbAFpAQZidXlORlQBBW5mdElkBA0kdDAxMDA3MjEwMTQyCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTAwNzIxMDE0MgJfMQQGY2FsbGVyCAUNJHQwMTAwNzIxMDE0MgJfMgQEZGF0ZQgFDSR0MDEwMDcyMTAxNDICXzMECmlzVmFsaWRORlQIBQ0kdDAxMDA3MjEwMTQyAl80BAZpc3N1ZXIIBQ0kdDAxMDA3MjEwMTQyAl81AwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0BAlzYWxlT3duZXIJARVnZXRTYWxlT3duZXJBbmRTdGF0dXMBBQVuZnRJZAQHc2FsZUtleQkBCmdldFNhbGVLZXkDBQlzYWxlT3duZXIFBW5mdElkCQClCAEFBmlzc3VlcgQIc2FsZUluZm8JAQlnZXRTdHJCeUsBCQCsAgIFB3NhbGVLZXkCBV9PUEVOAwkAAAIJALECAQUIc2FsZUluZm8AAAkAAgECD1NhbGUgTm90IGZvdW5kIQQNc2FsZUluZm9BcnJheQkAtQkCBQhzYWxlSW5mbwIBXwMJAAACCQC2CQEJAJEDAgUNc2FsZUluZm9BcnJheQABAAAJAAIBAgpPZmZlciBvbmx5BA0kdDAxMDU0MTEwNTc3CQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDEwNTQxMTA1NzcCXzEEBmFtb3VudAgFDSR0MDEwNTQxMTA1NzcCXzIED3BheW1lbnRBc3NldFN0cgMJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQCAAMDCQECIT0CCQCRAwIFDXNhbGVJbmZvQXJyYXkAAQkApAMBBQZhbW91bnQGCQECIT0CCQCRAwIFDXNhbGVJbmZvQXJyYXkAAgUPcGF5bWVudEFzc2V0U3RyCQACAQIaUGF5bWVudCBpbmZvcyBkb24ndCBtYXRjaC4EDSR0MDExMDkxMTExOTgJAQxzZXRUcmFuc2ZlcnMFBQZhbW91bnQIBQdwYXltZW50B2Fzc2V0SWQFBW5mdElkBQlzYWxlT3duZXIFBmNhbGxlcgQLY29tbWlzc2lvbnMIBQ0kdDAxMTA5MTExMTk4Al8xBAhvd25lckZlZQgFDSR0MDExMDkxMTExOTgCXzIEDGNvbGxlY3Rvck5GVAgFDSR0MDExMDkxMTExOTgCXzMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQdzYWxlS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FCXNhbGVPd25lcgIBXwUFbmZ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQdzYWxlS2V5AgFfBQJpZAIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUIc2FsZUluZm8CCF9DTE9TRURfCQCkAwEFBGRhdGUCAV8FAmlkAgFfBQZjYWxsZXIJAMwIAgkBDnVwZGF0ZU51bVNhbGVzAAkAzAgCBQhvd25lckZlZQkAzAgCBQxjb2xsZWN0b3JORlQJAMwIAgULY29tbWlzc2lvbnMFA25pbAFpAQhzZXRPZmZlcgEFbmZ0SWQEDSR0MDExNTk3MTE2NzEJAQ9wcm92aWRlQmFzZURhdGECBQFpBQVuZnRJZAQCaWQIBQ0kdDAxMTU5NzExNjcxAl8xBApvZmZlck93bmVyCAUNJHQwMTE1OTcxMTY3MQJfMgQEZGF0ZQgFDSR0MDExNTk3MTE2NzECXzMECmlzVmFsaWRORlQIBQ0kdDAxMTU5NzExNjcxAl80BAZpc3N1ZXIIBQ0kdDAxMTU5NzExNjcxAl81AwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0BA0kdDAxMTczMjExNzY4CQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDExNzMyMTE3NjgCXzEEBmFtb3VudAgFDSR0MDExNzMyMTE3NjgCXzIEB2Fzc2V0SWQDCQEBIQEJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkAgVXQVZFUwkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkAwkBASEBCQEQYWNjZXB0ZWRBc3NldElkcwEFB2Fzc2V0SWQJAAIBAhJhc3NldCBub3QgYWNjZXB0ZWQDCQAAAgUGYW1vdW50AAAJAAIBAhZPZmZlciBvZiAwIG5vdCBhbGxvd2VkAwkBASEBCQEPdmFsaWRhdGVNaW5TZWxsAQUGYW1vdW50CQACAQIYV3JvbmcgbWluaW11bSBzZWxsIHByaWNlBAlzYWxlT3duZXIJARVnZXRTYWxlT3duZXJBbmRTdGF0dXMBBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAQlnZXRCaWRLZXkEBQpvZmZlck93bmVyBQVuZnRJZAUJc2FsZU93bmVyBQJpZAIFX09QRU4JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUEZGF0ZQIBXwkApAMBBQZhbW91bnQCAV8FB2Fzc2V0SWQCAV8FBW5mdElkAgFfCQClCAEFBmlzc3VlcgIBXwUKb2ZmZXJPd25lcgIBXwUCaWQFA25pbAFpAQthY2NlcHRPZmZlcgMFbmZ0SWQHb2ZmZXJJZApvZmZlck93bmVyBA0kdDAxMjU1NzEyNjI3CQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTI1NTcxMjYyNwJfMQQGY2FsbGVyCAUNJHQwMTI1NTcxMjYyNwJfMgQEZGF0ZQgFDSR0MDEyNTU3MTI2MjcCXzMECmlzVmFsaWRORlQIBQ0kdDAxMjU1NzEyNjI3Al80BAZpc3N1ZXIIBQ0kdDAxMjU1NzEyNjI3Al81AwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0BAlzYWxlT3duZXIJARVnZXRTYWxlT3duZXJBbmRTdGF0dXMBBQVuZnRJZAMJAQIhPQIFBmNhbGxlcgUJc2FsZU93bmVyCQACAQIgT25seSBzYWxlIG93bmVyIGNhbiBhY2NlcHQgb2ZmZXIEBmJpZEtleQkBCWdldEJpZEtleQQFCm9mZmVyT3duZXIFBW5mdElkBQlzYWxlT3duZXIFB29mZmVySWQEDSR0MDEyODgxMTI5MzYJAQpnZXRCaWREYXRhAQUGYmlkS2V5BApiaWREYXRhQXJyCAUNJHQwMTI4ODExMjkzNgJfMQQHYXNzZXRJZAgFDSR0MDEyODgxMTI5MzYCXzIEB2JpZERhdGEIBQ0kdDAxMjg4MTEyOTM2Al8zBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQMFCXNhbGVPd25lcgUFbmZ0SWQJAKUIAQUGaXNzdWVyBAhzYWxlSW5mbwkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4DCQAAAgkAsQIBBQhzYWxlSW5mbwAACQACAQIPU2FsZSBOb3QgZm91bmQhBAZhbW91bnQJAQV2YWx1ZQEJALYJAQkAkQMCBQpiaWREYXRhQXJyAAEEDSR0MDEzMTcyMTMyNzgJAQxzZXRUcmFuc2ZlcnMFBQZhbW91bnQFB2Fzc2V0SWQFBW5mdElkBQlzYWxlT3duZXIJAJEDAgUKYmlkRGF0YUFycgAGBAtjb21taXNzaW9ucwgFDSR0MDEzMTcyMTMyNzgCXzEECG93bmVyRmVlCAUNJHQwMTMxNzIxMzI3OAJfMgQMY29sbGVjdG9yTkZUCAUNJHQwMTMxNzIxMzI3OAJfMwQKYXNzZXRJZFN0cgMJAQlpc0RlZmluZWQBBQdhc3NldElkCQDYBAEJAQV2YWx1ZQEFB2Fzc2V0SWQCBVdBVkVTCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQZiaWRLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUJc2FsZU93bmVyAgFfBQVuZnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGYmlkS2V5AgdfQ0xPU0VECQCsAgIJAKwCAgkArAICCQCsAgIFB2JpZERhdGECCF9DTE9TRURfCQCkAwEFBGRhdGUCAV8FAmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFB3NhbGVLZXkCAV8FAmlkAgdfQ0xPU0VECQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAg5fQ0xPU0VELU9GRkVSXwkApAMBBQRkYXRlAgFfBQJpZAIBXwUKb2ZmZXJPd25lcgIBXwkApAMBBQZhbW91bnQCAV8FCmFzc2V0SWRTdHIJAMwIAgkBDnVwZGF0ZU51bVNhbGVzAAkAzAgCBQhvd25lckZlZQkAzAgCBQxjb2xsZWN0b3JORlQJAMwIAgULY29tbWlzc2lvbnMFA25pbAFpAQtjYW5jZWxPZmZlcgQFbmZ0SWQHb2ZmZXJJZApvZmZlck93bmVyCXNhbGVPd25lcgQNJHQwMTQwNjYxNDE0MAkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTQwNjYxNDE0MAJfMQQGY2FsbGVyCAUNJHQwMTQwNjYxNDE0MAJfMgQEZGF0ZQgFDSR0MDE0MDY2MTQxNDACXzMDAwkBAiE9AgUGY2FsbGVyBQpvZmZlck93bmVyCQECIT0CBQZjYWxsZXIFCXNhbGVPd25lcgcJAAIBAh1Zb3UgY2Fubm90IGNhbmNlbCB0aGlzIG9mZmVyLgQGYmlkS2V5CQEJZ2V0QmlkS2V5BAUKb2ZmZXJPd25lcgUFbmZ0SWQFCXNhbGVPd25lcgUHb2ZmZXJJZAQNJHQwMTQzMTIxNDM2NwkBCmdldEJpZERhdGEBBQZiaWRLZXkECmJpZERhdGFBcnIIBQ0kdDAxNDMxMjE0MzY3Al8xBAdhc3NldElkCAUNJHQwMTQzMTIxNDM2NwJfMgQHYmlkRGF0YQgFDSR0MDE0MzEyMTQzNjcCXzMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQZiaWRLZXkCBV9PUEVOCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGYmlkS2V5AgpfQ0FOQ0VMTEVECQCsAgIJAKwCAgkArAICCQCsAgIFB2JpZERhdGECC19DQU5DRUxMRURfCQCkAwEFBGRhdGUCAV8FAmlkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpiaWREYXRhQXJyAAEFB2Fzc2V0SWQFA25pbAAIDV77", "height": 2936563, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5p8LUKmcLET4n6q1Ck9r3YqQDJGHqL6dv4qdkPFWDpqp Next: g38CSJCWb58AafANszskhHY6eufugB11GXZw3SDrH8Q Diff:
OldNewDifferences
187187
188188
189189 func haveSTD (issuer,ndftId) = {
190- let data = valueOrElse(getString(Address(fromBase58String(issuer)), (("std_nft_" + ndftId) + "_metadata")), "")
191- (data != "")
190+ let data_cid = valueOrElse(getString(Address(fromBase58String(issuer)), (("std_nft_" + ndftId) + "_cid")), "")
191+ let data_json = valueOrElse(getString(Address(fromBase58String(issuer)), (("std_nft_" + ndftId) + "_json")), "")
192+ if ((data_cid != ""))
193+ then true
194+ else (data_json != "")
192195 }
193196
194197
217220
218221 @Callable(i)
219222 func sellNFT (price,asset) = {
220- let $t065706606 = isPayment(i)
221- let payment = $t065706606._1
222- let amount = $t065706606._2
223+ let $t067006736 = isPayment(i)
224+ let payment = $t067006736._1
225+ let amount = $t067006736._2
223226 if ((amount != 1))
224227 then throw("No NFT attached")
225228 else {
226229 let nftId = if (isDefined(payment.assetId))
227230 then toBase58String(value(payment.assetId))
228231 else throw("Waves is not a NFT.")
229- let $t067926862 = provideBaseData(i, nftId)
230- let id = $t067926862._1
231- let caller = $t067926862._2
232- let date = $t067926862._3
233- let isValidNFT = $t067926862._4
234- let issuer = $t067926862._5
232+ let $t069226992 = provideBaseData(i, nftId)
233+ let id = $t069226992._1
234+ let caller = $t069226992._2
235+ let date = $t069226992._3
236+ let isValidNFT = $t069226992._4
237+ let issuer = $t069226992._5
235238 if (!(isValidNFT))
236239 then throw("Not a valid nft")
237240 else if ((issuer == signArtArtworksDapp))
250253
251254 @Callable(i)
252255 func updateSalePrice (nftId,price,asset) = {
253- let $t077717841 = provideBaseData(i, nftId)
254- let id = $t077717841._1
255- let caller = $t077717841._2
256- let date = $t077717841._3
257- let isValidNFT = $t077717841._4
258- let issuer = $t077717841._5
256+ let $t079017971 = provideBaseData(i, nftId)
257+ let id = $t079017971._1
258+ let caller = $t079017971._2
259+ let date = $t079017971._3
260+ let isValidNFT = $t079017971._4
261+ let issuer = $t079017971._5
259262 if (!(isValidNFT))
260263 then throw("Not a valid nft")
261264 else {
283286
284287 @Callable(i)
285288 func cancelSale (nftId) = {
286- let $t088939111 = provideBaseData(i, nftId)
287- let id = $t088939111._1
288- let caller = $t088939111._2
289- let date = $t088939111._3
290- let isValidNFT = $t088939111._4
291- let issuer = $t088939111._5
289+ let $t090239241 = provideBaseData(i, nftId)
290+ let id = $t090239241._1
291+ let caller = $t090239241._2
292+ let date = $t090239241._3
293+ let isValidNFT = $t090239241._4
294+ let issuer = $t090239241._5
292295 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
293296 if ((saleOwner != caller))
294297 then throw("You don't own this NFT")
308311
309312 @Callable(i)
310313 func buyNFT (nftId) = {
311- let $t0994210012 = provideBaseData(i, nftId)
312- let id = $t0994210012._1
313- let caller = $t0994210012._2
314- let date = $t0994210012._3
315- let isValidNFT = $t0994210012._4
316- let issuer = $t0994210012._5
314+ let $t01007210142 = provideBaseData(i, nftId)
315+ let id = $t01007210142._1
316+ let caller = $t01007210142._2
317+ let date = $t01007210142._3
318+ let isValidNFT = $t01007210142._4
319+ let issuer = $t01007210142._5
317320 if (!(isValidNFT))
318321 then throw("Not a valid nft")
319322 else {
327330 if ((parseInt(saleInfoArray[1]) == 0))
328331 then throw("Offer only")
329332 else {
330- let $t01041110447 = isPayment(i)
331- let payment = $t01041110447._1
332- let amount = $t01041110447._2
333+ let $t01054110577 = isPayment(i)
334+ let payment = $t01054110577._1
335+ let amount = $t01054110577._2
333336 let paymentAssetStr = if (isDefined(payment.assetId))
334337 then toBase58String(value(payment.assetId))
335338 else ""
338341 else (saleInfoArray[2] != paymentAssetStr))
339342 then throw("Payment infos don't match.")
340343 else {
341- let $t01096111068 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
342- let commissions = $t01096111068._1
343- let ownerFee = $t01096111068._2
344- let collectorNFT = $t01096111068._3
344+ let $t01109111198 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
345+ let commissions = $t01109111198._1
346+ let ownerFee = $t01109111198._2
347+ let collectorNFT = $t01109111198._3
345348 [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]
346349 }
347350 }
353356
354357 @Callable(i)
355358 func setOffer (nftId) = {
356- let $t01146711541 = provideBaseData(i, nftId)
357- let id = $t01146711541._1
358- let offerOwner = $t01146711541._2
359- let date = $t01146711541._3
360- let isValidNFT = $t01146711541._4
361- let issuer = $t01146711541._5
359+ let $t01159711671 = provideBaseData(i, nftId)
360+ let id = $t01159711671._1
361+ let offerOwner = $t01159711671._2
362+ let date = $t01159711671._3
363+ let isValidNFT = $t01159711671._4
364+ let issuer = $t01159711671._5
362365 if (!(isValidNFT))
363366 then throw("Not a valid nft")
364367 else {
365- let $t01160211638 = isPayment(i)
366- let payment = $t01160211638._1
367- let amount = $t01160211638._2
368+ let $t01173211768 = isPayment(i)
369+ let payment = $t01173211768._1
370+ let amount = $t01173211768._2
368371 let assetId = if (!(isDefined(payment.assetId)))
369372 then "WAVES"
370373 else toBase58String(value(payment.assetId))
385388
386389 @Callable(i)
387390 func acceptOffer (nftId,offerId,offerOwner) = {
388- let $t01242712497 = provideBaseData(i, nftId)
389- let id = $t01242712497._1
390- let caller = $t01242712497._2
391- let date = $t01242712497._3
392- let isValidNFT = $t01242712497._4
393- let issuer = $t01242712497._5
391+ let $t01255712627 = provideBaseData(i, nftId)
392+ let id = $t01255712627._1
393+ let caller = $t01255712627._2
394+ let date = $t01255712627._3
395+ let isValidNFT = $t01255712627._4
396+ let issuer = $t01255712627._5
394397 if (!(isValidNFT))
395398 then throw("Not a valid nft")
396399 else {
399402 then throw("Only sale owner can accept offer")
400403 else {
401404 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
402- let $t01275112806 = getBidData(bidKey)
403- let bidDataArr = $t01275112806._1
404- let assetId = $t01275112806._2
405- let bidData = $t01275112806._3
405+ let $t01288112936 = getBidData(bidKey)
406+ let bidDataArr = $t01288112936._1
407+ let assetId = $t01288112936._2
408+ let bidData = $t01288112936._3
406409 let saleKey = getSaleKey(saleOwner, nftId, toString(issuer))
407410 let saleInfo = getStrByK((saleKey + "_OPEN"))
408411 if ((size(saleInfo) == 0))
409412 then throw("Sale Not found!")
410413 else {
411414 let amount = value(parseInt(bidDataArr[1]))
412- let $t01304213148 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
413- let commissions = $t01304213148._1
414- let ownerFee = $t01304213148._2
415- let collectorNFT = $t01304213148._3
415+ let $t01317213278 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
416+ let commissions = $t01317213278._1
417+ let ownerFee = $t01317213278._2
418+ let collectorNFT = $t01317213278._3
416419 let assetIdStr = if (isDefined(assetId))
417420 then toBase58String(value(assetId))
418421 else "WAVES"
426429
427430 @Callable(i)
428431 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
429- let $t01393614010 = idCallerDate(i)
430- let id = $t01393614010._1
431- let caller = $t01393614010._2
432- let date = $t01393614010._3
432+ let $t01406614140 = idCallerDate(i)
433+ let id = $t01406614140._1
434+ let caller = $t01406614140._2
435+ let date = $t01406614140._3
433436 if (if ((caller != offerOwner))
434437 then (caller != saleOwner)
435438 else false)
436439 then throw("You cannot cancel this offer.")
437440 else {
438441 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
439- let $t01418214237 = getBidData(bidKey)
440- let bidDataArr = $t01418214237._1
441- let assetId = $t01418214237._2
442- let bidData = $t01418214237._3
442+ let $t01431214367 = getBidData(bidKey)
443+ let bidDataArr = $t01431214367._1
444+ let assetId = $t01431214367._2
445+ let bidData = $t01431214367._3
443446 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
444447 }
445448 }
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")
1414
1515 let signArtArtworksDapp = value(addressFromString(getStrByK("conf_artworks_dapp")))
1616
1717 let usdtPPAssetId_str = getStrByK("conf_accepted_asset_USDT_PP")
1818
1919 let artAssetId_str = getStrByK("conf_accepted_asset_ART")
2020
2121 let usdcPPAssetId_str = getStrByK("conf_accepted_asset_USDC_PP")
2222
2323 let eastAssetId_str = getStrByK("conf_accepted_asset_EAST")
2424
2525 let puzzleAssetId_str = getStrByK("conf_accepted_asset_PUZZLE")
2626
2727 let ethPPAssetId_str = getStrByK("conf_accepted_asset_ETH_PP")
2828
2929 let wavesAssetId_str = "WAVES"
3030
3131 let usdtPPAssetId = fromBase58String(usdtPPAssetId_str)
3232
3333 let artAssetId = fromBase58String(artAssetId_str)
3434
3535 let usdcPPAssetId = fromBase58String(usdcPPAssetId_str)
3636
3737 let eastAssetId = fromBase58String(eastAssetId_str)
3838
3939 let puzzleAssetId = fromBase58String(puzzleAssetId_str)
4040
4141 let ethPPAssetId = fromBase58String(ethPPAssetId_str)
4242
4343 let wavesAssetId = base58''
4444
4545 let all_accepted_assets = [usdtPPAssetId_str, artAssetId_str, usdcPPAssetId_str, eastAssetId_str, puzzleAssetId_str, wavesAssetId_str, ethPPAssetId_str]
4646
4747 let chris = getStrByK("conf_admin_1")
4848
4949 let commission_fee = 3
5050
5151 let dappRunningKey = "conf_dapp_is_running"
5252
5353 let maintenanceMSGKey = "conf_maintenance_msg"
5454
5555 let dappRunning = valueOrElse(getBoolean(this, dappRunningKey), true)
5656
5757 let maintenanceMSG = valueOrElse(getString(this, maintenanceMSGKey), "")
5858
5959 let numSalesK = "num_sales"
6060
6161 func getIntByK (key) = valueOrElse(getInteger(this, key), 0)
6262
6363
6464 func getSaleKey (caller,nftId,issuer) = ((((("sale2nd_info_" + caller) + "_") + nftId) + "_") + issuer)
6565
6666
6767 func getBidKey (offerOwner,nftId,saleOwner,offerId) = ((((((("offer2nd_" + offerOwner) + "_") + nftId) + "_") + saleOwner) + "_") + offerId)
6868
6969
7070 func getIntByKFromOracle (key) = valueOrErrorMessage(getInteger(oracleFee, key), "Integer undefine or 0 in oracle")
7171
7272
7373 func idCallerDate (i) = if (!(dappRunning))
7474 then throw(maintenanceMSG)
7575 else $Tuple3(toBase58String(i.transactionId), toBase58String(i.caller.bytes), lastBlock.timestamp)
7676
7777
7878 func isPayment (i) = if ((size(i.payments) == 0))
7979 then throw("No payment attached")
8080 else {
8181 let payment = value(i.payments[0])
8282 let amount = value(payment.amount)
8383 $Tuple2(payment, amount)
8484 }
8585
8686
8787 func NFTIsValid (assetDetails) = if (if ((assetDetails.quantity == 1))
8888 then (assetDetails.decimals == 0)
8989 else false)
9090 then (assetDetails.reissuable == false)
9191 else false
9292
9393
9494 func acceptedAssetIds (assetId) = if (!(containsElement(all_accepted_assets, assetId)))
9595 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
9696 else true
9797
9898
9999 func getBidAssetId (assetId) = if ((assetId == "WAVES"))
100100 then unit
101101 else fromBase58String(assetId)
102102
103103
104104 func getSaleOwnerAndStatus (nftid) = {
105105 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
106106 if ((size(saleOwner) == 0))
107107 then throw("NFT not found")
108108 else {
109109 let saleStatus = getStrByK(((("sale2nd_status_" + saleOwner) + "_") + nftid))
110110 if ((saleStatus != "OPEN"))
111111 then throw("NFT not for sale")
112112 else saleOwner
113113 }
114114 }
115115
116116
117117 func getBidData (key) = {
118118 let bidData = getStrByK((key + "_OPEN"))
119119 if ((bidData == ""))
120120 then throw("Offer not found")
121121 else {
122122 let bidDataArr = split(bidData, "_")
123123 let assetId = getBidAssetId(bidDataArr[2])
124124 $Tuple3(bidDataArr, assetId, bidData)
125125 }
126126 }
127127
128128
129129 func getBalance (assetId) = match assetId {
130130 case b: ByteVector =>
131131 assetBalance(this, b)
132132 case _ =>
133133 wavesBalance(this).available
134134 }
135135
136136
137137 func setTransfers (amount,assetId,nftid,saleOwner,caller) = {
138138 let amountForSign = fraction(amount, commission_fee, 100)
139139 let amountForOwner = (amount - amountForSign)
140140 let amount_commission_for_sign_to_swap = amountForSign
141141 let amount_art_before = getBalance(artAssetId)
142142 if ((amount_art_before == amount_art_before))
143143 then {
144144 let swap_fee_to_art = if ((assetId != artAssetId))
145145 then invoke(Address(fromBase58String(puzzle_art_pool)), "swap", [artAssetId_str, 1], [AttachedPayment(assetId, amount_commission_for_sign_to_swap)])
146146 else unit
147147 if ((swap_fee_to_art == swap_fee_to_art))
148148 then {
149149 let amount_art_after = getBalance(artAssetId)
150150 if ((amount_art_after == amount_art_after))
151151 then {
152152 let commissions = ScriptTransfer(Address(fromBase58String(feeReceiver)), if ((assetId == artAssetId))
153153 then amountForSign
154154 else (amount_art_after - amount_art_before), artAssetId)
155155 let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
156156 let collectorNFT = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))
157157 $Tuple3(commissions, ownerFee, collectorNFT)
158158 }
159159 else throw("Strict value is not equal to itself.")
160160 }
161161 else throw("Strict value is not equal to itself.")
162162 }
163163 else throw("Strict value is not equal to itself.")
164164 }
165165
166166
167167 func validateMinSell (price) = if ((0 > price))
168168 then throw("Wrong minimum sell price")
169169 else true
170170
171171
172172 func provideBaseData (i,nftId) = {
173173 let $t051955235 = idCallerDate(i)
174174 let id = $t051955235._1
175175 let caller = $t051955235._2
176176 let date = $t051955235._3
177177 let assetDetails = value(assetInfo(fromBase58String(nftId)))
178178 let isValidNFT = NFTIsValid(assetDetails)
179179 $Tuple5(id, caller, date, isValidNFT, assetDetails.issuer)
180180 }
181181
182182
183183 func updateNumSales () = {
184184 let numSales = getIntByK(numSalesK)
185185 IntegerEntry(numSalesK, (numSales + 1))
186186 }
187187
188188
189189 func haveSTD (issuer,ndftId) = {
190- let data = valueOrElse(getString(Address(fromBase58String(issuer)), (("std_nft_" + ndftId) + "_metadata")), "")
191- (data != "")
190+ let data_cid = valueOrElse(getString(Address(fromBase58String(issuer)), (("std_nft_" + ndftId) + "_cid")), "")
191+ let data_json = valueOrElse(getString(Address(fromBase58String(issuer)), (("std_nft_" + ndftId) + "_json")), "")
192+ if ((data_cid != ""))
193+ then true
194+ else (data_json != "")
192195 }
193196
194197
195198 @Callable(invoke)
196199 func setConf (key,val) = {
197200 let caller = toString(invoke.caller)
198201 if (containsElement([chris, toString(this)], caller))
199202 then if (contains(key, "conf_"))
200203 then [StringEntry(key, val)]
201204 else throw("Entries starting with conf_ only")
202205 else throw("You are not allowed to change this")
203206 }
204207
205208
206209
207210 @Callable(invoke)
208211 func appRunning (isLive,message) = {
209212 let caller = toString(invoke.caller)
210213 let id = toBase58String(invoke.transactionId)
211214 if (containsElement([chris, toString(this)], caller))
212215 then [BooleanEntry(dappRunningKey, isLive), StringEntry(maintenanceMSGKey, message)]
213216 else throw("You are not allowed to change this")
214217 }
215218
216219
217220
218221 @Callable(i)
219222 func sellNFT (price,asset) = {
220- let $t065706606 = isPayment(i)
221- let payment = $t065706606._1
222- let amount = $t065706606._2
223+ let $t067006736 = isPayment(i)
224+ let payment = $t067006736._1
225+ let amount = $t067006736._2
223226 if ((amount != 1))
224227 then throw("No NFT attached")
225228 else {
226229 let nftId = if (isDefined(payment.assetId))
227230 then toBase58String(value(payment.assetId))
228231 else throw("Waves is not a NFT.")
229- let $t067926862 = provideBaseData(i, nftId)
230- let id = $t067926862._1
231- let caller = $t067926862._2
232- let date = $t067926862._3
233- let isValidNFT = $t067926862._4
234- let issuer = $t067926862._5
232+ let $t069226992 = provideBaseData(i, nftId)
233+ let id = $t069226992._1
234+ let caller = $t069226992._2
235+ let date = $t069226992._3
236+ let isValidNFT = $t069226992._4
237+ let issuer = $t069226992._5
235238 if (!(isValidNFT))
236239 then throw("Not a valid nft")
237240 else if ((issuer == signArtArtworksDapp))
238241 then throw("This dApp is only for NFT issued outside SIGN Art dApp.")
239242 else if (!(haveSTD(toString(issuer), nftId)))
240243 then throw("No nft standard found on issuer account")
241244 else if (!(acceptedAssetIds(asset)))
242245 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
243246 else if (!(validateMinSell(price)))
244247 then throw("Wrong minimum sell price")
245248 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)]
246249 }
247250 }
248251
249252
250253
251254 @Callable(i)
252255 func updateSalePrice (nftId,price,asset) = {
253- let $t077717841 = provideBaseData(i, nftId)
254- let id = $t077717841._1
255- let caller = $t077717841._2
256- let date = $t077717841._3
257- let isValidNFT = $t077717841._4
258- let issuer = $t077717841._5
256+ let $t079017971 = provideBaseData(i, nftId)
257+ let id = $t079017971._1
258+ let caller = $t079017971._2
259+ let date = $t079017971._3
260+ let isValidNFT = $t079017971._4
261+ let issuer = $t079017971._5
259262 if (!(isValidNFT))
260263 then throw("Not a valid nft")
261264 else {
262265 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
263266 if ((saleOwner != caller))
264267 then throw("You don't own this NFT")
265268 else {
266269 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
267270 if ((saleStatus != "OPEN"))
268271 then throw("Sale not active")
269272 else if (!(acceptedAssetIds(asset)))
270273 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
271274 else if (!(validateMinSell(price)))
272275 then throw("Wrong minimum sell price")
273276 else {
274277 let saleKey = getSaleKey(caller, nftId, toString(issuer))
275278 let saleInfo = split(getStrByK((saleKey + "_OPEN")), "_")
276279 [StringEntry((saleKey + "_OPEN"), ((((((((((saleInfo[0] + "_") + toString(price)) + "_") + asset) + "_") + saleInfo[3]) + "_") + saleInfo[4]) + "_") + saleInfo[5]))]
277280 }
278281 }
279282 }
280283 }
281284
282285
283286
284287 @Callable(i)
285288 func cancelSale (nftId) = {
286- let $t088939111 = provideBaseData(i, nftId)
287- let id = $t088939111._1
288- let caller = $t088939111._2
289- let date = $t088939111._3
290- let isValidNFT = $t088939111._4
291- let issuer = $t088939111._5
289+ let $t090239241 = provideBaseData(i, nftId)
290+ let id = $t090239241._1
291+ let caller = $t090239241._2
292+ let date = $t090239241._3
293+ let isValidNFT = $t090239241._4
294+ let issuer = $t090239241._5
292295 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
293296 if ((saleOwner != caller))
294297 then throw("You don't own this NFT")
295298 else {
296299 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
297300 if ((saleStatus != "OPEN"))
298301 then throw("Sale not active")
299302 else {
300303 let saleKey = getSaleKey(caller, nftId, toString(issuer))
301304 let saleInfo = getStrByK((saleKey + "_OPEN"))
302305 [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))]
303306 }
304307 }
305308 }
306309
307310
308311
309312 @Callable(i)
310313 func buyNFT (nftId) = {
311- let $t0994210012 = provideBaseData(i, nftId)
312- let id = $t0994210012._1
313- let caller = $t0994210012._2
314- let date = $t0994210012._3
315- let isValidNFT = $t0994210012._4
316- let issuer = $t0994210012._5
314+ let $t01007210142 = provideBaseData(i, nftId)
315+ let id = $t01007210142._1
316+ let caller = $t01007210142._2
317+ let date = $t01007210142._3
318+ let isValidNFT = $t01007210142._4
319+ let issuer = $t01007210142._5
317320 if (!(isValidNFT))
318321 then throw("Not a valid nft")
319322 else {
320323 let saleOwner = getSaleOwnerAndStatus(nftId)
321324 let saleKey = getSaleKey(saleOwner, nftId, toString(issuer))
322325 let saleInfo = getStrByK((saleKey + "_OPEN"))
323326 if ((size(saleInfo) == 0))
324327 then throw("Sale Not found!")
325328 else {
326329 let saleInfoArray = split(saleInfo, "_")
327330 if ((parseInt(saleInfoArray[1]) == 0))
328331 then throw("Offer only")
329332 else {
330- let $t01041110447 = isPayment(i)
331- let payment = $t01041110447._1
332- let amount = $t01041110447._2
333+ let $t01054110577 = isPayment(i)
334+ let payment = $t01054110577._1
335+ let amount = $t01054110577._2
333336 let paymentAssetStr = if (isDefined(payment.assetId))
334337 then toBase58String(value(payment.assetId))
335338 else ""
336339 if (if ((saleInfoArray[1] != toString(amount)))
337340 then true
338341 else (saleInfoArray[2] != paymentAssetStr))
339342 then throw("Payment infos don't match.")
340343 else {
341- let $t01096111068 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
342- let commissions = $t01096111068._1
343- let ownerFee = $t01096111068._2
344- let collectorNFT = $t01096111068._3
344+ let $t01109111198 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
345+ let commissions = $t01109111198._1
346+ let ownerFee = $t01109111198._2
347+ let collectorNFT = $t01109111198._3
345348 [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]
346349 }
347350 }
348351 }
349352 }
350353 }
351354
352355
353356
354357 @Callable(i)
355358 func setOffer (nftId) = {
356- let $t01146711541 = provideBaseData(i, nftId)
357- let id = $t01146711541._1
358- let offerOwner = $t01146711541._2
359- let date = $t01146711541._3
360- let isValidNFT = $t01146711541._4
361- let issuer = $t01146711541._5
359+ let $t01159711671 = provideBaseData(i, nftId)
360+ let id = $t01159711671._1
361+ let offerOwner = $t01159711671._2
362+ let date = $t01159711671._3
363+ let isValidNFT = $t01159711671._4
364+ let issuer = $t01159711671._5
362365 if (!(isValidNFT))
363366 then throw("Not a valid nft")
364367 else {
365- let $t01160211638 = isPayment(i)
366- let payment = $t01160211638._1
367- let amount = $t01160211638._2
368+ let $t01173211768 = isPayment(i)
369+ let payment = $t01173211768._1
370+ let amount = $t01173211768._2
368371 let assetId = if (!(isDefined(payment.assetId)))
369372 then "WAVES"
370373 else toBase58String(value(payment.assetId))
371374 if (!(acceptedAssetIds(assetId)))
372375 then throw("asset not accepted")
373376 else if ((amount == 0))
374377 then throw("Offer of 0 not allowed")
375378 else if (!(validateMinSell(amount)))
376379 then throw("Wrong minimum sell price")
377380 else {
378381 let saleOwner = getSaleOwnerAndStatus(nftId)
379382 [StringEntry((getBidKey(offerOwner, nftId, saleOwner, id) + "_OPEN"), ((((((((((((toString(date) + "_") + toString(amount)) + "_") + assetId) + "_") + nftId) + "_") + toString(issuer)) + "_") + offerOwner) + "_") + id))]
380383 }
381384 }
382385 }
383386
384387
385388
386389 @Callable(i)
387390 func acceptOffer (nftId,offerId,offerOwner) = {
388- let $t01242712497 = provideBaseData(i, nftId)
389- let id = $t01242712497._1
390- let caller = $t01242712497._2
391- let date = $t01242712497._3
392- let isValidNFT = $t01242712497._4
393- let issuer = $t01242712497._5
391+ let $t01255712627 = provideBaseData(i, nftId)
392+ let id = $t01255712627._1
393+ let caller = $t01255712627._2
394+ let date = $t01255712627._3
395+ let isValidNFT = $t01255712627._4
396+ let issuer = $t01255712627._5
394397 if (!(isValidNFT))
395398 then throw("Not a valid nft")
396399 else {
397400 let saleOwner = getSaleOwnerAndStatus(nftId)
398401 if ((caller != saleOwner))
399402 then throw("Only sale owner can accept offer")
400403 else {
401404 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
402- let $t01275112806 = getBidData(bidKey)
403- let bidDataArr = $t01275112806._1
404- let assetId = $t01275112806._2
405- let bidData = $t01275112806._3
405+ let $t01288112936 = getBidData(bidKey)
406+ let bidDataArr = $t01288112936._1
407+ let assetId = $t01288112936._2
408+ let bidData = $t01288112936._3
406409 let saleKey = getSaleKey(saleOwner, nftId, toString(issuer))
407410 let saleInfo = getStrByK((saleKey + "_OPEN"))
408411 if ((size(saleInfo) == 0))
409412 then throw("Sale Not found!")
410413 else {
411414 let amount = value(parseInt(bidDataArr[1]))
412- let $t01304213148 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
413- let commissions = $t01304213148._1
414- let ownerFee = $t01304213148._2
415- let collectorNFT = $t01304213148._3
415+ let $t01317213278 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
416+ let commissions = $t01317213278._1
417+ let ownerFee = $t01317213278._2
418+ let collectorNFT = $t01317213278._3
416419 let assetIdStr = if (isDefined(assetId))
417420 then toBase58String(value(assetId))
418421 else "WAVES"
419422 [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]
420423 }
421424 }
422425 }
423426 }
424427
425428
426429
427430 @Callable(i)
428431 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
429- let $t01393614010 = idCallerDate(i)
430- let id = $t01393614010._1
431- let caller = $t01393614010._2
432- let date = $t01393614010._3
432+ let $t01406614140 = idCallerDate(i)
433+ let id = $t01406614140._1
434+ let caller = $t01406614140._2
435+ let date = $t01406614140._3
433436 if (if ((caller != offerOwner))
434437 then (caller != saleOwner)
435438 else false)
436439 then throw("You cannot cancel this offer.")
437440 else {
438441 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
439- let $t01418214237 = getBidData(bidKey)
440- let bidDataArr = $t01418214237._1
441- let assetId = $t01418214237._2
442- let bidData = $t01418214237._3
442+ let $t01431214367 = getBidData(bidKey)
443+ let bidDataArr = $t01431214367._1
444+ let assetId = $t01431214367._2
445+ let bidData = $t01431214367._3
443446 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
444447 }
445448 }
446449
447450

github/deemru/w8io/169f3d6 
110.93 ms