tx · g38CSJCWb58AafANszskhHY6eufugB11GXZw3SDrH8Q

3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz:  -0.01300000 Waves

2024.01.18 09:39 [2936643] smart account 3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz > SELF 0.00000000 Waves

{ "type": 13, "id": "g38CSJCWb58AafANszskhHY6eufugB11GXZw3SDrH8Q", "fee": 1300000, "feeAssetId": null, "timestamp": 1705559968439, "version": 2, "chainId": 84, "sender": "3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz", "senderPublicKey": "9p5EiEVtTgiMBxj67TfVfstKuQs1LHPxoZRiRhyS5oiN", "proofs": [ "4nd5dtbyWyCpc23EVF5qfVYiF71egnpwDxjvo9BRza8LfDmuPirwkeUTdFasX9Z8fgovThU3vnS2giQkJkeE67y3" ], "script": "base64:BgI5CAISBAoCCAgSBAoCBAgSBAoCAQgSBQoDCAEIEgMKAQgSAwoBCBIDCgEIEgUKAwgICBIGCgQICAgILQAHVkVSU0lPTgIFMS4wLjABCWdldFN0ckJ5SwEDa2V5CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFA2tleQIAAAlvcmFjbGVGZWUJAQV2YWx1ZQEJAKYIAQkBCWdldFN0ckJ5SwECD2NvbmZfb3JhY2xlX2ZlZQALZmVlUmVjZWl2ZXIJAQlnZXRTdHJCeUsBAhFjb25mX2ZlZV9yZWNlaXZlcgAPcHV6emxlX2FydF9wb29sCQEJZ2V0U3RyQnlLAQIUY29uZl9wdXp6bGVfYXJ0X3Bvb2wAE3NpZ25BcnRBcnR3b3Jrc0RhcHAJAQV2YWx1ZQEJAKYIAQkBCWdldFN0ckJ5SwECEmNvbmZfYXJ0d29ya3NfZGFwcAARdXNkdFBQQXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhtjb25mX2FjY2VwdGVkX2Fzc2V0X1VTRFRfUFAADmFydEFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIXY29uZl9hY2NlcHRlZF9hc3NldF9BUlQAEXVzZGNQUEFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIbY29uZl9hY2NlcHRlZF9hc3NldF9VU0RDX1BQAA9lYXN0QXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X0VBU1QAEXB1enpsZUFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIaY29uZl9hY2NlcHRlZF9hc3NldF9QVVpaTEUAEGV0aFBQQXNzZXRJZF9zdHIJAQlnZXRTdHJCeUsBAhpjb25mX2FjY2VwdGVkX2Fzc2V0X0VUSF9QUAAQd2F2ZXNBc3NldElkX3N0cgIFV0FWRVMADXVzZHRQUEFzc2V0SWQJANkEAQURdXNkdFBQQXNzZXRJZF9zdHIACmFydEFzc2V0SWQJANkEAQUOYXJ0QXNzZXRJZF9zdHIADXVzZGNQUEFzc2V0SWQJANkEAQURdXNkY1BQQXNzZXRJZF9zdHIAC2Vhc3RBc3NldElkCQDZBAEFD2Vhc3RBc3NldElkX3N0cgANcHV6emxlQXNzZXRJZAkA2QQBBRFwdXp6bGVBc3NldElkX3N0cgAMZXRoUFBBc3NldElkCQDZBAEFEGV0aFBQQXNzZXRJZF9zdHIADHdhdmVzQXNzZXRJZAEAABNhbGxfYWNjZXB0ZWRfYXNzZXRzCQDMCAIFEXVzZHRQUEFzc2V0SWRfc3RyCQDMCAIFDmFydEFzc2V0SWRfc3RyCQDMCAIFEXVzZGNQUEFzc2V0SWRfc3RyCQDMCAIFD2Vhc3RBc3NldElkX3N0cgkAzAgCBRFwdXp6bGVBc3NldElkX3N0cgkAzAgCBRB3YXZlc0Fzc2V0SWRfc3RyCQDMCAIFEGV0aFBQQXNzZXRJZF9zdHIFA25pbAAFY2hyaXMJAQlnZXRTdHJCeUsBAgxjb25mX2FkbWluXzEADmNvbW1pc3Npb25fZmVlAAMADmRhcHBSdW5uaW5nS2V5AhRjb25mX2RhcHBfaXNfcnVubmluZwARbWFpbnRlbmFuY2VNU0dLZXkCFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ5kYXBwUnVubmluZ0tleQYADm1haW50ZW5hbmNlTVNHCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFEW1haW50ZW5hbmNlTVNHS2V5AgAACW51bVNhbGVzSwIJbnVtX3NhbGVzAQlnZXRJbnRCeUsBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAEKZ2V0U2FsZUtleQMGY2FsbGVyBW5mdElkBmlzc3VlcgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDXNhbGUybmRfaW5mb18FBmNhbGxlcgIBXwUFbmZ0SWQCAV8FBmlzc3VlcgEJZ2V0QmlkS2V5BApvZmZlck93bmVyBW5mdElkCXNhbGVPd25lcgdvZmZlcklkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCW9mZmVyMm5kXwUKb2ZmZXJPd25lcgIBXwUFbmZ0SWQCAV8FCXNhbGVPd25lcgIBXwUHb2ZmZXJJZAETZ2V0SW50QnlLRnJvbU9yYWNsZQEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUJb3JhY2xlRmVlBQNrZXkCH0ludGVnZXIgdW5kZWZpbmUgb3IgMCBpbiBvcmFjbGUBDGlkQ2FsbGVyRGF0ZQEBaQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwkAlQoDCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwgFCWxhc3RCbG9jawl0aW1lc3RhbXABCWlzUGF5bWVudAEBaQMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhNObyBwYXltZW50IGF0dGFjaGVkBAdwYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEBmFtb3VudAkBBXZhbHVlAQgFB3BheW1lbnQGYW1vdW50CQCUCgIFB3BheW1lbnQFBmFtb3VudAEKTkZUSXNWYWxpZAEMYXNzZXREZXRhaWxzAwMJAAACCAUMYXNzZXREZXRhaWxzCHF1YW50aXR5AAEJAAACCAUMYXNzZXREZXRhaWxzCGRlY2ltYWxzAAAHCQAAAggFDGFzc2V0RGV0YWlscwpyZWlzc3VhYmxlBwcBEGFjY2VwdGVkQXNzZXRJZHMBB2Fzc2V0SWQDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCBRNhbGxfYWNjZXB0ZWRfYXNzZXRzBQdhc3NldElkCQACAQJAT25seSAkQVJULCBVU0RULVBQLCBVU0RDLVBQLCBFQVNULCBQVVpaTEUsIEVUSCBvciBXQVZFUyBhY2NlcHRlZAYBDWdldEJpZEFzc2V0SWQBB2Fzc2V0SWQDCQAAAgUHYXNzZXRJZAIFV0FWRVMFBHVuaXQJANkEAQUHYXNzZXRJZAEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQVuZnRpZAQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRpZAMJAAACCQCxAgEFCXNhbGVPd25lcgAACQACAQINTkZUIG5vdCBmb3VuZAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUJc2FsZU93bmVyAgFfBQVuZnRpZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAhBORlQgbm90IGZvciBzYWxlBQlzYWxlT3duZXIBCmdldEJpZERhdGEBA2tleQQHYmlkRGF0YQkBCWdldFN0ckJ5SwEJAKwCAgUDa2V5AgVfT1BFTgMJAAACBQdiaWREYXRhAgAJAAIBAg9PZmZlciBub3QgZm91bmQECmJpZERhdGFBcnIJALUJAgUHYmlkRGF0YQIBXwQHYXNzZXRJZAkBDWdldEJpZEFzc2V0SWQBCQCRAwIFCmJpZERhdGFBcnIAAgkAlQoDBQpiaWREYXRhQXJyBQdhc3NldElkBQdiaWREYXRhAQpnZXRCYWxhbmNlAQdhc3NldElkBAckbWF0Y2gwBQdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJAPAHAgUEdGhpcwUBYggJAO8HAQUEdGhpcwlhdmFpbGFibGUBDHNldFRyYW5zZmVycwUGYW1vdW50B2Fzc2V0SWQFbmZ0aWQJc2FsZU93bmVyBmNhbGxlcgQNYW1vdW50Rm9yU2lnbgkAawMFBmFtb3VudAUOY29tbWlzc2lvbl9mZWUAZAQOYW1vdW50Rm9yT3duZXIJAGUCBQZhbW91bnQFDWFtb3VudEZvclNpZ24EImFtb3VudF9jb21taXNzaW9uX2Zvcl9zaWduX3RvX3N3YXAFDWFtb3VudEZvclNpZ24EEWFtb3VudF9hcnRfYmVmb3JlCQEKZ2V0QmFsYW5jZQEFCmFydEFzc2V0SWQDCQAAAgURYW1vdW50X2FydF9iZWZvcmUFEWFtb3VudF9hcnRfYmVmb3JlBA9zd2FwX2ZlZV90b19hcnQDCQECIT0CBQdhc3NldElkBQphcnRBc3NldElkCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQ9wdXp6bGVfYXJ0X3Bvb2wCBHN3YXAJAMwIAgUOYXJ0QXNzZXRJZF9zdHIJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB2Fzc2V0SWQFImFtb3VudF9jb21taXNzaW9uX2Zvcl9zaWduX3RvX3N3YXAFA25pbAUEdW5pdAMJAAACBQ9zd2FwX2ZlZV90b19hcnQFD3N3YXBfZmVlX3RvX2FydAQQYW1vdW50X2FydF9hZnRlcgkBCmdldEJhbGFuY2UBBQphcnRBc3NldElkAwkAAAIFEGFtb3VudF9hcnRfYWZ0ZXIFEGFtb3VudF9hcnRfYWZ0ZXIEC2NvbW1pc3Npb25zCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQULZmVlUmVjZWl2ZXIDCQAAAgUHYXNzZXRJZAUKYXJ0QXNzZXRJZAUNYW1vdW50Rm9yU2lnbgkAZQIFEGFtb3VudF9hcnRfYWZ0ZXIFEWFtb3VudF9hcnRfYmVmb3JlBQphcnRBc3NldElkBAhvd25lckZlZQkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFCXNhbGVPd25lcgUOYW1vdW50Rm9yT3duZXIFB2Fzc2V0SWQEDGNvbGxlY3Rvck5GVAkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCQDZBAEFBW5mdGlkCQCVCgMFC2NvbW1pc3Npb25zBQhvd25lckZlZQUMY29sbGVjdG9yTkZUCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQ92YWxpZGF0ZU1pblNlbGwBBXByaWNlAwkAZgIAAAUFcHJpY2UJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UGAQ9wcm92aWRlQmFzZURhdGECAWkFbmZ0SWQECyR0MDUxOTU1MjM1CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQskdDA1MTk1NTIzNQJfMQQGY2FsbGVyCAULJHQwNTE5NTUyMzUCXzIEBGRhdGUIBQskdDA1MTk1NTIzNQJfMwQMYXNzZXREZXRhaWxzCQEFdmFsdWUBCQDsBwEJANkEAQUFbmZ0SWQECmlzVmFsaWRORlQJAQpORlRJc1ZhbGlkAQUMYXNzZXREZXRhaWxzCQCXCgUFAmlkBQZjYWxsZXIFBGRhdGUFCmlzVmFsaWRORlQIBQxhc3NldERldGFpbHMGaXNzdWVyAQ51cGRhdGVOdW1TYWxlcwAECG51bVNhbGVzCQEJZ2V0SW50QnlLAQUJbnVtU2FsZXNLCQEMSW50ZWdlckVudHJ5AgUJbnVtU2FsZXNLCQBkAgUIbnVtU2FsZXMAAQEHaGF2ZVNURAIGaXNzdWVyBm5kZnRJZAQIZGF0YV9jaWQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgkBB0FkZHJlc3MBCQDZBAEFBmlzc3VlcgkArAICCQCsAgICCHN0ZF9uZnRfBQZuZGZ0SWQCBF9jaWQCAAQJZGF0YV9qc29uCQELdmFsdWVPckVsc2UCCQCdCAIJAQdBZGRyZXNzAQkA2QQBBQZpc3N1ZXIJAKwCAgkArAICAghzdGRfbmZ0XwUGbmRmdElkAgVfanNvbgIAAwkBAiE9AgUIZGF0YV9jaWQCAAYJAQIhPQIFCWRhdGFfanNvbgIACQZpbnZva2UBB3NldENvbmYCA2tleQN2YWwEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDCQEIY29udGFpbnMCBQNrZXkCBWNvbmZfCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwJAAIBAiBFbnRyaWVzIHN0YXJ0aW5nIHdpdGggY29uZl8gb25seQkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMGaW52b2tlAQphcHBSdW5uaW5nAgZpc0xpdmUHbWVzc2FnZQQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyBAJpZAkA2AQBCAUGaW52b2tlDXRyYW5zYWN0aW9uSWQDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBQ5kYXBwUnVubmluZ0tleQUGaXNMaXZlCQDMCAIJAQtTdHJpbmdFbnRyeQIFEW1haW50ZW5hbmNlTVNHS2V5BQdtZXNzYWdlBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzAWkBB3NlbGxORlQCBXByaWNlBWFzc2V0BAskdDA2NzAwNjczNgkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQskdDA2NzAwNjczNgJfMQQGYW1vdW50CAULJHQwNjcwMDY3MzYCXzIDCQECIT0CBQZhbW91bnQAAQkAAgECD05vIE5GVCBhdHRhY2hlZAQFbmZ0SWQDCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkCQACAQITV2F2ZXMgaXMgbm90IGEgTkZULgQLJHQwNjkyMjY5OTIJAQ9wcm92aWRlQmFzZURhdGECBQFpBQVuZnRJZAQCaWQIBQskdDA2OTIyNjk5MgJfMQQGY2FsbGVyCAULJHQwNjkyMjY5OTICXzIEBGRhdGUIBQskdDA2OTIyNjk5MgJfMwQKaXNWYWxpZE5GVAgFCyR0MDY5MjI2OTkyAl80BAZpc3N1ZXIIBQskdDA2OTIyNjk5MgJfNQMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAMJAAACBQZpc3N1ZXIFE3NpZ25BcnRBcnR3b3Jrc0RhcHAJAAIBAjdUaGlzIGRBcHAgaXMgb25seSBmb3IgTkZUIGlzc3VlZCBvdXRzaWRlIFNJR04gQXJ0IGRBcHAuAwkBASEBCQEHaGF2ZVNURAIJAKUIAQUGaXNzdWVyBQVuZnRJZAkAAgECJ05vIG5mdCBzdGFuZGFyZCBmb3VuZCBvbiBpc3N1ZXIgYWNjb3VudAQHYXNzZXRJZAMJAGYCCQCxAgEFBWFzc2V0AAAFBWFzc2V0AgVXQVZFUwMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQdhc3NldElkCQACAQJAT25seSAkQVJULCBVU0RULVBQLCBVU0RDLVBQLCBFQVNULCBQVVpaTEUsIEVUSCBvciBXQVZFUyBhY2NlcHRlZAMJAQEhAQkBD3ZhbGlkYXRlTWluU2VsbAEFBXByaWNlCQACAQIYV3JvbmcgbWluaW11bSBzZWxsIHByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkBCmdldFNhbGVLZXkDBQZjYWxsZXIFBW5mdElkCQClCAEFBmlzc3VlcgIFX09QRU4JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkApAMBBQRkYXRlAgFfCQCkAwEFBXByaWNlAgFfBQdhc3NldElkAgFfBQVuZnRJZAIBXwkApQgBBQZpc3N1ZXICAV8FAmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAIET1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkBQZjYWxsZXIFA25pbAFpAQ91cGRhdGVTYWxlUHJpY2UDBW5mdElkBXByaWNlBWFzc2V0BAskdDA3OTY4ODAzOAkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFCyR0MDc5Njg4MDM4Al8xBAZjYWxsZXIIBQskdDA3OTY4ODAzOAJfMgQEZGF0ZQgFCyR0MDc5Njg4MDM4Al8zBAppc1ZhbGlkTkZUCAULJHQwNzk2ODgwMzgCXzQEBmlzc3VlcggFCyR0MDc5Njg4MDM4Al81AwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0BAlzYWxlT3duZXIJAQlnZXRTdHJCeUsBCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkAwkBAiE9AgUJc2FsZU93bmVyBQZjYWxsZXIJAAIBAhZZb3UgZG9uJ3Qgb3duIHRoaXMgTkZUBApzYWxlU3RhdHVzCQEJZ2V0U3RyQnlLAQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQZjYWxsZXICAV8FBW5mdElkAwkBAiE9AgUKc2FsZVN0YXR1cwIET1BFTgkAAgECD1NhbGUgbm90IGFjdGl2ZQQHYXNzZXRJZAMJAGYCCQCxAgEFBWFzc2V0AAAFBWFzc2V0AgVXQVZFUwMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQdhc3NldElkCQACAQJAT25seSAkQVJULCBVU0RULVBQLCBVU0RDLVBQLCBFQVNULCBQVVpaTEUsIEVUSCBvciBXQVZFUyBhY2NlcHRlZAMJAQEhAQkBD3ZhbGlkYXRlTWluU2VsbAEFBXByaWNlCQACAQIYV3JvbmcgbWluaW11bSBzZWxsIHByaWNlBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQMFBmNhbGxlcgUFbmZ0SWQJAKUIAQUGaXNzdWVyBAhzYWxlSW5mbwkAtQkCCQEJZ2V0U3RyQnlLAQkArAICBQdzYWxlS2V5AgVfT1BFTgIBXwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAJEDAgUIc2FsZUluZm8AAAIBXwkApAMBBQVwcmljZQIBXwUHYXNzZXRJZAIBXwkAkQMCBQhzYWxlSW5mbwADAgFfCQCRAwIFCHNhbGVJbmZvAAQCAV8JAJEDAgUIc2FsZUluZm8ABQUDbmlsAWkBCmNhbmNlbFNhbGUBBW5mdElkBAskdDA5MTU3OTM3NQkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFCyR0MDkxNTc5Mzc1Al8xBAZjYWxsZXIIBQskdDA5MTU3OTM3NQJfMgQEZGF0ZQgFCyR0MDkxNTc5Mzc1Al8zBAppc1ZhbGlkTkZUCAULJHQwOTE1NzkzNzUCXzQEBmlzc3VlcggFCyR0MDkxNTc5Mzc1Al81BAlzYWxlT3duZXIJAQlnZXRTdHJCeUsBCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkAwkBAiE9AgUJc2FsZU93bmVyBQZjYWxsZXIJAAIBAhZZb3UgZG9uJ3Qgb3duIHRoaXMgTkZUBApzYWxlU3RhdHVzCQEJZ2V0U3RyQnlLAQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQZjYWxsZXICAV8FBW5mdElkAwkBAiE9AgUKc2FsZVN0YXR1cwIET1BFTgkAAgECD1NhbGUgbm90IGFjdGl2ZQQHc2FsZUtleQkBCmdldFNhbGVLZXkDBQZjYWxsZXIFBW5mdElkCQClCAEFBmlzc3VlcgQIc2FsZUluZm8JAQlnZXRTdHJCeUsBCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQZjYWxsZXICAV8FBW5mdElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHc2FsZUtleQIBXwUCaWQCCl9DQU5DRUxMRUQJAKwCAgkArAICCQCsAgIJAKwCAgUIc2FsZUluZm8CC19DQU5DRUxMRURfCQCkAwEFBGRhdGUCAV8FAmlkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIAAQkA2QQBBQVuZnRJZAUDbmlsAWkBBmJ1eU5GVAEFbmZ0SWQEDSR0MDEwMjA2MTAyNzYJAQ9wcm92aWRlQmFzZURhdGECBQFpBQVuZnRJZAQCaWQIBQ0kdDAxMDIwNjEwMjc2Al8xBAZjYWxsZXIIBQ0kdDAxMDIwNjEwMjc2Al8yBARkYXRlCAUNJHQwMTAyMDYxMDI3NgJfMwQKaXNWYWxpZE5GVAgFDSR0MDEwMjA2MTAyNzYCXzQEBmlzc3VlcggFDSR0MDEwMjA2MTAyNzYCXzUDCQEBIQEFCmlzVmFsaWRORlQJAAIBAg9Ob3QgYSB2YWxpZCBuZnQECXNhbGVPd25lcgkBFWdldFNhbGVPd25lckFuZFN0YXR1cwEFBW5mdElkBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQMFCXNhbGVPd25lcgUFbmZ0SWQJAKUIAQUGaXNzdWVyBAhzYWxlSW5mbwkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4DCQAAAgkAsQIBBQhzYWxlSW5mbwAACQACAQIPU2FsZSBOb3QgZm91bmQhBA1zYWxlSW5mb0FycmF5CQC1CQIFCHNhbGVJbmZvAgFfAwkAAAIJALYJAQkAkQMCBQ1zYWxlSW5mb0FycmF5AAEAAAkAAgECCk9mZmVyIG9ubHkEDSR0MDEwNjc1MTA3MTEJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAUNJHQwMTA2NzUxMDcxMQJfMQQGYW1vdW50CAUNJHQwMTA2NzUxMDcxMQJfMgQPcGF5bWVudEFzc2V0U3RyAwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAIFV0FWRVMDAwkBAiE9AgkAkQMCBQ1zYWxlSW5mb0FycmF5AAEJAKQDAQUGYW1vdW50BgkBAiE9AgkAkQMCBQ1zYWxlSW5mb0FycmF5AAIFD3BheW1lbnRBc3NldFN0cgkAAgECGlBheW1lbnQgaW5mb3MgZG9uJ3QgbWF0Y2guBA0kdDAxMTIzMDExMzM3CQEMc2V0VHJhbnNmZXJzBQUGYW1vdW50CAUHcGF5bWVudAdhc3NldElkBQVuZnRJZAUJc2FsZU93bmVyBQZjYWxsZXIEC2NvbW1pc3Npb25zCAUNJHQwMTEyMzAxMTMzNwJfMQQIb3duZXJGZWUIBQ0kdDAxMTIzMDExMzM3Al8yBAxjb2xsZWN0b3JORlQIBQ0kdDAxMTIzMDExMzM3Al8zCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQlzYWxlT3duZXICAV8FBW5mdElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHc2FsZUtleQIBXwUCaWQCB19DTE9TRUQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAIBXwUGY2FsbGVyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUIb3duZXJGZWUJAMwIAgUMY29sbGVjdG9yTkZUCQDMCAIFC2NvbW1pc3Npb25zBQNuaWwBaQEIc2V0T2ZmZXIBBW5mdElkBA0kdDAxMTczNjExODEwCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTE3MzYxMTgxMAJfMQQKb2ZmZXJPd25lcggFDSR0MDExNzM2MTE4MTACXzIEBGRhdGUIBQ0kdDAxMTczNjExODEwAl8zBAppc1ZhbGlkTkZUCAUNJHQwMTE3MzYxMTgxMAJfNAQGaXNzdWVyCAUNJHQwMTE3MzYxMTgxMAJfNQMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAQNJHQwMTE4NzExMTkwNwkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQ0kdDAxMTg3MTExOTA3Al8xBAZhbW91bnQIBQ0kdDAxMTg3MTExOTA3Al8yBAdhc3NldElkAwkBASEBCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAIFV0FWRVMJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQdhc3NldElkCQACAQISYXNzZXQgbm90IGFjY2VwdGVkAwkAAAIFBmFtb3VudAAACQACAQIWT2ZmZXIgb2YgMCBub3QgYWxsb3dlZAMJAQEhAQkBD3ZhbGlkYXRlTWluU2VsbAEFBmFtb3VudAkAAgECGFdyb25nIG1pbmltdW0gc2VsbCBwcmljZQQJc2FsZU93bmVyCQEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQEJZ2V0QmlkS2V5BAUKb2ZmZXJPd25lcgUFbmZ0SWQFCXNhbGVPd25lcgUCaWQCBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCkAwEFBGRhdGUCAV8JAKQDAQUGYW1vdW50AgFfBQdhc3NldElkAgFfBQVuZnRJZAIBXwkApQgBBQZpc3N1ZXICAV8FCm9mZmVyT3duZXICAV8FAmlkBQNuaWwBaQELYWNjZXB0T2ZmZXIDBW5mdElkB29mZmVySWQKb2ZmZXJPd25lcgQNJHQwMTI2OTYxMjc2NgkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFDSR0MDEyNjk2MTI3NjYCXzEEBmNhbGxlcggFDSR0MDEyNjk2MTI3NjYCXzIEBGRhdGUIBQ0kdDAxMjY5NjEyNzY2Al8zBAppc1ZhbGlkTkZUCAUNJHQwMTI2OTYxMjc2NgJfNAQGaXNzdWVyCAUNJHQwMTI2OTYxMjc2NgJfNQMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAQJc2FsZU93bmVyCQEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQUFbmZ0SWQDCQECIT0CBQZjYWxsZXIFCXNhbGVPd25lcgkAAgECIE9ubHkgc2FsZSBvd25lciBjYW4gYWNjZXB0IG9mZmVyBAZiaWRLZXkJAQlnZXRCaWRLZXkEBQpvZmZlck93bmVyBQVuZnRJZAUJc2FsZU93bmVyBQdvZmZlcklkBA0kdDAxMzAyMDEzMDc1CQEKZ2V0QmlkRGF0YQEFBmJpZEtleQQKYmlkRGF0YUFycggFDSR0MDEzMDIwMTMwNzUCXzEEB2Fzc2V0SWQIBQ0kdDAxMzAyMDEzMDc1Al8yBAdiaWREYXRhCAUNJHQwMTMwMjAxMzA3NQJfMwQHc2FsZUtleQkBCmdldFNhbGVLZXkDBQlzYWxlT3duZXIFBW5mdElkCQClCAEFBmlzc3VlcgQIc2FsZUluZm8JAQlnZXRTdHJCeUsBCQCsAgIFB3NhbGVLZXkCBV9PUEVOAwkAAAIJALECAQUIc2FsZUluZm8AAAkAAgECD1NhbGUgTm90IGZvdW5kIQQGYW1vdW50CQEFdmFsdWUBCQC2CQEJAJEDAgUKYmlkRGF0YUFycgABBA0kdDAxMzMxMTEzNDE3CQEMc2V0VHJhbnNmZXJzBQUGYW1vdW50BQdhc3NldElkBQVuZnRJZAUJc2FsZU93bmVyCQCRAwIFCmJpZERhdGFBcnIABgQLY29tbWlzc2lvbnMIBQ0kdDAxMzMxMTEzNDE3Al8xBAhvd25lckZlZQgFDSR0MDEzMzExMTM0MTcCXzIEDGNvbGxlY3Rvck5GVAgFDSR0MDEzMzExMTM0MTcCXzMECmFzc2V0SWRTdHIDCQEJaXNEZWZpbmVkAQUHYXNzZXRJZAkA2AQBCQEFdmFsdWUBBQdhc3NldElkAgVXQVZFUwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUGYmlkS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FCXNhbGVPd25lcgIBXwUFbmZ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBmJpZEtleQIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICBQdiaWREYXRhAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQdzYWxlS2V5AgFfBQJpZAIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQhzYWxlSW5mbwIOX0NMT1NFRC1PRkZFUl8JAKQDAQUEZGF0ZQIBXwUCaWQCAV8FCm9mZmVyT3duZXICAV8JAKQDAQUGYW1vdW50AgFfBQphc3NldElkU3RyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUIb3duZXJGZWUJAMwIAgUMY29sbGVjdG9yTkZUCQDMCAIFC2NvbW1pc3Npb25zBQNuaWwBaQELY2FuY2VsT2ZmZXIEBW5mdElkB29mZmVySWQKb2ZmZXJPd25lcglzYWxlT3duZXIEDSR0MDE0MjA1MTQyNzkJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDE0MjA1MTQyNzkCXzEEBmNhbGxlcggFDSR0MDE0MjA1MTQyNzkCXzIEBGRhdGUIBQ0kdDAxNDIwNTE0Mjc5Al8zAwMJAQIhPQIFBmNhbGxlcgUKb2ZmZXJPd25lcgkBAiE9AgUGY2FsbGVyBQlzYWxlT3duZXIHCQACAQIdWW91IGNhbm5vdCBjYW5jZWwgdGhpcyBvZmZlci4EBmJpZEtleQkBCWdldEJpZEtleQQFCm9mZmVyT3duZXIFBW5mdElkBQlzYWxlT3duZXIFB29mZmVySWQEDSR0MDE0NDUxMTQ1MDYJAQpnZXRCaWREYXRhAQUGYmlkS2V5BApiaWREYXRhQXJyCAUNJHQwMTQ0NTExNDUwNgJfMQQHYXNzZXRJZAgFDSR0MDE0NDUxMTQ1MDYCXzIEB2JpZERhdGEIBQ0kdDAxNDQ1MTE0NTA2Al8zCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUGYmlkS2V5AgVfT1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBmJpZEtleQIKX0NBTkNFTExFRAkArAICCQCsAgIJAKwCAgkArAICBQdiaWREYXRhAgtfQ0FOQ0VMTEVEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKYmlkRGF0YUFycgABBQdhc3NldElkBQNuaWwAUkN/eg==", "height": 2936643, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: H3DWjkznvZfxRAjQXMqJqiDDyUP2CdTAgARUBUnj2iXg Next: none Diff:
OldNewDifferences
244244 then throw("This dApp is only for NFT issued outside SIGN Art dApp.")
245245 else if (!(az(toString(H), G)))
246246 then throw("No nft standard found on issuer account")
247- else if (!(U(aH)))
248- then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
249- else if (!(aq(ar)))
250- then throw("Wrong minimum sell price")
251- else [StringEntry((E(F, G, toString(H)) + "_OPEN"), ((((((((((toString(av) + "_") + toString(ar)) + "_") + aH) + "_") + G) + "_") + toString(H)) + "_") + au)), StringEntry(((("sale2nd_status_" + F) + "_") + G), "OPEN"), StringEntry(("current_owner_on_dapp_" + G), F)]
247+ else {
248+ let V = if ((size(aH) > 0))
249+ then aH
250+ else "WAVES"
251+ if (!(U(V)))
252+ then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
253+ else if (!(aq(ar)))
254+ then throw("Wrong minimum sell price")
255+ else [StringEntry((E(F, G, toString(H)) + "_OPEN"), ((((((((((toString(av) + "_") + toString(ar)) + "_") + V) + "_") + G) + "_") + toString(H)) + "_") + au)), StringEntry(((("sale2nd_status_" + F) + "_") + G), "OPEN"), StringEntry(("current_owner_on_dapp_" + G), F)]
256+ }
252257 }
253258 }
254259
272277 let Z = b(((("sale2nd_status_" + F) + "_") + G))
273278 if ((Z != "OPEN"))
274279 then throw("Sale not active")
275- else if (!(U(aH)))
276- then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
277- else if (!(aq(ar)))
278- then throw("Wrong minimum sell price")
279- else {
280- let aL = E(F, G, toString(H))
281- let aM = split(b((aL + "_OPEN")), "_")
282-[StringEntry((aL + "_OPEN"), ((((((((((aM[0] + "_") + toString(ar)) + "_") + aH) + "_") + aM[3]) + "_") + aM[4]) + "_") + aM[5]))]
283- }
280+ else {
281+ let V = if ((size(aH) > 0))
282+ then aH
283+ else "WAVES"
284+ if (!(U(V)))
285+ then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
286+ else if (!(aq(ar)))
287+ then throw("Wrong minimum sell price")
288+ else {
289+ let aL = E(F, G, toString(H))
290+ let aM = split(b((aL + "_OPEN")), "_")
291+[StringEntry((aL + "_OPEN"), ((((((((((aM[0] + "_") + toString(ar)) + "_") + V) + "_") + aM[3]) + "_") + aM[4]) + "_") + aM[5]))]
292+ }
293+ }
284294 }
285295 }
286296 }
338348 let R = aQ._2
339349 let aR = if (isDefined(Q.assetId))
340350 then toBase58String(value(Q.assetId))
341- else ""
351+ else "WAVES"
342352 if (if ((aP[1] != toString(R)))
343353 then true
344354 else (aP[2] != aR))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0.0"
55
66 func b (c) = valueOrElse(getString(this, c), "")
77
88
99 let d = value(addressFromString(b("conf_oracle_fee")))
1010
1111 let e = b("conf_fee_receiver")
1212
1313 let f = b("conf_puzzle_art_pool")
1414
1515 let g = value(addressFromString(b("conf_artworks_dapp")))
1616
1717 let h = b("conf_accepted_asset_USDT_PP")
1818
1919 let i = b("conf_accepted_asset_ART")
2020
2121 let j = b("conf_accepted_asset_USDC_PP")
2222
2323 let k = b("conf_accepted_asset_EAST")
2424
2525 let l = b("conf_accepted_asset_PUZZLE")
2626
2727 let m = b("conf_accepted_asset_ETH_PP")
2828
2929 let n = "WAVES"
3030
3131 let o = fromBase58String(h)
3232
3333 let p = fromBase58String(i)
3434
3535 let q = fromBase58String(j)
3636
3737 let r = fromBase58String(k)
3838
3939 let s = fromBase58String(l)
4040
4141 let t = fromBase58String(m)
4242
4343 let u = base58''
4444
4545 let v = [h, i, j, k, l, n, m]
4646
4747 let w = b("conf_admin_1")
4848
4949 let x = 3
5050
5151 let y = "conf_dapp_is_running"
5252
5353 let z = "conf_maintenance_msg"
5454
5555 let A = valueOrElse(getBoolean(this, y), true)
5656
5757 let B = valueOrElse(getString(this, z), "")
5858
5959 let C = "num_sales"
6060
6161 func D (c) = valueOrElse(getInteger(this, c), 0)
6262
6363
6464 func E (F,G,H) = ((((("sale2nd_info_" + F) + "_") + G) + "_") + H)
6565
6666
6767 func I (J,G,K,L) = ((((((("offer2nd_" + J) + "_") + G) + "_") + K) + "_") + L)
6868
6969
7070 func M (c) = valueOrErrorMessage(getInteger(d, c), "Integer undefine or 0 in oracle")
7171
7272
7373 func N (O) = if (!(A))
7474 then throw(B)
7575 else $Tuple3(toBase58String(O.transactionId), toBase58String(O.caller.bytes), lastBlock.timestamp)
7676
7777
7878 func P (O) = if ((size(O.payments) == 0))
7979 then throw("No payment attached")
8080 else {
8181 let Q = value(O.payments[0])
8282 let R = value(Q.amount)
8383 $Tuple2(Q, R)
8484 }
8585
8686
8787 func S (T) = if (if ((T.quantity == 1))
8888 then (T.decimals == 0)
8989 else false)
9090 then (T.reissuable == false)
9191 else false
9292
9393
9494 func U (V) = if (!(containsElement(v, V)))
9595 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
9696 else true
9797
9898
9999 func W (V) = if ((V == "WAVES"))
100100 then unit
101101 else fromBase58String(V)
102102
103103
104104 func X (Y) = {
105105 let K = b(("current_owner_on_dapp_" + Y))
106106 if ((size(K) == 0))
107107 then throw("NFT not found")
108108 else {
109109 let Z = b(((("sale2nd_status_" + K) + "_") + Y))
110110 if ((Z != "OPEN"))
111111 then throw("NFT not for sale")
112112 else K
113113 }
114114 }
115115
116116
117117 func aa (c) = {
118118 let ab = b((c + "_OPEN"))
119119 if ((ab == ""))
120120 then throw("Offer not found")
121121 else {
122122 let ac = split(ab, "_")
123123 let V = W(ac[2])
124124 $Tuple3(ac, V, ab)
125125 }
126126 }
127127
128128
129129 func ad (V) = {
130130 let ae = V
131131 if ($isInstanceOf(ae, "ByteVector"))
132132 then {
133133 let af = ae
134134 assetBalance(this, af)
135135 }
136136 else wavesBalance(this).available
137137 }
138138
139139
140140 func ag (R,V,Y,K,F) = {
141141 let ah = fraction(R, x, 100)
142142 let ai = (R - ah)
143143 let aj = ah
144144 let ak = ad(p)
145145 if ((ak == ak))
146146 then {
147147 let al = if ((V != p))
148148 then invoke(Address(fromBase58String(f)), "swap", [i, 1], [AttachedPayment(V, aj)])
149149 else unit
150150 if ((al == al))
151151 then {
152152 let am = ad(p)
153153 if ((am == am))
154154 then {
155155 let an = ScriptTransfer(Address(fromBase58String(e)), if ((V == p))
156156 then ah
157157 else (am - ak), p)
158158 let ao = ScriptTransfer(Address(fromBase58String(K)), ai, V)
159159 let ap = ScriptTransfer(Address(fromBase58String(F)), 1, fromBase58String(Y))
160160 $Tuple3(an, ao, ap)
161161 }
162162 else throw("Strict value is not equal to itself.")
163163 }
164164 else throw("Strict value is not equal to itself.")
165165 }
166166 else throw("Strict value is not equal to itself.")
167167 }
168168
169169
170170 func aq (ar) = if ((0 > ar))
171171 then throw("Wrong minimum sell price")
172172 else true
173173
174174
175175 func as (O,G) = {
176176 let at = N(O)
177177 let au = at._1
178178 let F = at._2
179179 let av = at._3
180180 let T = value(assetInfo(fromBase58String(G)))
181181 let aw = S(T)
182182 $Tuple5(au, F, av, aw, T.issuer)
183183 }
184184
185185
186186 func ax () = {
187187 let ay = D(C)
188188 IntegerEntry(C, (ay + 1))
189189 }
190190
191191
192192 func az (H,aA) = {
193193 let aB = valueOrElse(getString(Address(fromBase58String(H)), (("std_nft_" + aA) + "_cid")), "")
194194 let aC = valueOrElse(getString(Address(fromBase58String(H)), (("std_nft_" + aA) + "_json")), "")
195195 if ((aB != ""))
196196 then true
197197 else (aC != "")
198198 }
199199
200200
201201 @Callable(aD)
202202 func setConf (c,aE) = {
203203 let F = toString(aD.caller)
204204 if (containsElement([w, toString(this)], F))
205205 then if (contains(c, "conf_"))
206206 then [StringEntry(c, aE)]
207207 else throw("Entries starting with conf_ only")
208208 else throw("You are not allowed to change this")
209209 }
210210
211211
212212
213213 @Callable(aD)
214214 func appRunning (aF,aG) = {
215215 let F = toString(aD.caller)
216216 let au = toBase58String(aD.transactionId)
217217 if (containsElement([w, toString(this)], F))
218218 then [BooleanEntry(y, aF), StringEntry(z, aG)]
219219 else throw("You are not allowed to change this")
220220 }
221221
222222
223223
224224 @Callable(O)
225225 func sellNFT (ar,aH) = {
226226 let aI = P(O)
227227 let Q = aI._1
228228 let R = aI._2
229229 if ((R != 1))
230230 then throw("No NFT attached")
231231 else {
232232 let G = if (isDefined(Q.assetId))
233233 then toBase58String(value(Q.assetId))
234234 else throw("Waves is not a NFT.")
235235 let aJ = as(O, G)
236236 let au = aJ._1
237237 let F = aJ._2
238238 let av = aJ._3
239239 let aw = aJ._4
240240 let H = aJ._5
241241 if (!(aw))
242242 then throw("Not a valid nft")
243243 else if ((H == g))
244244 then throw("This dApp is only for NFT issued outside SIGN Art dApp.")
245245 else if (!(az(toString(H), G)))
246246 then throw("No nft standard found on issuer account")
247- else if (!(U(aH)))
248- then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
249- else if (!(aq(ar)))
250- then throw("Wrong minimum sell price")
251- else [StringEntry((E(F, G, toString(H)) + "_OPEN"), ((((((((((toString(av) + "_") + toString(ar)) + "_") + aH) + "_") + G) + "_") + toString(H)) + "_") + au)), StringEntry(((("sale2nd_status_" + F) + "_") + G), "OPEN"), StringEntry(("current_owner_on_dapp_" + G), F)]
247+ else {
248+ let V = if ((size(aH) > 0))
249+ then aH
250+ else "WAVES"
251+ if (!(U(V)))
252+ then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
253+ else if (!(aq(ar)))
254+ then throw("Wrong minimum sell price")
255+ else [StringEntry((E(F, G, toString(H)) + "_OPEN"), ((((((((((toString(av) + "_") + toString(ar)) + "_") + V) + "_") + G) + "_") + toString(H)) + "_") + au)), StringEntry(((("sale2nd_status_" + F) + "_") + G), "OPEN"), StringEntry(("current_owner_on_dapp_" + G), F)]
256+ }
252257 }
253258 }
254259
255260
256261
257262 @Callable(O)
258263 func updateSalePrice (G,ar,aH) = {
259264 let aK = as(O, G)
260265 let au = aK._1
261266 let F = aK._2
262267 let av = aK._3
263268 let aw = aK._4
264269 let H = aK._5
265270 if (!(aw))
266271 then throw("Not a valid nft")
267272 else {
268273 let K = b(("current_owner_on_dapp_" + G))
269274 if ((K != F))
270275 then throw("You don't own this NFT")
271276 else {
272277 let Z = b(((("sale2nd_status_" + F) + "_") + G))
273278 if ((Z != "OPEN"))
274279 then throw("Sale not active")
275- else if (!(U(aH)))
276- then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
277- else if (!(aq(ar)))
278- then throw("Wrong minimum sell price")
279- else {
280- let aL = E(F, G, toString(H))
281- let aM = split(b((aL + "_OPEN")), "_")
282-[StringEntry((aL + "_OPEN"), ((((((((((aM[0] + "_") + toString(ar)) + "_") + aH) + "_") + aM[3]) + "_") + aM[4]) + "_") + aM[5]))]
283- }
280+ else {
281+ let V = if ((size(aH) > 0))
282+ then aH
283+ else "WAVES"
284+ if (!(U(V)))
285+ then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
286+ else if (!(aq(ar)))
287+ then throw("Wrong minimum sell price")
288+ else {
289+ let aL = E(F, G, toString(H))
290+ let aM = split(b((aL + "_OPEN")), "_")
291+[StringEntry((aL + "_OPEN"), ((((((((((aM[0] + "_") + toString(ar)) + "_") + V) + "_") + aM[3]) + "_") + aM[4]) + "_") + aM[5]))]
292+ }
293+ }
284294 }
285295 }
286296 }
287297
288298
289299
290300 @Callable(O)
291301 func cancelSale (G) = {
292302 let aN = as(O, G)
293303 let au = aN._1
294304 let F = aN._2
295305 let av = aN._3
296306 let aw = aN._4
297307 let H = aN._5
298308 let K = b(("current_owner_on_dapp_" + G))
299309 if ((K != F))
300310 then throw("You don't own this NFT")
301311 else {
302312 let Z = b(((("sale2nd_status_" + F) + "_") + G))
303313 if ((Z != "OPEN"))
304314 then throw("Sale not active")
305315 else {
306316 let aL = E(F, G, toString(H))
307317 let aM = b((aL + "_OPEN"))
308318 [DeleteEntry((aL + "_OPEN")), DeleteEntry(((("sale2nd_status_" + F) + "_") + G)), DeleteEntry(("current_owner_on_dapp_" + G)), StringEntry((((aL + "_") + au) + "_CANCELLED"), ((((aM + "_CANCELLED_") + toString(av)) + "_") + au)), ScriptTransfer(Address(fromBase58String(F)), 1, fromBase58String(G))]
309319 }
310320 }
311321 }
312322
313323
314324
315325 @Callable(O)
316326 func buyNFT (G) = {
317327 let aO = as(O, G)
318328 let au = aO._1
319329 let F = aO._2
320330 let av = aO._3
321331 let aw = aO._4
322332 let H = aO._5
323333 if (!(aw))
324334 then throw("Not a valid nft")
325335 else {
326336 let K = X(G)
327337 let aL = E(K, G, toString(H))
328338 let aM = b((aL + "_OPEN"))
329339 if ((size(aM) == 0))
330340 then throw("Sale Not found!")
331341 else {
332342 let aP = split(aM, "_")
333343 if ((parseInt(aP[1]) == 0))
334344 then throw("Offer only")
335345 else {
336346 let aQ = P(O)
337347 let Q = aQ._1
338348 let R = aQ._2
339349 let aR = if (isDefined(Q.assetId))
340350 then toBase58String(value(Q.assetId))
341- else ""
351+ else "WAVES"
342352 if (if ((aP[1] != toString(R)))
343353 then true
344354 else (aP[2] != aR))
345355 then throw("Payment infos don't match.")
346356 else {
347357 let aS = ag(R, Q.assetId, G, K, F)
348358 let an = aS._1
349359 let ao = aS._2
350360 let ap = aS._3
351361 [DeleteEntry((aL + "_OPEN")), DeleteEntry(((("sale2nd_status_" + K) + "_") + G)), DeleteEntry(("current_owner_on_dapp_" + G)), StringEntry((((aL + "_") + au) + "_CLOSED"), ((((((aM + "_CLOSED_") + toString(av)) + "_") + au) + "_") + F)), ax(), ao, ap, an]
352362 }
353363 }
354364 }
355365 }
356366 }
357367
358368
359369
360370 @Callable(O)
361371 func setOffer (G) = {
362372 let aT = as(O, G)
363373 let au = aT._1
364374 let J = aT._2
365375 let av = aT._3
366376 let aw = aT._4
367377 let H = aT._5
368378 if (!(aw))
369379 then throw("Not a valid nft")
370380 else {
371381 let aU = P(O)
372382 let Q = aU._1
373383 let R = aU._2
374384 let V = if (!(isDefined(Q.assetId)))
375385 then "WAVES"
376386 else toBase58String(value(Q.assetId))
377387 if (!(U(V)))
378388 then throw("asset not accepted")
379389 else if ((R == 0))
380390 then throw("Offer of 0 not allowed")
381391 else if (!(aq(R)))
382392 then throw("Wrong minimum sell price")
383393 else {
384394 let K = X(G)
385395 [StringEntry((I(J, G, K, au) + "_OPEN"), ((((((((((((toString(av) + "_") + toString(R)) + "_") + V) + "_") + G) + "_") + toString(H)) + "_") + J) + "_") + au))]
386396 }
387397 }
388398 }
389399
390400
391401
392402 @Callable(O)
393403 func acceptOffer (G,L,J) = {
394404 let aV = as(O, G)
395405 let au = aV._1
396406 let F = aV._2
397407 let av = aV._3
398408 let aw = aV._4
399409 let H = aV._5
400410 if (!(aw))
401411 then throw("Not a valid nft")
402412 else {
403413 let K = X(G)
404414 if ((F != K))
405415 then throw("Only sale owner can accept offer")
406416 else {
407417 let aW = I(J, G, K, L)
408418 let aX = aa(aW)
409419 let ac = aX._1
410420 let V = aX._2
411421 let ab = aX._3
412422 let aL = E(K, G, toString(H))
413423 let aM = b((aL + "_OPEN"))
414424 if ((size(aM) == 0))
415425 then throw("Sale Not found!")
416426 else {
417427 let R = value(parseInt(ac[1]))
418428 let aY = ag(R, V, G, K, ac[6])
419429 let an = aY._1
420430 let ao = aY._2
421431 let ap = aY._3
422432 let aZ = if (isDefined(V))
423433 then toBase58String(value(V))
424434 else "WAVES"
425435 [DeleteEntry((aL + "_OPEN")), DeleteEntry((aW + "_OPEN")), DeleteEntry(((("sale2nd_status_" + K) + "_") + G)), DeleteEntry(("current_owner_on_dapp_" + G)), StringEntry((aW + "_CLOSED"), ((((ab + "_CLOSED_") + toString(av)) + "_") + au)), StringEntry((((aL + "_") + au) + "_CLOSED"), ((((((((((aM + "_CLOSED-OFFER_") + toString(av)) + "_") + au) + "_") + J) + "_") + toString(R)) + "_") + aZ)), ax(), ao, ap, an]
426436 }
427437 }
428438 }
429439 }
430440
431441
432442
433443 @Callable(O)
434444 func cancelOffer (G,L,J,K) = {
435445 let ba = N(O)
436446 let au = ba._1
437447 let F = ba._2
438448 let av = ba._3
439449 if (if ((F != J))
440450 then (F != K)
441451 else false)
442452 then throw("You cannot cancel this offer.")
443453 else {
444454 let aW = I(J, G, K, L)
445455 let bb = aa(aW)
446456 let ac = bb._1
447457 let V = bb._2
448458 let ab = bb._3
449459 [DeleteEntry((aW + "_OPEN")), StringEntry((aW + "_CANCELLED"), ((((ab + "_CANCELLED_") + toString(av)) + "_") + au)), ScriptTransfer(Address(fromBase58String(F)), parseIntValue(ac[1]), V)]
450460 }
451461 }
452462
453463

github/deemru/w8io/169f3d6 
45.87 ms