tx · 5C5mUVEzribAiGDfrMADLN6wszVS2pmM4SS8ewhz2Tp1

3NA8MoNPikwC3J5qFE4bJNyb234chSY61sV:  -0.01900000 Waves

2022.11.05 09:27 [2303441] smart account 3NA8MoNPikwC3J5qFE4bJNyb234chSY61sV > SELF 0.00000000 Waves

{ "type": 13, "id": "5C5mUVEzribAiGDfrMADLN6wszVS2pmM4SS8ewhz2Tp1", "fee": 1900000, "feeAssetId": null, "timestamp": 1667629683902, "version": 2, "chainId": 84, "sender": "3NA8MoNPikwC3J5qFE4bJNyb234chSY61sV", "senderPublicKey": "9DhkQ7ZkQPRhQPKPcvpn8J9G9kBWYmZaLGNFxUzf1UJd", "proofs": [ "5XQnW7eUtQEq6gF4RbUhZ4yqPWWjNQDV4tcVaSq32CJvALacNnC7Jxh8Dzse4akt6W27b1a8tc89Pbm2Pci2PzhJ" ], "script": "base64:BgI4CAISBAoCCAgSBAoCBAgSAwoBARIECgIIARIDCgEIEgMKAQgSAwoBCBIFCgMICAgSBwoFCAgICAgoAAdWRVJTSU9OAgUxLjAuMAEJZ2V0U3RyQnlLAQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABCWdldEludEJ5SwEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAAtmZWVSZWNlaXZlcgkBCWdldFN0ckJ5SwECEWNvbmZfZmVlX3JlY2VpdmVyAApldmVudHNEYXBwCQEFdmFsdWUBCQCmCAEJAQlnZXRTdHJCeUsBAhBjb25mX2V2ZW50c19kYXBwAAh1c2VyRGFwcAkBBXZhbHVlAQkApggBCQEJZ2V0U3RyQnlLAQIPY29uZl91c2Vyc19kYXBwAAdzaWduQ3V0CQEJZ2V0SW50QnlLAQIMY29uZl9zaWduY3V0AAtzaWduQXNzZXRJZAkA2QQBCQEJZ2V0U3RyQnlLAQIYY29uZl9hY2NlcHRlZF9hc3NldF9TSUdOAAVjaHJpcwkBCWdldFN0ckJ5SwECDGNvbmZfYWRtaW5fMQANdXNlclN1c3BlbmRlZAIJU1VTUEVOREVEAAxldmVudElsbGVnYWwCB0lMTEVHQUwADmV2ZW50U3VzcGVuZGVkAglTVVNQRU5ERUQADmRhcHBSdW5uaW5nS2V5AhRjb25mX2RhcHBfaXNfcnVubmluZwARbWFpbnRlbmFuY2VNU0dLZXkCFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ5kYXBwUnVubmluZ0tleQYADm1haW50ZW5hbmNlTVNHCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFEW1haW50ZW5hbmNlTVNHS2V5AgAACW51bVNhbGVzSwIJbnVtX3NhbGVzAQ1nZXRVc2VyU3RyQnlLAQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUIdXNlckRhcHAFA2tleQIFRXJyb3IBDmdldEV2ZW50U3RyQnlLAQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUKZXZlbnRzRGFwcAUDa2V5AgABDWtleVVzZXJTdGF0dXMBBGFkZHIJAKwCAgIMdXNlcl9zdGF0dXNfBQRhZGRyAQdrZXlGbGFnAg1vcmdhbml6ZXJBZGRyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X2ZsYWdfBQdldmVudElkAgFfBQ1vcmdhbml6ZXJBZGRyAQprZXlORlREYXRhAQJpZAkArAICAgRuZnRfBQJpZAEKZ2V0U2FsZUtleQUGY2FsbGVyCHRpY2tldElkB2V2ZW50SWQNb3JnYW5pemVyQWRkcgVuZnRJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgINc2FsZTJuZF9pbmZvXwUGY2FsbGVyAgFfBQh0aWNrZXRJZAIBXwUHZXZlbnRJZAIBXwUNb3JnYW5pemVyQWRkcgIBXwUFbmZ0SWQBCWdldEJpZEtleQUKb2ZmZXJPd25lcgh0aWNrZXRJZAlzYWxlT3duZXIHb2ZmZXJJZAVuZnRJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIJb2ZmZXIybmRfBQpvZmZlck93bmVyAgFfBQh0aWNrZXRJZAIBXwUJc2FsZU93bmVyAgFfBQdvZmZlcklkAgFfBQVuZnRJZAEMaWRDYWxsZXJEYXRlAQFpAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHCQCVCgMJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAEJaXNQYXltZW50AQFpAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECE05vIHBheW1lbnQgYXR0YWNoZWQEB3BheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQGYW1vdW50CQEFdmFsdWUBCAUHcGF5bWVudAZhbW91bnQJAJQKAgUHcGF5bWVudAUGYW1vdW50AQxhc3NldElzVmFsaWQBDGFzc2V0RGV0YWlscwMDAwkAAAIIBQxhc3NldERldGFpbHMIcXVhbnRpdHkAAQkAAAIIBQxhc3NldERldGFpbHMIZGVjaW1hbHMAAAcJAAACCAUMYXNzZXREZXRhaWxzCnJlaXNzdWFibGUHBwkAAAIIBQxhc3NldERldGFpbHMGaXNzdWVyBQpldmVudHNEYXBwBwEOaXNTaWduRXZlbnRORlQBAmlkBAxhc3NldERldGFpbHMJAQV2YWx1ZQEJAOwHAQUCaWQJAQxhc3NldElzVmFsaWQBBQxhc3NldERldGFpbHMBEGFjY2VwdGVkQXNzZXRJZHMBB2Fzc2V0SWQDCQECIT0CBQdhc3NldElkCQDYBAEFC3NpZ25Bc3NldElkBwYBDWdldEJpZEFzc2V0SWQBB2Fzc2V0SWQJANkEAQUHYXNzZXRJZAEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQh0aWNrZXRJZAQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQh0aWNrZXRJZAMJAAACCQCxAgEFCXNhbGVPd25lcgAACQACAQIQVGlja2V0IG5vdCBmb3VuZAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUJc2FsZU93bmVyAgFfBQh0aWNrZXRJZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAhNUaWNrZXQgbm90IGZvciBzYWxlBQlzYWxlT3duZXIBCmdldEJpZERhdGEBA2tleQQHYmlkRGF0YQkBCWdldFN0ckJ5SwEJAKwCAgUDa2V5AgVfT1BFTgMJAAACBQdiaWREYXRhAgAJAAIBAg9PZmZlciBub3QgZm91bmQECmJpZERhdGFBcnIJALUJAgUHYmlkRGF0YQIBXwQHYXNzZXRJZAkBDWdldEJpZEFzc2V0SWQBCQCRAwIFCmJpZERhdGFBcnIAAgkAlQoDBQpiaWREYXRhQXJyBQdhc3NldElkBQdiaWREYXRhAQxldmVudElzVmFsaWQBC2V2ZW50U3RhdHVzAwkBAiE9AgULZXZlbnRTdGF0dXMFDGV2ZW50SWxsZWdhbAkBAiE9AgULZXZlbnRTdGF0dXMFDmV2ZW50U3VzcGVuZGVkBwEQY2hlY2tFdmVudFN0YXR1cwIEYWRkcgJpZAQLZXZlbnRTdGF0dXMJAQ5nZXRFdmVudFN0ckJ5SwEJAQdrZXlGbGFnAgUEYWRkcgUCaWQDCQEMZXZlbnRJc1ZhbGlkAQULZXZlbnRTdGF0dXMGCQACAQkArAICAhpPcmlnaW5hbCBldmVudCBmbGFnZ2VkIGFzIAULZXZlbnRTdGF0dXMBFGNoZWNrT3JnYW5pemVyU3RhdHVzAQRhZGRyBA9vcmdhbml6ZXJTdGF0dXMJAQ1nZXRVc2VyU3RyQnlLAQkBDWtleVVzZXJTdGF0dXMBBQRhZGRyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUNdXNlclN1c3BlbmRlZAUDbmlsBQ9vcmdhbml6ZXJTdGF0dXMJAAIBCQCsAgICE09yaWdpbmFsIG9yZ2FuaXplciAFD29yZ2FuaXplclN0YXR1cwYBDGNoZWNrTkZUSW5mbwEHYXNzZXRJZAQHbmZ0RGF0YQkAtQkCCQEOZ2V0RXZlbnRTdHJCeUsBCQEKa2V5TkZURGF0YQEFB2Fzc2V0SWQCAV8DAwkBASEBCQEQY2hlY2tFdmVudFN0YXR1cwIJAJEDAgUHbmZ0RGF0YQAGCQCRAwIFB25mdERhdGEABQkBASEBCQEUY2hlY2tPcmdhbml6ZXJTdGF0dXMBCQCRAwIFB25mdERhdGEABgcJAJYKBAcJAJEDAgUHbmZ0RGF0YQAGCQCRAwIFB25mdERhdGEABwkAkQMCBQduZnREYXRhAAUJAJYKBAYJAJEDAgUHbmZ0RGF0YQAGCQCRAwIFB25mdERhdGEABwkAkQMCBQduZnREYXRhAAUBD2NoZWNrRVZFTlRFeGlzdAIHZXZlbnRJZA1vcmdhbml6ZXJBZGRyAwMJAQEhAQkBEGNoZWNrRXZlbnRTdGF0dXMCBQ1vcmdhbml6ZXJBZGRyBQdldmVudElkCQEBIQEJARRjaGVja09yZ2FuaXplclN0YXR1cwEFDW9yZ2FuaXplckFkZHIHBwYBDHNldFRyYW5zZmVycwgGYW1vdW50B2Fzc2V0SWQFbmZ0SWQNb3JnYW5pemVyQWRkcglzYWxlT3duZXIGY2FsbGVyB2V2ZW50SWQIdGlja2V0SWQEDG9yZ2FuaXplckN1dAkBCWdldEludEJ5SwEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhF0aWNrZXRfcm95YWx0aWVzXwUHZXZlbnRJZAIBXwUNb3JnYW5pemVyQWRkcgIBXwUIdGlja2V0SWQEDWFtb3VudEZvclNpZ24JAGsDBQZhbW91bnQFB3NpZ25DdXQAZAQSYW1vdW50Rm9yT3JnYW5pemVyCQBrAwUGYW1vdW50BQxvcmdhbml6ZXJDdXQAZAQOYW1vdW50Rm9yT3duZXIJAGUCBQZhbW91bnQJAGQCBQ1hbW91bnRGb3JTaWduBRJhbW91bnRGb3JPcmdhbml6ZXIEC2NvbW1pc3Npb25zCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQtmZWVSZWNlaXZlcgUNYW1vdW50Rm9yU2lnbgUHYXNzZXRJZAUDbmlsBAxvcmdhbml6ZXJGZWUJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQ1vcmdhbml6ZXJBZGRyBRJhbW91bnRGb3JPcmdhbml6ZXIFB2Fzc2V0SWQECG93bmVyRmVlCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUJc2FsZU93bmVyBQ5hbW91bnRGb3JPd25lcgUHYXNzZXRJZAQMY29sbGVjdG9yTkZUCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAEJANkEAQUFbmZ0SWQJAJYKBAULY29tbWlzc2lvbnMFDG9yZ2FuaXplckZlZQUIb3duZXJGZWUFDGNvbGxlY3Rvck5GVAEPcHJvdmlkZUJhc2VEYXRhAgFpBW5mdElkBAskdDA1OTQwNTk3OQkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAULJHQwNTk0MDU5NzkCXzEEBmNhbGxlcggFCyR0MDU5NDA1OTc5Al8yBARkYXRlCAULJHQwNTk0MDU5NzkCXzMECyR0MDU5ODI2MDU0CQEMY2hlY2tORlRJbmZvAQUFbmZ0SWQECmlzVmFsaWRORlQIBQskdDA1OTgyNjA1NAJfMQQHZXZlbnRJZAgFCyR0MDU5ODI2MDU0Al8yBA1vcmdhbml6ZXJBZGRyCAULJHQwNTk4MjYwNTQCXzMECHRpY2tldElkCAULJHQwNTk4MjYwNTQCXzQJAJkKBwUCaWQFBmNhbGxlcgUEZGF0ZQUKaXNWYWxpZE5GVAUHZXZlbnRJZAUNb3JnYW5pemVyQWRkcgUIdGlja2V0SWQBDnVwZGF0ZU51bVNhbGVzAAQIbnVtU2FsZXMJAQlnZXRJbnRCeUsBBQludW1TYWxlc0sJAQxJbnRlZ2VyRW50cnkCBQludW1TYWxlc0sJAGQCBQhudW1TYWxlcwABCQZpbnZva2UBB3NldENvbmYCA2tleQN2YWwEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDCQEIY29udGFpbnMCBQNrZXkCBWNvbmZfCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwJAAIBAiBFbnRyaWVzIHN0YXJ0aW5nIHdpdGggY29uZl8gb25seQkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMGaW52b2tlAQphcHBSdW5uaW5nAgZpc0xpdmUHbWVzc2FnZQQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyBAJpZAkA2AQBCAUGaW52b2tlDXRyYW5zYWN0aW9uSWQDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBQ5kYXBwUnVubmluZ0tleQUGaXNMaXZlCQDMCAIJAQtTdHJpbmdFbnRyeQIFEW1haW50ZW5hbmNlTVNHS2V5BQdtZXNzYWdlBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzAWkBB3NlbGxORlQBBXByaWNlBAskdDA3MTA3NzE0MwkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQskdDA3MTA3NzE0MwJfMQQGYW1vdW50CAULJHQwNzEwNzcxNDMCXzIDCQECIT0CBQZhbW91bnQAAQkAAgECEk5vIFRpY2tldCBhdHRhY2hlZAQFbmZ0SWQDAwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJAQ5pc1NpZ25FdmVudE5GVAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQHCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQJAAIBAh1Pbmx5IFNJR04gRXZlbnQgTkZUIGFjY2VwdGVkLgQLJHQwNzM4NDc0NzkJAQ9wcm92aWRlQmFzZURhdGECBQFpBQVuZnRJZAQCaWQIBQskdDA3Mzg0NzQ3OQJfMQQGY2FsbGVyCAULJHQwNzM4NDc0NzkCXzIEBGRhdGUIBQskdDA3Mzg0NzQ3OQJfMwQKaXNWYWxpZE5GVAgFCyR0MDczODQ3NDc5Al80BAdldmVudElkCAULJHQwNzM4NDc0NzkCXzUEDW9yZ2FuaXplckFkZHIIBQskdDA3Mzg0NzQ3OQJfNgQIdGlja2V0SWQIBQskdDA3Mzg0NzQ3OQJfNwMJAQEhAQUKaXNWYWxpZE5GVAkAAgECEk5vdCBhIHZhbGlkIHRpY2tldAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAQpnZXRTYWxlS2V5BQUGY2FsbGVyBQh0aWNrZXRJZAUHZXZlbnRJZAUNb3JnYW5pemVyQWRkcgUFbmZ0SWQCBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkApAMBBQRkYXRlAgFfCQCkAwEFBXByaWNlAgFfCQDYBAEFC3NpZ25Bc3NldElkAgFfBQVuZnRJZAIBXwUIdGlja2V0SWQCAV8FB2V2ZW50SWQCAV8FDW9yZ2FuaXplckFkZHICAV8FAmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAIET1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkBQZjYWxsZXIFA25pbAFpAQ91cGRhdGVTYWxlUHJpY2UCBW5mdElkBXByaWNlBAskdDA4MDE3ODExMgkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFCyR0MDgwMTc4MTEyAl8xBAZjYWxsZXIIBQskdDA4MDE3ODExMgJfMgQEZGF0ZQgFCyR0MDgwMTc4MTEyAl8zBAppc1ZhbGlkTkZUCAULJHQwODAxNzgxMTICXzQEB2V2ZW50SWQIBQskdDA4MDE3ODExMgJfNQQNb3JnYW5pemVyQWRkcggFCyR0MDgwMTc4MTEyAl82BAh0aWNrZXRJZAgFCyR0MDgwMTc4MTEyAl83AwkBASEBBQppc1ZhbGlkTkZUCQACAQISTm90IGEgdmFsaWQgdGlja2V0BAlzYWxlT3duZXIJAQlnZXRTdHJCeUsBCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkAwkBAiE9AgUJc2FsZU93bmVyBQZjYWxsZXIJAAIBAhlZb3UgZG9uJ3Qgb3duIHRoaXMgdGlja2V0BApzYWxlU3RhdHVzCQEJZ2V0U3RyQnlLAQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQZjYWxsZXICAV8FBW5mdElkAwkBAiE9AgUKc2FsZVN0YXR1cwIET1BFTgkAAgECD1NhbGUgbm90IGFjdGl2ZQQHc2FsZUtleQkBCmdldFNhbGVLZXkFBQZjYWxsZXIFCHRpY2tldElkBQdldmVudElkBQ1vcmdhbml6ZXJBZGRyBQVuZnRJZAQIc2FsZUluZm8JALUJAgkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4CAV8JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQdzYWxlS2V5AgVfT1BFTgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAJEDAgUIc2FsZUluZm8AAAIBXwkApAMBBQVwcmljZQIBXwkA2AQBBQtzaWduQXNzZXRJZAIBXwkAkQMCBQhzYWxlSW5mbwADAgFfCQCRAwIFCHNhbGVJbmZvAAQCAV8JAJEDAgUIc2FsZUluZm8ABQIBXwkAkQMCBQhzYWxlSW5mbwAGAgFfCQCRAwIFCHNhbGVJbmZvAAcFA25pbAFpAQpjYW5jZWxTYWxlAQVuZnRJZAQLJHQwOTA0NTkyODgJAQ9wcm92aWRlQmFzZURhdGECBQFpBQVuZnRJZAQCaWQIBQskdDA5MDQ1OTI4OAJfMQQGY2FsbGVyCAULJHQwOTA0NTkyODgCXzIEBGRhdGUIBQskdDA5MDQ1OTI4OAJfMwQKaXNWYWxpZE5GVAgFCyR0MDkwNDU5Mjg4Al80BAdldmVudElkCAULJHQwOTA0NTkyODgCXzUEDW9yZ2FuaXplckFkZHIIBQskdDA5MDQ1OTI4OAJfNgQIdGlja2V0SWQIBQskdDA5MDQ1OTI4OAJfNwQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAMJAQIhPQIFCXNhbGVPd25lcgUGY2FsbGVyCQACAQIZWW91IGRvbid0IG93biB0aGlzIHRpY2tldAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAg9TYWxlIG5vdCBhY3RpdmUEB3NhbGVLZXkJAQpnZXRTYWxlS2V5BQUGY2FsbGVyBQh0aWNrZXRJZAUHZXZlbnRJZAUNb3JnYW5pemVyQWRkcgUFbmZ0SWQECHNhbGVJbmZvCQEJZ2V0U3RyQnlLAQkArAICBQdzYWxlS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFB3NhbGVLZXkCAV8FAmlkAgpfQ0FOQ0VMTEVECQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAgtfQ0FOQ0VMTEVEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAEJANkEAQUFbmZ0SWQFA25pbAFpAQZidXlORlQBBW5mdElkBA0kdDAxMDEzNTEwMjU5CQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTAxMzUxMDI1OQJfMQQGY2FsbGVyCAUNJHQwMTAxMzUxMDI1OQJfMgQEZGF0ZQgFDSR0MDEwMTM1MTAyNTkCXzMECmlzVmFsaWRORlQIBQ0kdDAxMDEzNTEwMjU5Al80BAdldmVudElkCAUNJHQwMTAxMzUxMDI1OQJfNQQNb3JnYW5pemVyQWRkcggFDSR0MDEwMTM1MTAyNTkCXzYECHRpY2tldElkCAUNJHQwMTAxMzUxMDI1OQJfNwMJAQEhAQUKaXNWYWxpZE5GVAkAAgECEk5vdCBhIHZhbGlkIHRpY2tldAQJc2FsZU93bmVyCQEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQUFbmZ0SWQEB3NhbGVLZXkJAQpnZXRTYWxlS2V5BQUJc2FsZU93bmVyBQh0aWNrZXRJZAUHZXZlbnRJZAUNb3JnYW5pemVyQWRkcgUFbmZ0SWQECHNhbGVJbmZvCQEJZ2V0U3RyQnlLAQkArAICBQdzYWxlS2V5AgVfT1BFTgMJAAACCQCxAgEFCHNhbGVJbmZvAAAJAAIBAg9TYWxlIE5vdCBmb3VuZCEEDXNhbGVJbmZvQXJyYXkJALUJAgUIc2FsZUluZm8CAV8DCQAAAgkAtgkBCQCRAwIFDXNhbGVJbmZvQXJyYXkAAQAACQACAQIKT2ZmZXIgb25seQQNJHQwMTA2NzQxMDcxMAkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQ0kdDAxMDY3NDEwNzEwAl8xBAZhbW91bnQIBQ0kdDAxMDY3NDEwNzEwAl8yBA9wYXltZW50QXNzZXRTdHIJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAMDCQECIT0CCQCRAwIFDXNhbGVJbmZvQXJyYXkAAQkApAMBBQZhbW91bnQGCQECIT0CCQCRAwIFDXNhbGVJbmZvQXJyYXkAAgUPcGF5bWVudEFzc2V0U3RyCQACAQIaUGF5bWVudCBpbmZvcyBkb24ndCBtYXRjaC4EDSR0MDEwOTExMTEwNjQJAQxzZXRUcmFuc2ZlcnMIBQZhbW91bnQIBQdwYXltZW50B2Fzc2V0SWQFBW5mdElkBQ1vcmdhbml6ZXJBZGRyBQlzYWxlT3duZXIFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQEC2NvbW1pc3Npb25zCAUNJHQwMTA5MTExMTA2NAJfMQQKY3JlYXRvckZlZQgFDSR0MDEwOTExMTEwNjQCXzIECG93bmVyRmVlCAUNJHQwMTA5MTExMTA2NAJfMwQMY29sbGVjdG9yTkZUCAUNJHQwMTA5MTExMTA2NAJfNAkAzggCCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQlzYWxlT3duZXICAV8FBW5mdElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHc2FsZUtleQIBXwUCaWQCB19DTE9TRUQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAIBXwUGY2FsbGVyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUKY3JlYXRvckZlZQkAzAgCBQhvd25lckZlZQkAzAgCBQxjb2xsZWN0b3JORlQFA25pbAULY29tbWlzc2lvbnMBaQEIc2V0T2ZmZXIBBW5mdElkBA0kdDAxMTQ3NTExNTc0CQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTE0NzUxMTU3NAJfMQQKb2ZmZXJPd25lcggFDSR0MDExNDc1MTE1NzQCXzIEBGRhdGUIBQ0kdDAxMTQ3NTExNTc0Al8zBAppc1ZhbGlkTkZUCAUNJHQwMTE0NzUxMTU3NAJfNAQHZXZlbnRJZAgFDSR0MDExNDc1MTE1NzQCXzUEDW9yZ2FuaXplckFkZHIIBQ0kdDAxMTQ3NTExNTc0Al82BAh0aWNrZXRJZAgFDSR0MDExNDc1MTE1NzQCXzcDCQEBIQEFCmlzVmFsaWRORlQJAAIBAhJOb3QgYSB2YWxpZCB0aWNrZXQEDSR0MDExNjM4MTE2NzQJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAUNJHQwMTE2MzgxMTY3NAJfMQQGYW1vdW50CAUNJHQwMTE2MzgxMTY3NAJfMgQHYXNzZXRJZAkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkAwkBASEBCQEQYWNjZXB0ZWRBc3NldElkcwEFB2Fzc2V0SWQJAAIBAhJhc3NldCBub3QgYWNjZXB0ZWQDCQAAAgUGYW1vdW50AAAJAAIBAhZPZmZlciBvZiAwIG5vdCBhbGxvd2VkBAlzYWxlT3duZXIJARVnZXRTYWxlT3duZXJBbmRTdGF0dXMBBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAQlnZXRCaWRLZXkFBQpvZmZlck93bmVyBQh0aWNrZXRJZAUJc2FsZU93bmVyBQJpZAUFbmZ0SWQCBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkApAMBBQRkYXRlAgFfCQCkAwEFBmFtb3VudAIBXwUHYXNzZXRJZAIBXwUFbmZ0SWQCAV8FB2V2ZW50SWQCAV8FDW9yZ2FuaXplckFkZHICAV8FCm9mZmVyT3duZXICAV8FAmlkBQNuaWwBaQELYWNjZXB0T2ZmZXIDBW5mdElkB29mZmVySWQKb2ZmZXJPd25lcgQNJHQwMTIzNTMxMjQ0OAkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFDSR0MDEyMzUzMTI0NDgCXzEEBmNhbGxlcggFDSR0MDEyMzUzMTI0NDgCXzIEBGRhdGUIBQ0kdDAxMjM1MzEyNDQ4Al8zBAppc1ZhbGlkTkZUCAUNJHQwMTIzNTMxMjQ0OAJfNAQHZXZlbnRJZAgFDSR0MDEyMzUzMTI0NDgCXzUEDW9yZ2FuaXplckFkZHIIBQ0kdDAxMjM1MzEyNDQ4Al82BAh0aWNrZXRJZAgFDSR0MDEyMzUzMTI0NDgCXzcDCQEBIQEFCmlzVmFsaWRORlQJAAIBAhJOb3QgYSB2YWxpZCB0aWNrZXQECXNhbGVPd25lcgkBFWdldFNhbGVPd25lckFuZFN0YXR1cwEFBW5mdElkAwkBAiE9AgUGY2FsbGVyBQlzYWxlT3duZXIJAAIBAiBPbmx5IHNhbGUgb3duZXIgY2FuIGFjY2VwdCBvZmZlcgQGYmlkS2V5CQEJZ2V0QmlkS2V5BQUKb2ZmZXJPd25lcgUIdGlja2V0SWQFCXNhbGVPd25lcgUHb2ZmZXJJZAUFbmZ0SWQEDSR0MDEyNzE0MTI3NjkJAQpnZXRCaWREYXRhAQUGYmlkS2V5BApiaWREYXRhQXJyCAUNJHQwMTI3MTQxMjc2OQJfMQQHYXNzZXRJZAgFDSR0MDEyNzE0MTI3NjkCXzIEB2JpZERhdGEIBQ0kdDAxMjcxNDEyNzY5Al8zBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQUFCXNhbGVPd25lcgUIdGlja2V0SWQFB2V2ZW50SWQFDW9yZ2FuaXplckFkZHIFBW5mdElkBAhzYWxlSW5mbwkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4DCQAAAgkAsQIBBQhzYWxlSW5mbwAACQACAQIPU2FsZSBOb3QgZm91bmQhBAZhbW91bnQJAQV2YWx1ZQEJALYJAQkAkQMCBQpiaWREYXRhQXJyAAEEDSR0MDEzMDE4MTMxNzAJAQxzZXRUcmFuc2ZlcnMIBQZhbW91bnQFB2Fzc2V0SWQFBW5mdElkBQ1vcmdhbml6ZXJBZGRyBQlzYWxlT3duZXIJAJEDAgUKYmlkRGF0YUFycgAGBQdldmVudElkBQh0aWNrZXRJZAQLY29tbWlzc2lvbnMIBQ0kdDAxMzAxODEzMTcwAl8xBApjcmVhdG9yRmVlCAUNJHQwMTMwMTgxMzE3MAJfMgQIb3duZXJGZWUIBQ0kdDAxMzAxODEzMTcwAl8zBAxjb2xsZWN0b3JORlQIBQ0kdDAxMzAxODEzMTcwAl80BAphc3NldElkU3RyCQDYBAEJAQV2YWx1ZQEFB2Fzc2V0SWQJAM4IAgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUGYmlkS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FCXNhbGVPd25lcgIBXwUFbmZ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBmJpZEtleQIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICBQdiaWREYXRhAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQdzYWxlS2V5AgFfBQJpZAIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQhzYWxlSW5mbwIOX0NMT1NFRC1PRkZFUl8JAKQDAQUEZGF0ZQIBXwUCaWQCAV8FCm9mZmVyT3duZXICAV8JAKQDAQUGYW1vdW50AgFfBQphc3NldElkU3RyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUKY3JlYXRvckZlZQkAzAgCBQhvd25lckZlZQkAzAgCBQxjb2xsZWN0b3JORlQFA25pbAULY29tbWlzc2lvbnMBaQELY2FuY2VsT2ZmZXIFBW5mdElkB29mZmVySWQKb2ZmZXJPd25lcglzYWxlT3duZXIIdGlja2V0SWQEDSR0MDEzOTQ2MTQwMTgJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDEzOTQ2MTQwMTgCXzEEBmNhbGxlcggFDSR0MDEzOTQ2MTQwMTgCXzIEBGRhdGUIBQ0kdDAxMzk0NjE0MDE4Al8zAwMJAQIhPQIFBmNhbGxlcgUKb2ZmZXJPd25lcgkBAiE9AgUGY2FsbGVyBQlzYWxlT3duZXIHCQACAQIdWW91IGNhbm5vdCBjYW5jZWwgdGhpcyBvZmZlci4EBmJpZEtleQkBCWdldEJpZEtleQUFCm9mZmVyT3duZXIFCHRpY2tldElkBQlzYWxlT3duZXIFB29mZmVySWQFBW5mdElkBA0kdDAxNDE5OTE0MjU0CQEKZ2V0QmlkRGF0YQEFBmJpZEtleQQKYmlkRGF0YUFycggFDSR0MDE0MTk5MTQyNTQCXzEEB2Fzc2V0SWQIBQ0kdDAxNDE5OTE0MjU0Al8yBAdiaWREYXRhCAUNJHQwMTQxOTkxNDI1NAJfMwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFBmJpZEtleQIFX09QRU4JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQZiaWRLZXkCCl9DQU5DRUxMRUQJAKwCAgkArAICCQCsAgIJAKwCAgUHYmlkRGF0YQILX0NBTkNFTExFRF8JAKQDAQUEZGF0ZQIBXwUCaWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCmJpZERhdGFBcnIAAQUHYXNzZXRJZAUDbmlsAA2PkNg=", "height": 2303441, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GWWneMizPEiBHsFUvDugy1fBKxE2Pv8LuuALAXK5GpgA Next: 6PcjLi8qNModL1GxSR5AFHnyaELQ16G6qKiBHKxQHeRr Diff:
OldNewDifferences
294294 else {
295295 let saleKey = getSaleKey(caller, ticketId, eventId, organizerAddr, nftId)
296296 let saleInfo = getStrByK((saleKey + "_OPEN"))
297-[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(ticketId))]
297+[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))]
298298 }
299299 }
300300 }
303303
304304 @Callable(i)
305305 func buyNFT (nftId) = {
306- let $t01013810262 = provideBaseData(i, nftId)
307- let id = $t01013810262._1
308- let caller = $t01013810262._2
309- let date = $t01013810262._3
310- let isValidNFT = $t01013810262._4
311- let eventId = $t01013810262._5
312- let organizerAddr = $t01013810262._6
313- let ticketId = $t01013810262._7
306+ let $t01013510259 = provideBaseData(i, nftId)
307+ let id = $t01013510259._1
308+ let caller = $t01013510259._2
309+ let date = $t01013510259._3
310+ let isValidNFT = $t01013510259._4
311+ let eventId = $t01013510259._5
312+ let organizerAddr = $t01013510259._6
313+ let ticketId = $t01013510259._7
314314 if (!(isValidNFT))
315315 then throw("Not a valid ticket")
316316 else {
324324 if ((parseInt(saleInfoArray[1]) == 0))
325325 then throw("Offer only")
326326 else {
327- let $t01067710713 = isPayment(i)
328- let payment = $t01067710713._1
329- let amount = $t01067710713._2
327+ let $t01067410710 = isPayment(i)
328+ let payment = $t01067410710._1
329+ let amount = $t01067410710._2
330330 let paymentAssetStr = toBase58String(value(payment.assetId))
331331 if (if ((saleInfoArray[1] != toString(amount)))
332332 then true
333333 else (saleInfoArray[2] != paymentAssetStr))
334334 then throw("Payment infos don't match.")
335335 else {
336- let $t01091411067 = setTransfers(amount, payment.assetId, nftId, organizerAddr, saleOwner, caller, eventId, ticketId)
337- let commissions = $t01091411067._1
338- let creatorFee = $t01091411067._2
339- let ownerFee = $t01091411067._3
340- let collectorNFT = $t01091411067._4
336+ let $t01091111064 = setTransfers(amount, payment.assetId, nftId, organizerAddr, saleOwner, caller, eventId, ticketId)
337+ let commissions = $t01091111064._1
338+ let creatorFee = $t01091111064._2
339+ let ownerFee = $t01091111064._3
340+ let collectorNFT = $t01091111064._4
341341 ([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(), creatorFee, ownerFee, collectorNFT] ++ commissions)
342342 }
343343 }
349349
350350 @Callable(i)
351351 func setOffer (nftId) = {
352- let $t01147811577 = provideBaseData(i, nftId)
353- let id = $t01147811577._1
354- let offerOwner = $t01147811577._2
355- let date = $t01147811577._3
356- let isValidNFT = $t01147811577._4
357- let eventId = $t01147811577._5
358- let organizerAddr = $t01147811577._6
359- let ticketId = $t01147811577._7
352+ let $t01147511574 = provideBaseData(i, nftId)
353+ let id = $t01147511574._1
354+ let offerOwner = $t01147511574._2
355+ let date = $t01147511574._3
356+ let isValidNFT = $t01147511574._4
357+ let eventId = $t01147511574._5
358+ let organizerAddr = $t01147511574._6
359+ let ticketId = $t01147511574._7
360360 if (!(isValidNFT))
361361 then throw("Not a valid ticket")
362362 else {
363- let $t01164111677 = isPayment(i)
364- let payment = $t01164111677._1
365- let amount = $t01164111677._2
363+ let $t01163811674 = isPayment(i)
364+ let payment = $t01163811674._1
365+ let amount = $t01163811674._2
366366 let assetId = toBase58String(value(payment.assetId))
367367 if (!(acceptedAssetIds(assetId)))
368368 then throw("asset not accepted")
379379
380380 @Callable(i)
381381 func acceptOffer (nftId,offerId,offerOwner) = {
382- let $t01235612451 = provideBaseData(i, nftId)
383- let id = $t01235612451._1
384- let caller = $t01235612451._2
385- let date = $t01235612451._3
386- let isValidNFT = $t01235612451._4
387- let eventId = $t01235612451._5
388- let organizerAddr = $t01235612451._6
389- let ticketId = $t01235612451._7
382+ let $t01235312448 = provideBaseData(i, nftId)
383+ let id = $t01235312448._1
384+ let caller = $t01235312448._2
385+ let date = $t01235312448._3
386+ let isValidNFT = $t01235312448._4
387+ let eventId = $t01235312448._5
388+ let organizerAddr = $t01235312448._6
389+ let ticketId = $t01235312448._7
390390 if (!(isValidNFT))
391391 then throw("Not a valid ticket")
392392 else {
395395 then throw("Only sale owner can accept offer")
396396 else {
397397 let bidKey = getBidKey(offerOwner, ticketId, saleOwner, offerId, nftId)
398- let $t01271712772 = getBidData(bidKey)
399- let bidDataArr = $t01271712772._1
400- let assetId = $t01271712772._2
401- let bidData = $t01271712772._3
398+ let $t01271412769 = getBidData(bidKey)
399+ let bidDataArr = $t01271412769._1
400+ let assetId = $t01271412769._2
401+ let bidData = $t01271412769._3
402402 let saleKey = getSaleKey(saleOwner, ticketId, eventId, organizerAddr, nftId)
403403 let saleInfo = getStrByK((saleKey + "_OPEN"))
404404 if ((size(saleInfo) == 0))
405405 then throw("Sale Not found!")
406406 else {
407407 let amount = value(parseInt(bidDataArr[1]))
408- let $t01302113173 = setTransfers(amount, assetId, nftId, organizerAddr, saleOwner, bidDataArr[6], eventId, ticketId)
409- let commissions = $t01302113173._1
410- let creatorFee = $t01302113173._2
411- let ownerFee = $t01302113173._3
412- let collectorNFT = $t01302113173._4
408+ let $t01301813170 = setTransfers(amount, assetId, nftId, organizerAddr, saleOwner, bidDataArr[6], eventId, ticketId)
409+ let commissions = $t01301813170._1
410+ let creatorFee = $t01301813170._2
411+ let ownerFee = $t01301813170._3
412+ let collectorNFT = $t01301813170._4
413413 let assetIdStr = toBase58String(value(assetId))
414414 ([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(), creatorFee, ownerFee, collectorNFT] ++ commissions)
415415 }
421421
422422 @Callable(i)
423423 func cancelOffer (nftId,offerId,offerOwner,saleOwner,ticketId) = {
424- let $t01394914021 = idCallerDate(i)
425- let id = $t01394914021._1
426- let caller = $t01394914021._2
427- let date = $t01394914021._3
424+ let $t01394614018 = idCallerDate(i)
425+ let id = $t01394614018._1
426+ let caller = $t01394614018._2
427+ let date = $t01394614018._3
428428 if (if ((caller != offerOwner))
429429 then (caller != saleOwner)
430430 else false)
431431 then throw("You cannot cancel this offer.")
432432 else {
433433 let bidKey = getBidKey(offerOwner, ticketId, saleOwner, offerId, nftId)
434- let $t01420214257 = getBidData(bidKey)
435- let bidDataArr = $t01420214257._1
436- let assetId = $t01420214257._2
437- let bidData = $t01420214257._3
434+ let $t01419914254 = getBidData(bidKey)
435+ let bidDataArr = $t01419914254._1
436+ let assetId = $t01419914254._2
437+ let bidData = $t01419914254._3
438438 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
439439 }
440440 }
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 func getIntByK (key) = valueOrElse(getInteger(this, key), 0)
1010
1111
1212 let feeReceiver = getStrByK("conf_fee_receiver")
1313
1414 let eventsDapp = value(addressFromString(getStrByK("conf_events_dapp")))
1515
1616 let userDapp = value(addressFromString(getStrByK("conf_users_dapp")))
1717
1818 let signCut = getIntByK("conf_signcut")
1919
2020 let signAssetId = fromBase58String(getStrByK("conf_accepted_asset_SIGN"))
2121
2222 let chris = getStrByK("conf_admin_1")
2323
2424 let userSuspended = "SUSPENDED"
2525
2626 let eventIllegal = "ILLEGAL"
2727
2828 let eventSuspended = "SUSPENDED"
2929
3030 let dappRunningKey = "conf_dapp_is_running"
3131
3232 let maintenanceMSGKey = "conf_maintenance_msg"
3333
3434 let dappRunning = valueOrElse(getBoolean(this, dappRunningKey), true)
3535
3636 let maintenanceMSG = valueOrElse(getString(this, maintenanceMSGKey), "")
3737
3838 let numSalesK = "num_sales"
3939
4040 func getUserStrByK (key) = valueOrElse(getString(userDapp, key), "Error")
4141
4242
4343 func getEventStrByK (key) = valueOrElse(getString(eventsDapp, key), "")
4444
4545
4646 func keyUserStatus (addr) = ("user_status_" + addr)
4747
4848
4949 func keyFlag (organizerAddr,eventId) = ((("event_flag_" + eventId) + "_") + organizerAddr)
5050
5151
5252 func keyNFTData (id) = ("nft_" + id)
5353
5454
5555 func getSaleKey (caller,ticketId,eventId,organizerAddr,nftId) = ((((((((("sale2nd_info_" + caller) + "_") + ticketId) + "_") + eventId) + "_") + organizerAddr) + "_") + nftId)
5656
5757
5858 func getBidKey (offerOwner,ticketId,saleOwner,offerId,nftId) = ((((((((("offer2nd_" + offerOwner) + "_") + ticketId) + "_") + saleOwner) + "_") + offerId) + "_") + nftId)
5959
6060
6161 func idCallerDate (i) = if (!(dappRunning))
6262 then throw(maintenanceMSG)
6363 else $Tuple3(toBase58String(i.transactionId), toBase58String(i.caller.bytes), lastBlock.timestamp)
6464
6565
6666 func isPayment (i) = if ((size(i.payments) == 0))
6767 then throw("No payment attached")
6868 else {
6969 let payment = value(i.payments[0])
7070 let amount = value(payment.amount)
7171 $Tuple2(payment, amount)
7272 }
7373
7474
7575 func assetIsValid (assetDetails) = if (if (if ((assetDetails.quantity == 1))
7676 then (assetDetails.decimals == 0)
7777 else false)
7878 then (assetDetails.reissuable == false)
7979 else false)
8080 then (assetDetails.issuer == eventsDapp)
8181 else false
8282
8383
8484 func isSignEventNFT (id) = {
8585 let assetDetails = value(assetInfo(id))
8686 assetIsValid(assetDetails)
8787 }
8888
8989
9090 func acceptedAssetIds (assetId) = if ((assetId != toBase58String(signAssetId)))
9191 then false
9292 else true
9393
9494
9595 func getBidAssetId (assetId) = fromBase58String(assetId)
9696
9797
9898 func getSaleOwnerAndStatus (ticketId) = {
9999 let saleOwner = getStrByK(("current_owner_on_dapp_" + ticketId))
100100 if ((size(saleOwner) == 0))
101101 then throw("Ticket not found")
102102 else {
103103 let saleStatus = getStrByK(((("sale2nd_status_" + saleOwner) + "_") + ticketId))
104104 if ((saleStatus != "OPEN"))
105105 then throw("Ticket not for sale")
106106 else saleOwner
107107 }
108108 }
109109
110110
111111 func getBidData (key) = {
112112 let bidData = getStrByK((key + "_OPEN"))
113113 if ((bidData == ""))
114114 then throw("Offer not found")
115115 else {
116116 let bidDataArr = split(bidData, "_")
117117 let assetId = getBidAssetId(bidDataArr[2])
118118 $Tuple3(bidDataArr, assetId, bidData)
119119 }
120120 }
121121
122122
123123 func eventIsValid (eventStatus) = if ((eventStatus != eventIllegal))
124124 then (eventStatus != eventSuspended)
125125 else false
126126
127127
128128 func checkEventStatus (addr,id) = {
129129 let eventStatus = getEventStrByK(keyFlag(addr, id))
130130 if (eventIsValid(eventStatus))
131131 then true
132132 else throw(("Original event flagged as " + eventStatus))
133133 }
134134
135135
136136 func checkOrganizerStatus (addr) = {
137137 let organizerStatus = getUserStrByK(keyUserStatus(addr))
138138 if (containsElement([userSuspended], organizerStatus))
139139 then throw(("Original organizer " + organizerStatus))
140140 else true
141141 }
142142
143143
144144 func checkNFTInfo (assetId) = {
145145 let nftData = split(getEventStrByK(keyNFTData(assetId)), "_")
146146 if (if (!(checkEventStatus(nftData[6], nftData[5])))
147147 then !(checkOrganizerStatus(nftData[6]))
148148 else false)
149149 then $Tuple4(false, nftData[6], nftData[7], nftData[5])
150150 else $Tuple4(true, nftData[6], nftData[7], nftData[5])
151151 }
152152
153153
154154 func checkEVENTExist (eventId,organizerAddr) = if (if (!(checkEventStatus(organizerAddr, eventId)))
155155 then !(checkOrganizerStatus(organizerAddr))
156156 else false)
157157 then false
158158 else true
159159
160160
161161 func setTransfers (amount,assetId,nftId,organizerAddr,saleOwner,caller,eventId,ticketId) = {
162162 let organizerCut = getIntByK(((((("ticket_royalties_" + eventId) + "_") + organizerAddr) + "_") + ticketId))
163163 let amountForSign = fraction(amount, signCut, 100)
164164 let amountForOrganizer = fraction(amount, organizerCut, 100)
165165 let amountForOwner = (amount - (amountForSign + amountForOrganizer))
166166 let commissions = [ScriptTransfer(Address(fromBase58String(feeReceiver)), amountForSign, assetId)]
167167 let organizerFee = ScriptTransfer(Address(fromBase58String(organizerAddr)), amountForOrganizer, assetId)
168168 let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
169169 let collectorNFT = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftId))
170170 $Tuple4(commissions, organizerFee, ownerFee, collectorNFT)
171171 }
172172
173173
174174 func provideBaseData (i,nftId) = {
175175 let $t059405979 = idCallerDate(i)
176176 let id = $t059405979._1
177177 let caller = $t059405979._2
178178 let date = $t059405979._3
179179 let $t059826054 = checkNFTInfo(nftId)
180180 let isValidNFT = $t059826054._1
181181 let eventId = $t059826054._2
182182 let organizerAddr = $t059826054._3
183183 let ticketId = $t059826054._4
184184 $Tuple7(id, caller, date, isValidNFT, eventId, organizerAddr, ticketId)
185185 }
186186
187187
188188 func updateNumSales () = {
189189 let numSales = getIntByK(numSalesK)
190190 IntegerEntry(numSalesK, (numSales + 1))
191191 }
192192
193193
194194 @Callable(invoke)
195195 func setConf (key,val) = {
196196 let caller = toString(invoke.caller)
197197 if (containsElement([chris, toString(this)], caller))
198198 then if (contains(key, "conf_"))
199199 then [StringEntry(key, val)]
200200 else throw("Entries starting with conf_ only")
201201 else throw("You are not allowed to change this")
202202 }
203203
204204
205205
206206 @Callable(invoke)
207207 func appRunning (isLive,message) = {
208208 let caller = toString(invoke.caller)
209209 let id = toBase58String(invoke.transactionId)
210210 if (containsElement([chris, toString(this)], caller))
211211 then [BooleanEntry(dappRunningKey, isLive), StringEntry(maintenanceMSGKey, message)]
212212 else throw("You are not allowed to change this")
213213 }
214214
215215
216216
217217 @Callable(i)
218218 func sellNFT (price) = {
219219 let $t071077143 = isPayment(i)
220220 let payment = $t071077143._1
221221 let amount = $t071077143._2
222222 if ((amount != 1))
223223 then throw("No Ticket attached")
224224 else {
225225 let nftId = if (if (isDefined(payment.assetId))
226226 then isSignEventNFT(value(payment.assetId))
227227 else false)
228228 then toBase58String(value(payment.assetId))
229229 else throw("Only SIGN Event NFT accepted.")
230230 let $t073847479 = provideBaseData(i, nftId)
231231 let id = $t073847479._1
232232 let caller = $t073847479._2
233233 let date = $t073847479._3
234234 let isValidNFT = $t073847479._4
235235 let eventId = $t073847479._5
236236 let organizerAddr = $t073847479._6
237237 let ticketId = $t073847479._7
238238 if (!(isValidNFT))
239239 then throw("Not a valid ticket")
240240 else [StringEntry((getSaleKey(caller, ticketId, eventId, organizerAddr, nftId) + "_OPEN"), ((((((((((((((toString(date) + "_") + toString(price)) + "_") + toBase58String(signAssetId)) + "_") + nftId) + "_") + ticketId) + "_") + eventId) + "_") + organizerAddr) + "_") + id)), StringEntry(((("sale2nd_status_" + caller) + "_") + nftId), "OPEN"), StringEntry(("current_owner_on_dapp_" + nftId), caller)]
241241 }
242242 }
243243
244244
245245
246246 @Callable(i)
247247 func updateSalePrice (nftId,price) = {
248248 let $t080178112 = provideBaseData(i, nftId)
249249 let id = $t080178112._1
250250 let caller = $t080178112._2
251251 let date = $t080178112._3
252252 let isValidNFT = $t080178112._4
253253 let eventId = $t080178112._5
254254 let organizerAddr = $t080178112._6
255255 let ticketId = $t080178112._7
256256 if (!(isValidNFT))
257257 then throw("Not a valid ticket")
258258 else {
259259 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
260260 if ((saleOwner != caller))
261261 then throw("You don't own this ticket")
262262 else {
263263 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
264264 if ((saleStatus != "OPEN"))
265265 then throw("Sale not active")
266266 else {
267267 let saleKey = getSaleKey(caller, ticketId, eventId, organizerAddr, nftId)
268268 let saleInfo = split(getStrByK((saleKey + "_OPEN")), "_")
269269 [StringEntry((saleKey + "_OPEN"), ((((((((((((((saleInfo[0] + "_") + toString(price)) + "_") + toBase58String(signAssetId)) + "_") + saleInfo[3]) + "_") + saleInfo[4]) + "_") + saleInfo[5]) + "_") + saleInfo[6]) + "_") + saleInfo[7]))]
270270 }
271271 }
272272 }
273273 }
274274
275275
276276
277277 @Callable(i)
278278 func cancelSale (nftId) = {
279279 let $t090459288 = provideBaseData(i, nftId)
280280 let id = $t090459288._1
281281 let caller = $t090459288._2
282282 let date = $t090459288._3
283283 let isValidNFT = $t090459288._4
284284 let eventId = $t090459288._5
285285 let organizerAddr = $t090459288._6
286286 let ticketId = $t090459288._7
287287 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
288288 if ((saleOwner != caller))
289289 then throw("You don't own this ticket")
290290 else {
291291 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
292292 if ((saleStatus != "OPEN"))
293293 then throw("Sale not active")
294294 else {
295295 let saleKey = getSaleKey(caller, ticketId, eventId, organizerAddr, nftId)
296296 let saleInfo = getStrByK((saleKey + "_OPEN"))
297-[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(ticketId))]
297+[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))]
298298 }
299299 }
300300 }
301301
302302
303303
304304 @Callable(i)
305305 func buyNFT (nftId) = {
306- let $t01013810262 = provideBaseData(i, nftId)
307- let id = $t01013810262._1
308- let caller = $t01013810262._2
309- let date = $t01013810262._3
310- let isValidNFT = $t01013810262._4
311- let eventId = $t01013810262._5
312- let organizerAddr = $t01013810262._6
313- let ticketId = $t01013810262._7
306+ let $t01013510259 = provideBaseData(i, nftId)
307+ let id = $t01013510259._1
308+ let caller = $t01013510259._2
309+ let date = $t01013510259._3
310+ let isValidNFT = $t01013510259._4
311+ let eventId = $t01013510259._5
312+ let organizerAddr = $t01013510259._6
313+ let ticketId = $t01013510259._7
314314 if (!(isValidNFT))
315315 then throw("Not a valid ticket")
316316 else {
317317 let saleOwner = getSaleOwnerAndStatus(nftId)
318318 let saleKey = getSaleKey(saleOwner, ticketId, eventId, organizerAddr, nftId)
319319 let saleInfo = getStrByK((saleKey + "_OPEN"))
320320 if ((size(saleInfo) == 0))
321321 then throw("Sale Not found!")
322322 else {
323323 let saleInfoArray = split(saleInfo, "_")
324324 if ((parseInt(saleInfoArray[1]) == 0))
325325 then throw("Offer only")
326326 else {
327- let $t01067710713 = isPayment(i)
328- let payment = $t01067710713._1
329- let amount = $t01067710713._2
327+ let $t01067410710 = isPayment(i)
328+ let payment = $t01067410710._1
329+ let amount = $t01067410710._2
330330 let paymentAssetStr = toBase58String(value(payment.assetId))
331331 if (if ((saleInfoArray[1] != toString(amount)))
332332 then true
333333 else (saleInfoArray[2] != paymentAssetStr))
334334 then throw("Payment infos don't match.")
335335 else {
336- let $t01091411067 = setTransfers(amount, payment.assetId, nftId, organizerAddr, saleOwner, caller, eventId, ticketId)
337- let commissions = $t01091411067._1
338- let creatorFee = $t01091411067._2
339- let ownerFee = $t01091411067._3
340- let collectorNFT = $t01091411067._4
336+ let $t01091111064 = setTransfers(amount, payment.assetId, nftId, organizerAddr, saleOwner, caller, eventId, ticketId)
337+ let commissions = $t01091111064._1
338+ let creatorFee = $t01091111064._2
339+ let ownerFee = $t01091111064._3
340+ let collectorNFT = $t01091111064._4
341341 ([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(), creatorFee, ownerFee, collectorNFT] ++ commissions)
342342 }
343343 }
344344 }
345345 }
346346 }
347347
348348
349349
350350 @Callable(i)
351351 func setOffer (nftId) = {
352- let $t01147811577 = provideBaseData(i, nftId)
353- let id = $t01147811577._1
354- let offerOwner = $t01147811577._2
355- let date = $t01147811577._3
356- let isValidNFT = $t01147811577._4
357- let eventId = $t01147811577._5
358- let organizerAddr = $t01147811577._6
359- let ticketId = $t01147811577._7
352+ let $t01147511574 = provideBaseData(i, nftId)
353+ let id = $t01147511574._1
354+ let offerOwner = $t01147511574._2
355+ let date = $t01147511574._3
356+ let isValidNFT = $t01147511574._4
357+ let eventId = $t01147511574._5
358+ let organizerAddr = $t01147511574._6
359+ let ticketId = $t01147511574._7
360360 if (!(isValidNFT))
361361 then throw("Not a valid ticket")
362362 else {
363- let $t01164111677 = isPayment(i)
364- let payment = $t01164111677._1
365- let amount = $t01164111677._2
363+ let $t01163811674 = isPayment(i)
364+ let payment = $t01163811674._1
365+ let amount = $t01163811674._2
366366 let assetId = toBase58String(value(payment.assetId))
367367 if (!(acceptedAssetIds(assetId)))
368368 then throw("asset not accepted")
369369 else if ((amount == 0))
370370 then throw("Offer of 0 not allowed")
371371 else {
372372 let saleOwner = getSaleOwnerAndStatus(nftId)
373373 [StringEntry((getBidKey(offerOwner, ticketId, saleOwner, id, nftId) + "_OPEN"), ((((((((((((((toString(date) + "_") + toString(amount)) + "_") + assetId) + "_") + nftId) + "_") + eventId) + "_") + organizerAddr) + "_") + offerOwner) + "_") + id))]
374374 }
375375 }
376376 }
377377
378378
379379
380380 @Callable(i)
381381 func acceptOffer (nftId,offerId,offerOwner) = {
382- let $t01235612451 = provideBaseData(i, nftId)
383- let id = $t01235612451._1
384- let caller = $t01235612451._2
385- let date = $t01235612451._3
386- let isValidNFT = $t01235612451._4
387- let eventId = $t01235612451._5
388- let organizerAddr = $t01235612451._6
389- let ticketId = $t01235612451._7
382+ let $t01235312448 = provideBaseData(i, nftId)
383+ let id = $t01235312448._1
384+ let caller = $t01235312448._2
385+ let date = $t01235312448._3
386+ let isValidNFT = $t01235312448._4
387+ let eventId = $t01235312448._5
388+ let organizerAddr = $t01235312448._6
389+ let ticketId = $t01235312448._7
390390 if (!(isValidNFT))
391391 then throw("Not a valid ticket")
392392 else {
393393 let saleOwner = getSaleOwnerAndStatus(nftId)
394394 if ((caller != saleOwner))
395395 then throw("Only sale owner can accept offer")
396396 else {
397397 let bidKey = getBidKey(offerOwner, ticketId, saleOwner, offerId, nftId)
398- let $t01271712772 = getBidData(bidKey)
399- let bidDataArr = $t01271712772._1
400- let assetId = $t01271712772._2
401- let bidData = $t01271712772._3
398+ let $t01271412769 = getBidData(bidKey)
399+ let bidDataArr = $t01271412769._1
400+ let assetId = $t01271412769._2
401+ let bidData = $t01271412769._3
402402 let saleKey = getSaleKey(saleOwner, ticketId, eventId, organizerAddr, nftId)
403403 let saleInfo = getStrByK((saleKey + "_OPEN"))
404404 if ((size(saleInfo) == 0))
405405 then throw("Sale Not found!")
406406 else {
407407 let amount = value(parseInt(bidDataArr[1]))
408- let $t01302113173 = setTransfers(amount, assetId, nftId, organizerAddr, saleOwner, bidDataArr[6], eventId, ticketId)
409- let commissions = $t01302113173._1
410- let creatorFee = $t01302113173._2
411- let ownerFee = $t01302113173._3
412- let collectorNFT = $t01302113173._4
408+ let $t01301813170 = setTransfers(amount, assetId, nftId, organizerAddr, saleOwner, bidDataArr[6], eventId, ticketId)
409+ let commissions = $t01301813170._1
410+ let creatorFee = $t01301813170._2
411+ let ownerFee = $t01301813170._3
412+ let collectorNFT = $t01301813170._4
413413 let assetIdStr = toBase58String(value(assetId))
414414 ([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(), creatorFee, ownerFee, collectorNFT] ++ commissions)
415415 }
416416 }
417417 }
418418 }
419419
420420
421421
422422 @Callable(i)
423423 func cancelOffer (nftId,offerId,offerOwner,saleOwner,ticketId) = {
424- let $t01394914021 = idCallerDate(i)
425- let id = $t01394914021._1
426- let caller = $t01394914021._2
427- let date = $t01394914021._3
424+ let $t01394614018 = idCallerDate(i)
425+ let id = $t01394614018._1
426+ let caller = $t01394614018._2
427+ let date = $t01394614018._3
428428 if (if ((caller != offerOwner))
429429 then (caller != saleOwner)
430430 else false)
431431 then throw("You cannot cancel this offer.")
432432 else {
433433 let bidKey = getBidKey(offerOwner, ticketId, saleOwner, offerId, nftId)
434- let $t01420214257 = getBidData(bidKey)
435- let bidDataArr = $t01420214257._1
436- let assetId = $t01420214257._2
437- let bidData = $t01420214257._3
434+ let $t01419914254 = getBidData(bidKey)
435+ let bidDataArr = $t01419914254._1
436+ let assetId = $t01419914254._2
437+ let bidData = $t01419914254._3
438438 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
439439 }
440440 }
441441
442442

github/deemru/w8io/873ac7e 
184.28 ms