tx · FkwbBnCRuFA7ZH6xY7Cc6ZkohzaJQsEe3aJnPvQonqV3

3N43JYG2V93YFoqRKwVv8wdihrSAzLGAyE9:  -0.01300000 Waves

2022.11.03 12:37 [2300761] smart account 3N43JYG2V93YFoqRKwVv8wdihrSAzLGAyE9 > SELF 0.00000000 Waves

{ "type": 13, "id": "FkwbBnCRuFA7ZH6xY7Cc6ZkohzaJQsEe3aJnPvQonqV3", "fee": 1300000, "feeAssetId": null, "timestamp": 1667468265230, "version": 2, "chainId": 84, "sender": "3N43JYG2V93YFoqRKwVv8wdihrSAzLGAyE9", "senderPublicKey": "GZ21uawsKqsN4vtEvjBExAk9KuMX97aS3T8otU7RjFn", "proofs": [ "2kH9urX9PAXZCc4oQebReKBpMJVHvSr6HpXxqqZUaXwUoEPQZqtWfWSMVH9p7FDrJHyY31gorDoMG5rMaL9imNLL" ], "script": "base64:BgI5CAISBAoCCAgSBAoCBAgSBAoCAQgSBQoDCAEIEgMKAQgSAwoBCBIDCgEIEgUKAwgICBIGCgQICAgIKQAHVkVSU0lPTgIFMS4wLjABCWdldFN0ckJ5SwEDa2V5CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFA2tleQIAAAtmZWVSZWNlaXZlcgkBCWdldFN0ckJ5SwECEWNvbmZfZmVlX3JlY2VpdmVyAApldmVudHNEYXBwCQEFdmFsdWUBCQCmCAEJAQlnZXRTdHJCeUsBAhBjb25mX2V2ZW50c19kYXBwAAh1c2VyRGFwcAkBBXZhbHVlAQkApggBCQEJZ2V0U3RyQnlLAQIPY29uZl91c2Vyc19kYXBwAAtzaWduQXNzZXRJZAkA2QQBCQEJZ2V0U3RyQnlLAQIYY29uZl9hY2NlcHRlZF9hc3NldF9TSUdOAAVjaHJpcwkBCWdldFN0ckJ5SwECDGNvbmZfYWRtaW5fMQAHc2lnbkN1dAADAAxvcmdhbml6ZXJDdXQACgANdXNlclN1c3BlbmRlZAIJU1VTUEVOREVEAAxldmVudElsbGVnYWwCB0lMTEVHQUwADmV2ZW50U3VzcGVuZGVkAglTVVNQRU5ERUQADmRhcHBSdW5uaW5nS2V5AhRjb25mX2RhcHBfaXNfcnVubmluZwARbWFpbnRlbmFuY2VNU0dLZXkCFGNvbmZfbWFpbnRlbmFuY2VfbXNnAAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQ5kYXBwUnVubmluZ0tleQYADm1haW50ZW5hbmNlTVNHCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFEW1haW50ZW5hbmNlTVNHS2V5AgAACW51bVNhbGVzSwIJbnVtX3NhbGVzAQ1nZXRVc2VyU3RyQnlLAQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUIdXNlckRhcHAFA2tleQIFRXJyb3IBDmdldEV2ZW50U3RyQnlLAQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUKZXZlbnRzRGFwcAUDa2V5AgABCWdldEludEJ5SwEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAQ1rZXlVc2VyU3RhdHVzAQRhZGRyCQCsAgICDHVzZXJfc3RhdHVzXwUEYWRkcgEHa2V5RmxhZwINb3JnYW5pemVyQWRkcgdldmVudElkCQCsAgIJAKwCAgkArAICAgtldmVudF9mbGFnXwUHZXZlbnRJZAIBXwUNb3JnYW5pemVyQWRkcgEKa2V5TkZURGF0YQECaWQJAKwCAgIEbmZ0XwUCaWQBCmdldFNhbGVLZXkEBmNhbGxlcgh0aWNrZXRJZAdldmVudElkDW9yZ2FuaXplckFkZHIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgINc2FsZTJuZF9pbmZvXwUGY2FsbGVyAgFfBQh0aWNrZXRJZAIBXwUHZXZlbnRJZAIBXwUNb3JnYW5pemVyQWRkcgEJZ2V0QmlkS2V5BApvZmZlck93bmVyCHRpY2tldElkCXNhbGVPd25lcgdvZmZlcklkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCW9mZmVyMm5kXwUKb2ZmZXJPd25lcgIBXwUIdGlja2V0SWQCAV8FCXNhbGVPd25lcgIBXwUHb2ZmZXJJZAEMaWRDYWxsZXJEYXRlAQFpAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHCQCVCgMJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAEJaXNQYXltZW50AQFpAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECE05vIHBheW1lbnQgYXR0YWNoZWQEB3BheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQGYW1vdW50CQEFdmFsdWUBCAUHcGF5bWVudAZhbW91bnQJAJQKAgUHcGF5bWVudAUGYW1vdW50AQxhc3NldElzVmFsaWQBDGFzc2V0RGV0YWlscwMDAwkAAAIIBQxhc3NldERldGFpbHMIcXVhbnRpdHkAAQkAAAIIBQxhc3NldERldGFpbHMIZGVjaW1hbHMAAAcJAAACCAUMYXNzZXREZXRhaWxzCnJlaXNzdWFibGUHBwkAAAIIBQxhc3NldERldGFpbHMGaXNzdWVyBQpldmVudHNEYXBwBwEOaXNTaWduRXZlbnRORlQBAmlkBAxhc3NldERldGFpbHMJAQV2YWx1ZQEJAOwHAQUCaWQJAQxhc3NldElzVmFsaWQBBQxhc3NldERldGFpbHMBEGFjY2VwdGVkQXNzZXRJZHMBB2Fzc2V0SWQDCQECIT0CBQdhc3NldElkCQDYBAEFC3NpZ25Bc3NldElkBwYBDWdldEJpZEFzc2V0SWQBB2Fzc2V0SWQJANkEAQUHYXNzZXRJZAEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQh0aWNrZXRJZAQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQh0aWNrZXRJZAMJAAACCQCxAgEFCXNhbGVPd25lcgAACQACAQIQVGlja2V0IG5vdCBmb3VuZAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUJc2FsZU93bmVyAgFfBQh0aWNrZXRJZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAhNUaWNrZXQgbm90IGZvciBzYWxlBQlzYWxlT3duZXIBCmdldEJpZERhdGEBA2tleQQHYmlkRGF0YQkBCWdldFN0ckJ5SwEJAKwCAgUDa2V5AgVfT1BFTgMJAAACBQdiaWREYXRhAgAJAAIBAg9PZmZlciBub3QgZm91bmQECmJpZERhdGFBcnIJALUJAgUHYmlkRGF0YQIBXwQHYXNzZXRJZAkBDWdldEJpZEFzc2V0SWQBCQCRAwIFCmJpZERhdGFBcnIAAgkAlQoDBQpiaWREYXRhQXJyBQdhc3NldElkBQdiaWREYXRhAQxldmVudElzVmFsaWQBC2V2ZW50U3RhdHVzAwkBAiE9AgULZXZlbnRTdGF0dXMFDGV2ZW50SWxsZWdhbAkBAiE9AgULZXZlbnRTdGF0dXMFDmV2ZW50U3VzcGVuZGVkBwEQY2hlY2tFdmVudFN0YXR1cwIEYWRkcgJpZAQLZXZlbnRTdGF0dXMJAQ5nZXRFdmVudFN0ckJ5SwEJAQdrZXlGbGFnAgUEYWRkcgUCaWQDCQEMZXZlbnRJc1ZhbGlkAQULZXZlbnRTdGF0dXMGCQACAQkArAICAhpPcmlnaW5hbCBldmVudCBmbGFnZ2VkIGFzIAULZXZlbnRTdGF0dXMBFGNoZWNrT3JnYW5pemVyU3RhdHVzAQRhZGRyBA9vcmdhbml6ZXJTdGF0dXMJAQ1nZXRVc2VyU3RyQnlLAQkBDWtleVVzZXJTdGF0dXMBBQRhZGRyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUNdXNlclN1c3BlbmRlZAUDbmlsBQ9vcmdhbml6ZXJTdGF0dXMJAAIBCQCsAgICE09yaWdpbmFsIG9yZ2FuaXplciAFD29yZ2FuaXplclN0YXR1cwYBDGNoZWNrTkZUSW5mbwEHYXNzZXRJZAQHbmZ0RGF0YQkAtQkCCQEOZ2V0RXZlbnRTdHJCeUsBCQEKa2V5TkZURGF0YQEFB2Fzc2V0SWQCAV8DAwkBASEBCQEQY2hlY2tFdmVudFN0YXR1cwIJAJEDAgUHbmZ0RGF0YQAGCQCRAwIFB25mdERhdGEABQkBASEBCQEUY2hlY2tPcmdhbml6ZXJTdGF0dXMBCQCRAwIFB25mdERhdGEABgcJAJUKAwcJAJEDAgUHbmZ0RGF0YQAFCQCRAwIFB25mdERhdGEABgkAlQoDBgkAkQMCBQduZnREYXRhAAUJAJEDAgUHbmZ0RGF0YQAGAQ9jaGVja0VWRU5URXhpc3QCBWFydElkC2NyZWF0b3JBZGRyAwMJAQEhAQkBEGNoZWNrRXZlbnRTdGF0dXMCBQtjcmVhdG9yQWRkcgUFYXJ0SWQJAQEhAQkBFGNoZWNrT3JnYW5pemVyU3RhdHVzAQULY3JlYXRvckFkZHIHBwYBDHNldFRyYW5zZmVycwYGYW1vdW50B2Fzc2V0SWQIdGlja2V0SWQNb3JnYW5pemVyQWRkcglzYWxlT3duZXIGY2FsbGVyBA1hbW91bnRGb3JTaWduCQBrAwUGYW1vdW50BQdzaWduQ3V0AGQEEmFtb3VudEZvck9yZ2FuaXplcgkAawMFBmFtb3VudAUMb3JnYW5pemVyQ3V0AGQEDmFtb3VudEZvck93bmVyCQBlAgUGYW1vdW50CQBkAgUNYW1vdW50Rm9yU2lnbgUSYW1vdW50Rm9yT3JnYW5pemVyBAtjb21taXNzaW9ucwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQULZmVlUmVjZWl2ZXIFDWFtb3VudEZvclNpZ24FB2Fzc2V0SWQFA25pbAQMb3JnYW5pemVyRmVlCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUNb3JnYW5pemVyQWRkcgUSYW1vdW50Rm9yT3JnYW5pemVyBQdhc3NldElkBAhvd25lckZlZQkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFCXNhbGVPd25lcgUOYW1vdW50Rm9yT3duZXIFB2Fzc2V0SWQEDGNvbGxlY3Rvck5GVAkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCQDZBAEFCHRpY2tldElkCQCWCgQFC2NvbW1pc3Npb25zBQxvcmdhbml6ZXJGZWUFCG93bmVyRmVlBQxjb2xsZWN0b3JORlQBD3Byb3ZpZGVCYXNlRGF0YQIBaQh0aWNrZXRJZAQLJHQwNTc2MDU3OTkJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFCyR0MDU3NjA1Nzk5Al8xBAZjYWxsZXIIBQskdDA1NzYwNTc5OQJfMgQEZGF0ZQgFCyR0MDU3NjA1Nzk5Al8zBAskdDA1ODAyNTg2MwkBDGNoZWNrTkZUSW5mbwEFCHRpY2tldElkBAppc1ZhbGlkTkZUCAULJHQwNTgwMjU4NjMCXzEEBWFydElkCAULJHQwNTgwMjU4NjMCXzIEC2NyZWF0b3JBZGRyCAULJHQwNTgwMjU4NjMCXzMJAJgKBgUCaWQFBmNhbGxlcgUEZGF0ZQUKaXNWYWxpZE5GVAUFYXJ0SWQFC2NyZWF0b3JBZGRyAQ51cGRhdGVOdW1TYWxlcwAECG51bVNhbGVzCQEJZ2V0SW50QnlLAQUJbnVtU2FsZXNLCQEMSW50ZWdlckVudHJ5AgUJbnVtU2FsZXNLCQBkAgUIbnVtU2FsZXMAAQkGaW52b2tlAQdzZXRDb25mAgNrZXkDdmFsBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwkBCGNvbnRhaW5zAgUDa2V5AgVjb25mXwkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkFA3ZhbAUDbmlsCQACAQIgRW50cmllcyBzdGFydGluZyB3aXRoIGNvbmZfIG9ubHkJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEKYXBwUnVubmluZwIGaXNMaXZlB21lc3NhZ2UEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgQCaWQJANgEAQgFBmludm9rZQ10cmFuc2FjdGlvbklkAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUOZGFwcFJ1bm5pbmdLZXkFBmlzTGl2ZQkAzAgCCQELU3RyaW5nRW50cnkCBRFtYWludGVuYW5jZU1TR0tleQUHbWVzc2FnZQUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwFpAQdzZWxsTkZUAgVwcmljZQVhc3NldAQLJHQwNjkxNzY5NTMJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAULJHQwNjkxNzY5NTMCXzEEBmFtb3VudAgFCyR0MDY5MTc2OTUzAl8yAwkBAiE9AgUGYW1vdW50AAEJAAIBAhJObyBUaWNrZXQgYXR0YWNoZWQECHRpY2tldElkAwMJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQEOaXNTaWduRXZlbnRORlQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkBwkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkCQACAQIbT25seSBTSUdOIEFydCBORlQgYWNjZXB0ZWQuBAskdDA3MTk1NzI3OQkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFCHRpY2tldElkBAJpZAgFCyR0MDcxOTU3Mjc5Al8xBAZjYWxsZXIIBQskdDA3MTk1NzI3OQJfMgQEZGF0ZQgFCyR0MDcxOTU3Mjc5Al8zBAppc1ZhbGlkTkZUCAULJHQwNzE5NTcyNzkCXzQEBWFydElkCAULJHQwNzE5NTcyNzkCXzUEC2NyZWF0b3JBZGRyCAULJHQwNzE5NTcyNzkCXzYDCQEBIQEFCmlzVmFsaWRORlQJAAIBAhJOb3QgYSB2YWxpZCB0aWNrZXQDCQEBIQEJARBhY2NlcHRlZEFzc2V0SWRzAQUFYXNzZXQJAAIBAhhPbmx5IFNJR04gdG9rZW4gYWNjZXB0ZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQEKZ2V0U2FsZUtleQQFBmNhbGxlcgUIdGlja2V0SWQFBWFydElkBQtjcmVhdG9yQWRkcgIFX09QRU4JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUEZGF0ZQIBXwkApAMBBQVwcmljZQIBXwUFYXNzZXQCAV8FCHRpY2tldElkAgFfBQVhcnRJZAIBXwULY3JlYXRvckFkZHICAV8FAmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQh0aWNrZXRJZAIET1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FCHRpY2tldElkBQZjYWxsZXIFA25pbAFpAQ91cGRhdGVTYWxlUHJpY2UDCHRpY2tldElkBXByaWNlBWFzc2V0BAskdDA3ODczNzk1NwkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFCHRpY2tldElkBAJpZAgFCyR0MDc4NzM3OTU3Al8xBAZjYWxsZXIIBQskdDA3ODczNzk1NwJfMgQEZGF0ZQgFCyR0MDc4NzM3OTU3Al8zBAppc1ZhbGlkTkZUCAULJHQwNzg3Mzc5NTcCXzQEBWFydElkCAULJHQwNzg3Mzc5NTcCXzUEC2NyZWF0b3JBZGRyCAULJHQwNzg3Mzc5NTcCXzYDCQEBIQEFCmlzVmFsaWRORlQJAAIBAhJOb3QgYSB2YWxpZCB0aWNrZXQECXNhbGVPd25lcgkBCWdldFN0ckJ5SwEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUIdGlja2V0SWQDCQECIT0CBQlzYWxlT3duZXIFBmNhbGxlcgkAAgECGVlvdSBkb24ndCBvd24gdGhpcyB0aWNrZXQECnNhbGVTdGF0dXMJAQlnZXRTdHJCeUsBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FBmNhbGxlcgIBXwUIdGlja2V0SWQDCQECIT0CBQpzYWxlU3RhdHVzAgRPUEVOCQACAQIPU2FsZSBub3QgYWN0aXZlAwkBASEBCQEQYWNjZXB0ZWRBc3NldElkcwEFBWFzc2V0CQACAQIYT25seSBTSUdOIHRva2VuIGFjY2VwdGVkBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQQFBmNhbGxlcgUIdGlja2V0SWQFBWFydElkBQtjcmVhdG9yQWRkcgQIc2FsZUluZm8JALUJAgkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4CAV8JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQdzYWxlS2V5AgVfT1BFTgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkAkQMCBQhzYWxlSW5mbwAAAgFfCQCkAwEFBXByaWNlAgFfBQVhc3NldAIBXwkAkQMCBQhzYWxlSW5mbwADAgFfCQCRAwIFCHNhbGVJbmZvAAQCAV8JAJEDAgUIc2FsZUluZm8ABQIBXwkAkQMCBQhzYWxlSW5mbwAGBQNuaWwBaQEKY2FuY2VsU2FsZQEIdGlja2V0SWQECyR0MDg5Mjc5MTU5CQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUIdGlja2V0SWQEAmlkCAULJHQwODkyNzkxNTkCXzEEBmNhbGxlcggFCyR0MDg5Mjc5MTU5Al8yBARkYXRlCAULJHQwODkyNzkxNTkCXzMECmlzVmFsaWRORlQIBQskdDA4OTI3OTE1OQJfNAQFYXJ0SWQIBQskdDA4OTI3OTE1OQJfNQQLY3JlYXRvckFkZHIIBQskdDA4OTI3OTE1OQJfNgQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQh0aWNrZXRJZAMJAQIhPQIFCXNhbGVPd25lcgUGY2FsbGVyCQACAQIZWW91IGRvbid0IG93biB0aGlzIHRpY2tldAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQh0aWNrZXRJZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAg9TYWxlIG5vdCBhY3RpdmUEB3NhbGVLZXkJAQpnZXRTYWxlS2V5BAUGY2FsbGVyBQh0aWNrZXRJZAUFYXJ0SWQFC2NyZWF0b3JBZGRyBAhzYWxlSW5mbwkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQdzYWxlS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FBmNhbGxlcgIBXwUIdGlja2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQh0aWNrZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQdzYWxlS2V5AgFfBQJpZAIKX0NBTkNFTExFRAkArAICCQCsAgIJAKwCAgkArAICBQhzYWxlSW5mbwILX0NBTkNFTExFRF8JAKQDAQUEZGF0ZQIBXwUCaWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCQDZBAEFCHRpY2tldElkBQNuaWwBaQEGYnV5TkZUAQh0aWNrZXRJZAQNJHQwMTAwMTQxMDEyNwkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFCHRpY2tldElkBAJpZAgFDSR0MDEwMDE0MTAxMjcCXzEEBmNhbGxlcggFDSR0MDEwMDE0MTAxMjcCXzIEBGRhdGUIBQ0kdDAxMDAxNDEwMTI3Al8zBAppc1ZhbGlkTkZUCAUNJHQwMTAwMTQxMDEyNwJfNAQFYXJ0SWQIBQ0kdDAxMDAxNDEwMTI3Al81BAtjcmVhdG9yQWRkcggFDSR0MDEwMDE0MTAxMjcCXzYDCQEBIQEFCmlzVmFsaWRORlQJAAIBAhJOb3QgYSB2YWxpZCB0aWNrZXQECXNhbGVPd25lcgkBFWdldFNhbGVPd25lckFuZFN0YXR1cwEFCHRpY2tldElkBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQQFCXNhbGVPd25lcgUIdGlja2V0SWQFBWFydElkBQtjcmVhdG9yQWRkcgQIc2FsZUluZm8JAQlnZXRTdHJCeUsBCQCsAgIFB3NhbGVLZXkCBV9PUEVOAwkAAAIJALECAQUIc2FsZUluZm8AAAkAAgECD1NhbGUgTm90IGZvdW5kIQQNc2FsZUluZm9BcnJheQkAtQkCBQhzYWxlSW5mbwIBXwMJAAACCQC2CQEJAJEDAgUNc2FsZUluZm9BcnJheQABAAAJAAIBAgpPZmZlciBvbmx5BA0kdDAxMDUzNTEwNTcxCQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDEwNTM1MTA1NzECXzEEBmFtb3VudAgFDSR0MDEwNTM1MTA1NzECXzIED3BheW1lbnRBc3NldFN0cgMJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQCAAMDCQECIT0CCQCRAwIFDXNhbGVJbmZvQXJyYXkAAQkApAMBBQZhbW91bnQGCQECIT0CCQCRAwIFDXNhbGVJbmZvQXJyYXkAAgUPcGF5bWVudEFzc2V0U3RyCQACAQIaUGF5bWVudCBpbmZvcyBkb24ndCBtYXRjaC4EDSR0MDEwODE1MTA5NTAJAQxzZXRUcmFuc2ZlcnMGBQZhbW91bnQIBQdwYXltZW50B2Fzc2V0SWQFCHRpY2tldElkBQtjcmVhdG9yQWRkcgUJc2FsZU93bmVyBQZjYWxsZXIEC2NvbW1pc3Npb25zCAUNJHQwMTA4MTUxMDk1MAJfMQQKY3JlYXRvckZlZQgFDSR0MDEwODE1MTA5NTACXzIECG93bmVyRmVlCAUNJHQwMTA4MTUxMDk1MAJfMwQMY29sbGVjdG9yTkZUCAUNJHQwMTA4MTUxMDk1MAJfNAkAzggCCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQlzYWxlT3duZXICAV8FCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUIdGlja2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHc2FsZUtleQIBXwUCaWQCB19DTE9TRUQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAIBXwUGY2FsbGVyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUKY3JlYXRvckZlZQkAzAgCBQhvd25lckZlZQkAzAgCBQxjb2xsZWN0b3JORlQFA25pbAULY29tbWlzc2lvbnMBaQEIc2V0T2ZmZXIBCHRpY2tldElkBA0kdDAxMTM3MDExNDU4CQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUIdGlja2V0SWQEAmlkCAUNJHQwMTEzNzAxMTQ1OAJfMQQKb2ZmZXJPd25lcggFDSR0MDExMzcwMTE0NTgCXzIEBGRhdGUIBQ0kdDAxMTM3MDExNDU4Al8zBAppc1ZhbGlkTkZUCAUNJHQwMTEzNzAxMTQ1OAJfNAQFYXJ0SWQIBQ0kdDAxMTM3MDExNDU4Al81BAtjcmVhdG9yQWRkcggFDSR0MDExMzcwMTE0NTgCXzYDCQEBIQEFCmlzVmFsaWRORlQJAAIBAhJOb3QgYSB2YWxpZCB0aWNrZXQEDSR0MDExNTIyMTE1NTgJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAUNJHQwMTE1MjIxMTU1OAJfMQQGYW1vdW50CAUNJHQwMTE1MjIxMTU1OAJfMgQHYXNzZXRJZAkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkAwkBASEBCQEQYWNjZXB0ZWRBc3NldElkcwEFB2Fzc2V0SWQJAAIBAhJhc3NldCBub3QgYWNjZXB0ZWQDCQAAAgUGYW1vdW50AAAJAAIBAhZPZmZlciBvZiAwIG5vdCBhbGxvd2VkBAlzYWxlT3duZXIJARVnZXRTYWxlT3duZXJBbmRTdGF0dXMBBQh0aWNrZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAQlnZXRCaWRLZXkEBQpvZmZlck93bmVyBQh0aWNrZXRJZAUJc2FsZU93bmVyBQJpZAIFX09QRU4JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCkAwEFBGRhdGUCAV8JAKQDAQUGYW1vdW50AgFfBQdhc3NldElkAgFfBQh0aWNrZXRJZAIBXwUFYXJ0SWQCAV8FC2NyZWF0b3JBZGRyAgFfBQpvZmZlck93bmVyAgFfBQJpZAUDbmlsAWkBC2FjY2VwdE9mZmVyAwh0aWNrZXRJZAdvZmZlcklkCm9mZmVyT3duZXIEDSR0MDEyMjM2MTIzMjAJAQ9wcm92aWRlQmFzZURhdGECBQFpBQh0aWNrZXRJZAQCaWQIBQ0kdDAxMjIzNjEyMzIwAl8xBAZjYWxsZXIIBQ0kdDAxMjIzNjEyMzIwAl8yBARkYXRlCAUNJHQwMTIyMzYxMjMyMAJfMwQKaXNWYWxpZE5GVAgFDSR0MDEyMjM2MTIzMjACXzQEBWFydElkCAUNJHQwMTIyMzYxMjMyMAJfNQQLY3JlYXRvckFkZHIIBQ0kdDAxMjIzNjEyMzIwAl82AwkBASEBBQppc1ZhbGlkTkZUCQACAQISTm90IGEgdmFsaWQgdGlja2V0BAlzYWxlT3duZXIJARVnZXRTYWxlT3duZXJBbmRTdGF0dXMBBQh0aWNrZXRJZAMJAQIhPQIFBmNhbGxlcgUJc2FsZU93bmVyCQACAQIgT25seSBzYWxlIG93bmVyIGNhbiBhY2NlcHQgb2ZmZXIEBmJpZEtleQkBCWdldEJpZEtleQQFCm9mZmVyT3duZXIFCHRpY2tldElkBQlzYWxlT3duZXIFB29mZmVySWQEDSR0MDEyNTgzMTI2MzgJAQpnZXRCaWREYXRhAQUGYmlkS2V5BApiaWREYXRhQXJyCAUNJHQwMTI1ODMxMjYzOAJfMQQHYXNzZXRJZAgFDSR0MDEyNTgzMTI2MzgCXzIEB2JpZERhdGEIBQ0kdDAxMjU4MzEyNjM4Al8zBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQQFCXNhbGVPd25lcgUIdGlja2V0SWQFBWFydElkBQtjcmVhdG9yQWRkcgQIc2FsZUluZm8JAQlnZXRTdHJCeUsBCQCsAgIFB3NhbGVLZXkCBV9PUEVOAwkAAAIJALECAQUIc2FsZUluZm8AAAkAAgECD1NhbGUgTm90IGZvdW5kIQQGYW1vdW50CQEFdmFsdWUBCQC2CQEJAJEDAgUKYmlkRGF0YUFycgABBA0kdDAxMjg3NzEzMDExCQEMc2V0VHJhbnNmZXJzBgUGYW1vdW50BQdhc3NldElkBQh0aWNrZXRJZAULY3JlYXRvckFkZHIFCXNhbGVPd25lcgkAkQMCBQpiaWREYXRhQXJyAAYEC2NvbW1pc3Npb25zCAUNJHQwMTI4NzcxMzAxMQJfMQQKY3JlYXRvckZlZQgFDSR0MDEyODc3MTMwMTECXzIECG93bmVyRmVlCAUNJHQwMTI4NzcxMzAxMQJfMwQMY29sbGVjdG9yTkZUCAUNJHQwMTI4NzcxMzAxMQJfNAQKYXNzZXRJZFN0cgkA2AQBCQEFdmFsdWUBBQdhc3NldElkCQDOCAIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQdzYWxlS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFBmJpZEtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQlzYWxlT3duZXICAV8FCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUIdGlja2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQZiaWRLZXkCB19DTE9TRUQJAKwCAgkArAICCQCsAgIJAKwCAgUHYmlkRGF0YQIIX0NMT1NFRF8JAKQDAQUEZGF0ZQIBXwUCaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHc2FsZUtleQIBXwUCaWQCB19DTE9TRUQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUIc2FsZUluZm8CDl9DTE9TRUQtT0ZGRVJfCQCkAwEFBGRhdGUCAV8FAmlkAgFfBQpvZmZlck93bmVyAgFfCQCkAwEFBmFtb3VudAIBXwUKYXNzZXRJZFN0cgkAzAgCCQEOdXBkYXRlTnVtU2FsZXMACQDMCAIFCmNyZWF0b3JGZWUJAMwIAgUIb3duZXJGZWUJAMwIAgUMY29sbGVjdG9yTkZUBQNuaWwFC2NvbW1pc3Npb25zAWkBC2NhbmNlbE9mZmVyBAh0aWNrZXRJZAdvZmZlcklkCm9mZmVyT3duZXIJc2FsZU93bmVyBA0kdDAxMzc4MDEzODUyCQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAxMzc4MDEzODUyAl8xBAZjYWxsZXIIBQ0kdDAxMzc4MDEzODUyAl8yBARkYXRlCAUNJHQwMTM3ODAxMzg1MgJfMwMDCQECIT0CBQZjYWxsZXIFCm9mZmVyT3duZXIJAQIhPQIFBmNhbGxlcgUJc2FsZU93bmVyBwkAAgECHVlvdSBjYW5ub3QgY2FuY2VsIHRoaXMgb2ZmZXIuBAZiaWRLZXkJAQlnZXRCaWRLZXkEBQpvZmZlck93bmVyBQh0aWNrZXRJZAUJc2FsZU93bmVyBQdvZmZlcklkBA0kdDAxNDAyNzE0MDgyCQEKZ2V0QmlkRGF0YQEFBmJpZEtleQQKYmlkRGF0YUFycggFDSR0MDE0MDI3MTQwODICXzEEB2Fzc2V0SWQIBQ0kdDAxNDAyNzE0MDgyAl8yBAdiaWREYXRhCAUNJHQwMTQwMjcxNDA4MgJfMwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFBmJpZEtleQIFX09QRU4JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQZiaWRLZXkCCl9DQU5DRUxMRUQJAKwCAgkArAICCQCsAgIJAKwCAgUHYmlkRGF0YQILX0NBTkNFTExFRF8JAKQDAQUEZGF0ZQIBXwUCaWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCmJpZERhdGFBcnIAAQUHYXNzZXRJZAUDbmlsAK7JjhM=", "height": 2300761, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 43JW21EzuU76kDh5mg94yP4WkjwEgaiM5GYmFcs8roFF Next: 3BnBQwfJ5Udob2mKaDHcqGMXcLnGoy9TSnn9rADFAeMd Diff:
OldNewDifferences
66 func b (c) = valueOrElse(getString(this, c), "")
77
88
9-let d = value(addressFromString(b("conf_oracle_fee")))
9+let d = b("conf_fee_receiver")
1010
11-let e = b("conf_fee_receiver")
11+let e = value(addressFromString(b("conf_events_dapp")))
1212
13-let f = value(addressFromString(b("conf_artworks_dapp")))
13+let f = value(addressFromString(b("conf_users_dapp")))
1414
15-let g = value(addressFromString(b("conf_users_dapp")))
15+let g = fromBase58String(b("conf_accepted_asset_SIGN"))
1616
17-let h = fromBase58String(b("conf_accepted_asset_SIGN"))
17+let h = b("conf_admin_1")
1818
19-let i = b("conf_admin_1")
19+let i = 3
2020
21-let j = 3
21+let j = 10
2222
23-let k = 10
23+let k = "SUSPENDED"
2424
25-let l = "SUSPENDED"
25+let l = "ILLEGAL"
2626
27-let m = "ILLEGAL"
27+let m = "SUSPENDED"
2828
29-let n = "SUSPENDED"
29+let n = "conf_dapp_is_running"
3030
31-let o = "conf_dapp_is_running"
31+let o = "conf_maintenance_msg"
3232
33-let p = "conf_maintenance_msg"
33+let p = valueOrElse(getBoolean(this, n), true)
3434
35-let q = valueOrElse(getBoolean(this, o), true)
35+let q = valueOrElse(getString(this, o), "")
3636
37-let r = valueOrElse(getString(this, p), "")
37+let r = "num_sales"
3838
39-let s = "num_sales"
40-
41-func t (c) = valueOrElse(getString(g, c), "Error")
39+func s (c) = valueOrElse(getString(f, c), "Error")
4240
4341
44-func u (c) = valueOrElse(getString(f, c), "")
42+func t (c) = valueOrElse(getString(e, c), "")
4543
4644
47-func v (c) = valueOrElse(getInteger(this, c), 0)
45+func u (c) = valueOrElse(getInteger(this, c), 0)
4846
4947
50-func w (x) = ("user_status_" + x)
48+func v (w) = ("user_status_" + w)
5149
5250
53-func y (z,A) = ((("event_flag_" + A) + "_") + z)
51+func x (y,z) = ((("event_flag_" + z) + "_") + y)
5452
5553
56-func B (C) = ("nft_" + C)
54+func A (B) = ("nft_" + B)
5755
5856
59-func D (E,F,A,z) = ((((((("sale2nd_info_" + E) + "_") + F) + "_") + A) + "_") + z)
57+func C (D,E,z,y) = ((((((("sale2nd_info_" + D) + "_") + E) + "_") + z) + "_") + y)
6058
6159
62-func G (H,F,I,J) = ((((((("offer2nd_" + H) + "_") + F) + "_") + I) + "_") + J)
60+func F (G,E,H,I) = ((((((("offer2nd_" + G) + "_") + E) + "_") + H) + "_") + I)
6361
6462
65-func K (c) = valueOrErrorMessage(getInteger(d, c), "Integer undefine or 0 in oracle")
63+func J (K) = if (!(p))
64+ then throw(q)
65+ else $Tuple3(toBase58String(K.transactionId), toBase58String(K.caller.bytes), lastBlock.timestamp)
6666
6767
68-func L (M) = if (!(q))
69- then throw(r)
70- else $Tuple3(toBase58String(M.transactionId), toBase58String(M.caller.bytes), lastBlock.timestamp)
71-
72-
73-func N (M) = if ((size(M.payments) == 0))
68+func L (K) = if ((size(K.payments) == 0))
7469 then throw("No payment attached")
7570 else {
76- let O = value(M.payments[0])
77- let P = value(O.amount)
78- $Tuple2(O, P)
71+ let M = value(K.payments[0])
72+ let N = value(M.amount)
73+ $Tuple2(M, N)
7974 }
8075
8176
82-func Q (R) = if (if (if ((R.quantity == 1))
83- then (R.decimals == 0)
77+func O (P) = if (if (if ((P.quantity == 1))
78+ then (P.decimals == 0)
8479 else false)
85- then (R.reissuable == false)
80+ then (P.reissuable == false)
8681 else false)
87- then (R.issuer == f)
82+ then (P.issuer == e)
8883 else false
8984
9085
91-func S (C) = {
92- let R = value(assetInfo(C))
93- Q(R)
86+func Q (B) = {
87+ let P = value(assetInfo(B))
88+ O(P)
9489 }
9590
9691
97-func T (U) = if ((U != toBase58String(h)))
92+func R (S) = if ((S != toBase58String(g)))
9893 then false
9994 else true
10095
10196
102-func V (U) = fromBase58String(U)
97+func T (S) = fromBase58String(S)
10398
10499
105-func W (F) = {
106- let I = b(("current_owner_on_dapp_" + F))
107- if ((size(I) == 0))
100+func U (E) = {
101+ let H = b(("current_owner_on_dapp_" + E))
102+ if ((size(H) == 0))
108103 then throw("Ticket not found")
109104 else {
110- let X = b(((("sale2nd_status_" + I) + "_") + F))
111- if ((X != "OPEN"))
105+ let V = b(((("sale2nd_status_" + H) + "_") + E))
106+ if ((V != "OPEN"))
112107 then throw("Ticket not for sale")
113- else I
108+ else H
114109 }
115110 }
116111
117112
118-func Y (c) = {
119- let Z = b((c + "_OPEN"))
120- if ((Z == ""))
113+func W (c) = {
114+ let X = b((c + "_OPEN"))
115+ if ((X == ""))
121116 then throw("Offer not found")
122117 else {
123- let aa = split(Z, "_")
124- let U = V(aa[2])
125- $Tuple3(aa, U, Z)
118+ let Y = split(X, "_")
119+ let S = T(Y[2])
120+ $Tuple3(Y, S, X)
126121 }
127122 }
128123
129124
130-func ab (ac) = if ((ac != m))
131- then (ac != n)
125+func Z (aa) = if ((aa != l))
126+ then (aa != m)
132127 else false
133128
134129
135-func ad (x,C) = {
136- let ac = u(y(x, C))
137- if (ab(ac))
130+func ab (w,B) = {
131+ let aa = t(x(w, B))
132+ if (Z(aa))
138133 then true
139- else throw(("Original event flagged as " + ac))
134+ else throw(("Original event flagged as " + aa))
140135 }
141136
142137
143-func ae (x) = {
144- let af = t(w(x))
145- if (containsElement([l], af))
146- then throw(("Original organizer " + af))
138+func ac (w) = {
139+ let ad = s(v(w))
140+ if (containsElement([k], ad))
141+ then throw(("Original organizer " + ad))
147142 else true
148143 }
149144
150145
151-func ag (U) = {
152- let ah = split(u(B(U)), "_")
153- if (if (!(ad(ah[6], ah[5])))
154- then !(ae(ah[6]))
146+func ae (S) = {
147+ let af = split(t(A(S)), "_")
148+ if (if (!(ab(af[6], af[5])))
149+ then !(ac(af[6]))
155150 else false)
156- then $Tuple3(false, ah[5], ah[6])
157- else $Tuple3(true, ah[5], ah[6])
151+ then $Tuple3(false, af[5], af[6])
152+ else $Tuple3(true, af[5], af[6])
158153 }
159154
160155
161-func ai (aj,ak) = if (if (!(ad(ak, aj)))
162- then !(ae(ak))
156+func ag (ah,ai) = if (if (!(ab(ai, ah)))
157+ then !(ac(ai))
163158 else false)
164159 then false
165160 else true
166161
167162
168-func al (P,U,F,z,I,E) = {
169- let am = fraction(P, j, 100)
170- let an = fraction(P, k, 100)
171- let ao = (P - (am + an))
172- let ap = [ScriptTransfer(Address(fromBase58String(e)), am, U)]
173- let aq = ScriptTransfer(Address(fromBase58String(z)), an, U)
174- let ar = ScriptTransfer(Address(fromBase58String(I)), ao, U)
175- let as = ScriptTransfer(Address(fromBase58String(E)), 1, fromBase58String(F))
176- $Tuple4(ap, aq, ar, as)
163+func aj (N,S,E,y,H,D) = {
164+ let ak = fraction(N, i, 100)
165+ let al = fraction(N, j, 100)
166+ let am = (N - (ak + al))
167+ let an = [ScriptTransfer(Address(fromBase58String(d)), ak, S)]
168+ let ao = ScriptTransfer(Address(fromBase58String(y)), al, S)
169+ let ap = ScriptTransfer(Address(fromBase58String(H)), am, S)
170+ let aq = ScriptTransfer(Address(fromBase58String(D)), 1, fromBase58String(E))
171+ $Tuple4(an, ao, ap, aq)
177172 }
178173
179174
180-func at (M,F) = {
181- let au = L(M)
182- let C = au._1
183- let E = au._2
184- let av = au._3
185- let aw = ag(F)
186- let ax = aw._1
187- let aj = aw._2
188- let ak = aw._3
189- $Tuple6(C, E, av, ax, aj, ak)
175+func ar (K,E) = {
176+ let as = J(K)
177+ let B = as._1
178+ let D = as._2
179+ let at = as._3
180+ let au = ae(E)
181+ let av = au._1
182+ let ah = au._2
183+ let ai = au._3
184+ $Tuple6(B, D, at, av, ah, ai)
190185 }
191186
192187
193-func ay () = {
194- let az = v(s)
195- IntegerEntry(s, (az + 1))
188+func aw () = {
189+ let ax = u(r)
190+ IntegerEntry(r, (ax + 1))
196191 }
197192
198193
199-@Callable(aA)
200-func setConf (c,aB) = {
201- let E = toString(aA.caller)
202- if (containsElement([i, toString(this)], E))
194+@Callable(ay)
195+func setConf (c,az) = {
196+ let D = toString(ay.caller)
197+ if (containsElement([h, toString(this)], D))
203198 then if (contains(c, "conf_"))
204- then [StringEntry(c, aB)]
199+ then [StringEntry(c, az)]
205200 else throw("Entries starting with conf_ only")
206201 else throw("You are not allowed to change this")
207202 }
208203
209204
210205
211-@Callable(aA)
212-func appRunning (aC,aD) = {
213- let E = toString(aA.caller)
214- let C = toBase58String(aA.transactionId)
215- if (containsElement([i, toString(this)], E))
216- then [BooleanEntry(o, aC), StringEntry(p, aD)]
206+@Callable(ay)
207+func appRunning (aA,aB) = {
208+ let D = toString(ay.caller)
209+ let B = toBase58String(ay.transactionId)
210+ if (containsElement([h, toString(this)], D))
211+ then [BooleanEntry(n, aA), StringEntry(o, aB)]
217212 else throw("You are not allowed to change this")
218213 }
219214
220215
221216
222-@Callable(M)
223-func sellNFT (aE,aF) = {
224- let aG = N(M)
225- let O = aG._1
226- let P = aG._2
227- if ((P != 1))
217+@Callable(K)
218+func sellNFT (aC,aD) = {
219+ let aE = L(K)
220+ let M = aE._1
221+ let N = aE._2
222+ if ((N != 1))
228223 then throw("No Ticket attached")
229224 else {
230- let F = if (if (isDefined(O.assetId))
231- then S(value(O.assetId))
225+ let E = if (if (isDefined(M.assetId))
226+ then Q(value(M.assetId))
232227 else false)
233- then toBase58String(value(O.assetId))
228+ then toBase58String(value(M.assetId))
234229 else throw("Only SIGN Art NFT accepted.")
235- let aH = at(M, F)
236- let C = aH._1
237- let E = aH._2
238- let av = aH._3
239- let ax = aH._4
240- let aj = aH._5
241- let ak = aH._6
242- if (!(ax))
230+ let aF = ar(K, E)
231+ let B = aF._1
232+ let D = aF._2
233+ let at = aF._3
234+ let av = aF._4
235+ let ah = aF._5
236+ let ai = aF._6
237+ if (!(av))
243238 then throw("Not a valid ticket")
244- else if (!(T(aF)))
239+ else if (!(R(aD)))
245240 then throw("Only SIGN token accepted")
246- else [StringEntry((D(E, F, aj, ak) + "_OPEN"), ((((((((((((toString(av) + "_") + toString(aE)) + "_") + aF) + "_") + F) + "_") + aj) + "_") + ak) + "_") + C)), StringEntry(((("sale2nd_status_" + E) + "_") + F), "OPEN"), StringEntry(("current_owner_on_dapp_" + F), E)]
241+ else [StringEntry((C(D, E, ah, ai) + "_OPEN"), ((((((((((((toString(at) + "_") + toString(aC)) + "_") + aD) + "_") + E) + "_") + ah) + "_") + ai) + "_") + B)), StringEntry(((("sale2nd_status_" + D) + "_") + E), "OPEN"), StringEntry(("current_owner_on_dapp_" + E), D)]
247242 }
248243 }
249244
250245
251246
252-@Callable(M)
253-func updateSalePrice (F,aE,aF) = {
254- let aI = at(M, F)
255- let C = aI._1
256- let E = aI._2
257- let av = aI._3
258- let ax = aI._4
259- let aj = aI._5
260- let ak = aI._6
261- if (!(ax))
247+@Callable(K)
248+func updateSalePrice (E,aC,aD) = {
249+ let aG = ar(K, E)
250+ let B = aG._1
251+ let D = aG._2
252+ let at = aG._3
253+ let av = aG._4
254+ let ah = aG._5
255+ let ai = aG._6
256+ if (!(av))
262257 then throw("Not a valid ticket")
263258 else {
264- let I = b(("current_owner_on_dapp_" + F))
265- if ((I != E))
259+ let H = b(("current_owner_on_dapp_" + E))
260+ if ((H != D))
266261 then throw("You don't own this ticket")
267262 else {
268- let X = b(((("sale2nd_status_" + E) + "_") + F))
269- if ((X != "OPEN"))
263+ let V = b(((("sale2nd_status_" + D) + "_") + E))
264+ if ((V != "OPEN"))
270265 then throw("Sale not active")
271- else if (!(T(aF)))
266+ else if (!(R(aD)))
272267 then throw("Only SIGN token accepted")
273268 else {
274- let aJ = D(E, F, aj, ak)
275- let aK = split(b((aJ + "_OPEN")), "_")
276-[StringEntry((aJ + "_OPEN"), ((((((((((((aK[0] + "_") + toString(aE)) + "_") + aF) + "_") + aK[3]) + "_") + aK[4]) + "_") + aK[5]) + "_") + aK[6]))]
269+ let aH = C(D, E, ah, ai)
270+ let aI = split(b((aH + "_OPEN")), "_")
271+[StringEntry((aH + "_OPEN"), ((((((((((((aI[0] + "_") + toString(aC)) + "_") + aD) + "_") + aI[3]) + "_") + aI[4]) + "_") + aI[5]) + "_") + aI[6]))]
277272 }
278273 }
279274 }
281276
282277
283278
284-@Callable(M)
285-func cancelSale (F) = {
286- let aL = at(M, F)
287- let C = aL._1
288- let E = aL._2
289- let av = aL._3
290- let ax = aL._4
291- let aj = aL._5
292- let ak = aL._6
293- let I = b(("current_owner_on_dapp_" + F))
294- if ((I != E))
279+@Callable(K)
280+func cancelSale (E) = {
281+ let aJ = ar(K, E)
282+ let B = aJ._1
283+ let D = aJ._2
284+ let at = aJ._3
285+ let av = aJ._4
286+ let ah = aJ._5
287+ let ai = aJ._6
288+ let H = b(("current_owner_on_dapp_" + E))
289+ if ((H != D))
295290 then throw("You don't own this ticket")
296291 else {
297- let X = b(((("sale2nd_status_" + E) + "_") + F))
298- if ((X != "OPEN"))
292+ let V = b(((("sale2nd_status_" + D) + "_") + E))
293+ if ((V != "OPEN"))
299294 then throw("Sale not active")
300295 else {
301- let aJ = D(E, F, aj, ak)
302- let aK = b((aJ + "_OPEN"))
303-[DeleteEntry((aJ + "_OPEN")), DeleteEntry(((("sale2nd_status_" + E) + "_") + F)), DeleteEntry(("current_owner_on_dapp_" + F)), StringEntry((((aJ + "_") + C) + "_CANCELLED"), ((((aK + "_CANCELLED_") + toString(av)) + "_") + C)), ScriptTransfer(Address(fromBase58String(E)), 1, fromBase58String(F))]
296+ let aH = C(D, E, ah, ai)
297+ let aI = b((aH + "_OPEN"))
298+[DeleteEntry((aH + "_OPEN")), DeleteEntry(((("sale2nd_status_" + D) + "_") + E)), DeleteEntry(("current_owner_on_dapp_" + E)), StringEntry((((aH + "_") + B) + "_CANCELLED"), ((((aI + "_CANCELLED_") + toString(at)) + "_") + B)), ScriptTransfer(Address(fromBase58String(D)), 1, fromBase58String(E))]
304299 }
305300 }
306301 }
307302
308303
309304
310-@Callable(M)
311-func buyNFT (F) = {
312- let aM = at(M, F)
313- let C = aM._1
314- let E = aM._2
315- let av = aM._3
316- let ax = aM._4
317- let aj = aM._5
318- let ak = aM._6
319- if (!(ax))
305+@Callable(K)
306+func buyNFT (E) = {
307+ let aK = ar(K, E)
308+ let B = aK._1
309+ let D = aK._2
310+ let at = aK._3
311+ let av = aK._4
312+ let ah = aK._5
313+ let ai = aK._6
314+ if (!(av))
320315 then throw("Not a valid ticket")
321316 else {
322- let I = W(F)
323- let aJ = D(I, F, aj, ak)
324- let aK = b((aJ + "_OPEN"))
325- if ((size(aK) == 0))
317+ let H = U(E)
318+ let aH = C(H, E, ah, ai)
319+ let aI = b((aH + "_OPEN"))
320+ if ((size(aI) == 0))
326321 then throw("Sale Not found!")
327322 else {
328- let aN = split(aK, "_")
329- if ((parseInt(aN[1]) == 0))
323+ let aL = split(aI, "_")
324+ if ((parseInt(aL[1]) == 0))
330325 then throw("Offer only")
331326 else {
332- let aO = N(M)
333- let O = aO._1
334- let P = aO._2
335- let aP = if (isDefined(O.assetId))
336- then toBase58String(value(O.assetId))
327+ let aM = L(K)
328+ let M = aM._1
329+ let N = aM._2
330+ let aN = if (isDefined(M.assetId))
331+ then toBase58String(value(M.assetId))
337332 else ""
338- if (if ((aN[1] != toString(P)))
333+ if (if ((aL[1] != toString(N)))
339334 then true
340- else (aN[2] != aP))
335+ else (aL[2] != aN))
341336 then throw("Payment infos don't match.")
342337 else {
343- let aQ = al(P, O.assetId, F, ak, I, E)
344- let ap = aQ._1
345- let aR = aQ._2
346- let ar = aQ._3
347- let as = aQ._4
348- ([DeleteEntry((aJ + "_OPEN")), DeleteEntry(((("sale2nd_status_" + I) + "_") + F)), DeleteEntry(("current_owner_on_dapp_" + F)), StringEntry((((aJ + "_") + C) + "_CLOSED"), ((((((aK + "_CLOSED_") + toString(av)) + "_") + C) + "_") + E)), ay(), aR, ar, as] ++ ap)
338+ let aO = aj(N, M.assetId, E, ai, H, D)
339+ let an = aO._1
340+ let aP = aO._2
341+ let ap = aO._3
342+ let aq = aO._4
343+ ([DeleteEntry((aH + "_OPEN")), DeleteEntry(((("sale2nd_status_" + H) + "_") + E)), DeleteEntry(("current_owner_on_dapp_" + E)), StringEntry((((aH + "_") + B) + "_CLOSED"), ((((((aI + "_CLOSED_") + toString(at)) + "_") + B) + "_") + D)), aw(), aP, ap, aq] ++ an)
349344 }
350345 }
351346 }
354349
355350
356351
357-@Callable(M)
358-func setOffer (F) = {
359- let aS = at(M, F)
360- let C = aS._1
361- let H = aS._2
362- let av = aS._3
363- let ax = aS._4
364- let aj = aS._5
365- let ak = aS._6
366- if (!(ax))
352+@Callable(K)
353+func setOffer (E) = {
354+ let aQ = ar(K, E)
355+ let B = aQ._1
356+ let G = aQ._2
357+ let at = aQ._3
358+ let av = aQ._4
359+ let ah = aQ._5
360+ let ai = aQ._6
361+ if (!(av))
367362 then throw("Not a valid ticket")
368363 else {
369- let aT = N(M)
370- let O = aT._1
371- let P = aT._2
372- let U = toBase58String(value(O.assetId))
373- if (!(T(U)))
364+ let aR = L(K)
365+ let M = aR._1
366+ let N = aR._2
367+ let S = toBase58String(value(M.assetId))
368+ if (!(R(S)))
374369 then throw("asset not accepted")
375- else if ((P == 0))
370+ else if ((N == 0))
376371 then throw("Offer of 0 not allowed")
377372 else {
378- let I = W(F)
379-[StringEntry((G(H, F, I, C) + "_OPEN"), ((((((((((((((toString(av) + "_") + toString(P)) + "_") + U) + "_") + F) + "_") + aj) + "_") + ak) + "_") + H) + "_") + C))]
373+ let H = U(E)
374+[StringEntry((F(G, E, H, B) + "_OPEN"), ((((((((((((((toString(at) + "_") + toString(N)) + "_") + S) + "_") + E) + "_") + ah) + "_") + ai) + "_") + G) + "_") + B))]
380375 }
381376 }
382377 }
383378
384379
385380
386-@Callable(M)
387-func acceptOffer (F,J,H) = {
388- let aU = at(M, F)
389- let C = aU._1
390- let E = aU._2
391- let av = aU._3
392- let ax = aU._4
393- let aj = aU._5
394- let ak = aU._6
395- if (!(ax))
381+@Callable(K)
382+func acceptOffer (E,I,G) = {
383+ let aS = ar(K, E)
384+ let B = aS._1
385+ let D = aS._2
386+ let at = aS._3
387+ let av = aS._4
388+ let ah = aS._5
389+ let ai = aS._6
390+ if (!(av))
396391 then throw("Not a valid ticket")
397392 else {
398- let I = W(F)
399- if ((E != I))
393+ let H = U(E)
394+ if ((D != H))
400395 then throw("Only sale owner can accept offer")
401396 else {
402- let aV = G(H, F, I, J)
403- let aW = Y(aV)
404- let aa = aW._1
405- let U = aW._2
406- let Z = aW._3
407- let aJ = D(I, F, aj, ak)
408- let aK = b((aJ + "_OPEN"))
409- if ((size(aK) == 0))
397+ let aT = F(G, E, H, I)
398+ let aU = W(aT)
399+ let Y = aU._1
400+ let S = aU._2
401+ let X = aU._3
402+ let aH = C(H, E, ah, ai)
403+ let aI = b((aH + "_OPEN"))
404+ if ((size(aI) == 0))
410405 then throw("Sale Not found!")
411406 else {
412- let P = value(parseInt(aa[1]))
413- let aX = al(P, U, F, ak, I, aa[6])
414- let ap = aX._1
415- let aR = aX._2
416- let ar = aX._3
417- let as = aX._4
418- let aY = toBase58String(value(U))
419- ([DeleteEntry((aJ + "_OPEN")), DeleteEntry((aV + "_OPEN")), DeleteEntry(((("sale2nd_status_" + I) + "_") + F)), DeleteEntry(("current_owner_on_dapp_" + F)), StringEntry((aV + "_CLOSED"), ((((Z + "_CLOSED_") + toString(av)) + "_") + C)), StringEntry((((aJ + "_") + C) + "_CLOSED"), ((((((((((aK + "_CLOSED-OFFER_") + toString(av)) + "_") + C) + "_") + H) + "_") + toString(P)) + "_") + aY)), ay(), aR, ar, as] ++ ap)
407+ let N = value(parseInt(Y[1]))
408+ let aV = aj(N, S, E, ai, H, Y[6])
409+ let an = aV._1
410+ let aP = aV._2
411+ let ap = aV._3
412+ let aq = aV._4
413+ let aW = toBase58String(value(S))
414+ ([DeleteEntry((aH + "_OPEN")), DeleteEntry((aT + "_OPEN")), DeleteEntry(((("sale2nd_status_" + H) + "_") + E)), DeleteEntry(("current_owner_on_dapp_" + E)), StringEntry((aT + "_CLOSED"), ((((X + "_CLOSED_") + toString(at)) + "_") + B)), StringEntry((((aH + "_") + B) + "_CLOSED"), ((((((((((aI + "_CLOSED-OFFER_") + toString(at)) + "_") + B) + "_") + G) + "_") + toString(N)) + "_") + aW)), aw(), aP, ap, aq] ++ an)
420415 }
421416 }
422417 }
424419
425420
426421
427-@Callable(M)
428-func cancelOffer (F,J,H,I) = {
429- let aZ = L(M)
430- let C = aZ._1
431- let E = aZ._2
432- let av = aZ._3
433- if (if ((E != H))
434- then (E != I)
422+@Callable(K)
423+func cancelOffer (E,I,G,H) = {
424+ let aX = J(K)
425+ let B = aX._1
426+ let D = aX._2
427+ let at = aX._3
428+ if (if ((D != G))
429+ then (D != H)
435430 else false)
436431 then throw("You cannot cancel this offer.")
437432 else {
438- let aV = G(H, F, I, J)
439- let ba = Y(aV)
440- let aa = ba._1
441- let U = ba._2
442- let Z = ba._3
443-[DeleteEntry((aV + "_OPEN")), StringEntry((aV + "_CANCELLED"), ((((Z + "_CANCELLED_") + toString(av)) + "_") + C)), ScriptTransfer(Address(fromBase58String(E)), parseIntValue(aa[1]), U)]
433+ let aT = F(G, E, H, I)
434+ let aY = W(aT)
435+ let Y = aY._1
436+ let S = aY._2
437+ let X = aY._3
438+[DeleteEntry((aT + "_OPEN")), StringEntry((aT + "_CANCELLED"), ((((X + "_CANCELLED_") + toString(at)) + "_") + B)), ScriptTransfer(Address(fromBase58String(D)), parseIntValue(Y[1]), S)]
444439 }
445440 }
446441
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
9-let d = value(addressFromString(b("conf_oracle_fee")))
9+let d = b("conf_fee_receiver")
1010
11-let e = b("conf_fee_receiver")
11+let e = value(addressFromString(b("conf_events_dapp")))
1212
13-let f = value(addressFromString(b("conf_artworks_dapp")))
13+let f = value(addressFromString(b("conf_users_dapp")))
1414
15-let g = value(addressFromString(b("conf_users_dapp")))
15+let g = fromBase58String(b("conf_accepted_asset_SIGN"))
1616
17-let h = fromBase58String(b("conf_accepted_asset_SIGN"))
17+let h = b("conf_admin_1")
1818
19-let i = b("conf_admin_1")
19+let i = 3
2020
21-let j = 3
21+let j = 10
2222
23-let k = 10
23+let k = "SUSPENDED"
2424
25-let l = "SUSPENDED"
25+let l = "ILLEGAL"
2626
27-let m = "ILLEGAL"
27+let m = "SUSPENDED"
2828
29-let n = "SUSPENDED"
29+let n = "conf_dapp_is_running"
3030
31-let o = "conf_dapp_is_running"
31+let o = "conf_maintenance_msg"
3232
33-let p = "conf_maintenance_msg"
33+let p = valueOrElse(getBoolean(this, n), true)
3434
35-let q = valueOrElse(getBoolean(this, o), true)
35+let q = valueOrElse(getString(this, o), "")
3636
37-let r = valueOrElse(getString(this, p), "")
37+let r = "num_sales"
3838
39-let s = "num_sales"
40-
41-func t (c) = valueOrElse(getString(g, c), "Error")
39+func s (c) = valueOrElse(getString(f, c), "Error")
4240
4341
44-func u (c) = valueOrElse(getString(f, c), "")
42+func t (c) = valueOrElse(getString(e, c), "")
4543
4644
47-func v (c) = valueOrElse(getInteger(this, c), 0)
45+func u (c) = valueOrElse(getInteger(this, c), 0)
4846
4947
50-func w (x) = ("user_status_" + x)
48+func v (w) = ("user_status_" + w)
5149
5250
53-func y (z,A) = ((("event_flag_" + A) + "_") + z)
51+func x (y,z) = ((("event_flag_" + z) + "_") + y)
5452
5553
56-func B (C) = ("nft_" + C)
54+func A (B) = ("nft_" + B)
5755
5856
59-func D (E,F,A,z) = ((((((("sale2nd_info_" + E) + "_") + F) + "_") + A) + "_") + z)
57+func C (D,E,z,y) = ((((((("sale2nd_info_" + D) + "_") + E) + "_") + z) + "_") + y)
6058
6159
62-func G (H,F,I,J) = ((((((("offer2nd_" + H) + "_") + F) + "_") + I) + "_") + J)
60+func F (G,E,H,I) = ((((((("offer2nd_" + G) + "_") + E) + "_") + H) + "_") + I)
6361
6462
65-func K (c) = valueOrErrorMessage(getInteger(d, c), "Integer undefine or 0 in oracle")
63+func J (K) = if (!(p))
64+ then throw(q)
65+ else $Tuple3(toBase58String(K.transactionId), toBase58String(K.caller.bytes), lastBlock.timestamp)
6666
6767
68-func L (M) = if (!(q))
69- then throw(r)
70- else $Tuple3(toBase58String(M.transactionId), toBase58String(M.caller.bytes), lastBlock.timestamp)
71-
72-
73-func N (M) = if ((size(M.payments) == 0))
68+func L (K) = if ((size(K.payments) == 0))
7469 then throw("No payment attached")
7570 else {
76- let O = value(M.payments[0])
77- let P = value(O.amount)
78- $Tuple2(O, P)
71+ let M = value(K.payments[0])
72+ let N = value(M.amount)
73+ $Tuple2(M, N)
7974 }
8075
8176
82-func Q (R) = if (if (if ((R.quantity == 1))
83- then (R.decimals == 0)
77+func O (P) = if (if (if ((P.quantity == 1))
78+ then (P.decimals == 0)
8479 else false)
85- then (R.reissuable == false)
80+ then (P.reissuable == false)
8681 else false)
87- then (R.issuer == f)
82+ then (P.issuer == e)
8883 else false
8984
9085
91-func S (C) = {
92- let R = value(assetInfo(C))
93- Q(R)
86+func Q (B) = {
87+ let P = value(assetInfo(B))
88+ O(P)
9489 }
9590
9691
97-func T (U) = if ((U != toBase58String(h)))
92+func R (S) = if ((S != toBase58String(g)))
9893 then false
9994 else true
10095
10196
102-func V (U) = fromBase58String(U)
97+func T (S) = fromBase58String(S)
10398
10499
105-func W (F) = {
106- let I = b(("current_owner_on_dapp_" + F))
107- if ((size(I) == 0))
100+func U (E) = {
101+ let H = b(("current_owner_on_dapp_" + E))
102+ if ((size(H) == 0))
108103 then throw("Ticket not found")
109104 else {
110- let X = b(((("sale2nd_status_" + I) + "_") + F))
111- if ((X != "OPEN"))
105+ let V = b(((("sale2nd_status_" + H) + "_") + E))
106+ if ((V != "OPEN"))
112107 then throw("Ticket not for sale")
113- else I
108+ else H
114109 }
115110 }
116111
117112
118-func Y (c) = {
119- let Z = b((c + "_OPEN"))
120- if ((Z == ""))
113+func W (c) = {
114+ let X = b((c + "_OPEN"))
115+ if ((X == ""))
121116 then throw("Offer not found")
122117 else {
123- let aa = split(Z, "_")
124- let U = V(aa[2])
125- $Tuple3(aa, U, Z)
118+ let Y = split(X, "_")
119+ let S = T(Y[2])
120+ $Tuple3(Y, S, X)
126121 }
127122 }
128123
129124
130-func ab (ac) = if ((ac != m))
131- then (ac != n)
125+func Z (aa) = if ((aa != l))
126+ then (aa != m)
132127 else false
133128
134129
135-func ad (x,C) = {
136- let ac = u(y(x, C))
137- if (ab(ac))
130+func ab (w,B) = {
131+ let aa = t(x(w, B))
132+ if (Z(aa))
138133 then true
139- else throw(("Original event flagged as " + ac))
134+ else throw(("Original event flagged as " + aa))
140135 }
141136
142137
143-func ae (x) = {
144- let af = t(w(x))
145- if (containsElement([l], af))
146- then throw(("Original organizer " + af))
138+func ac (w) = {
139+ let ad = s(v(w))
140+ if (containsElement([k], ad))
141+ then throw(("Original organizer " + ad))
147142 else true
148143 }
149144
150145
151-func ag (U) = {
152- let ah = split(u(B(U)), "_")
153- if (if (!(ad(ah[6], ah[5])))
154- then !(ae(ah[6]))
146+func ae (S) = {
147+ let af = split(t(A(S)), "_")
148+ if (if (!(ab(af[6], af[5])))
149+ then !(ac(af[6]))
155150 else false)
156- then $Tuple3(false, ah[5], ah[6])
157- else $Tuple3(true, ah[5], ah[6])
151+ then $Tuple3(false, af[5], af[6])
152+ else $Tuple3(true, af[5], af[6])
158153 }
159154
160155
161-func ai (aj,ak) = if (if (!(ad(ak, aj)))
162- then !(ae(ak))
156+func ag (ah,ai) = if (if (!(ab(ai, ah)))
157+ then !(ac(ai))
163158 else false)
164159 then false
165160 else true
166161
167162
168-func al (P,U,F,z,I,E) = {
169- let am = fraction(P, j, 100)
170- let an = fraction(P, k, 100)
171- let ao = (P - (am + an))
172- let ap = [ScriptTransfer(Address(fromBase58String(e)), am, U)]
173- let aq = ScriptTransfer(Address(fromBase58String(z)), an, U)
174- let ar = ScriptTransfer(Address(fromBase58String(I)), ao, U)
175- let as = ScriptTransfer(Address(fromBase58String(E)), 1, fromBase58String(F))
176- $Tuple4(ap, aq, ar, as)
163+func aj (N,S,E,y,H,D) = {
164+ let ak = fraction(N, i, 100)
165+ let al = fraction(N, j, 100)
166+ let am = (N - (ak + al))
167+ let an = [ScriptTransfer(Address(fromBase58String(d)), ak, S)]
168+ let ao = ScriptTransfer(Address(fromBase58String(y)), al, S)
169+ let ap = ScriptTransfer(Address(fromBase58String(H)), am, S)
170+ let aq = ScriptTransfer(Address(fromBase58String(D)), 1, fromBase58String(E))
171+ $Tuple4(an, ao, ap, aq)
177172 }
178173
179174
180-func at (M,F) = {
181- let au = L(M)
182- let C = au._1
183- let E = au._2
184- let av = au._3
185- let aw = ag(F)
186- let ax = aw._1
187- let aj = aw._2
188- let ak = aw._3
189- $Tuple6(C, E, av, ax, aj, ak)
175+func ar (K,E) = {
176+ let as = J(K)
177+ let B = as._1
178+ let D = as._2
179+ let at = as._3
180+ let au = ae(E)
181+ let av = au._1
182+ let ah = au._2
183+ let ai = au._3
184+ $Tuple6(B, D, at, av, ah, ai)
190185 }
191186
192187
193-func ay () = {
194- let az = v(s)
195- IntegerEntry(s, (az + 1))
188+func aw () = {
189+ let ax = u(r)
190+ IntegerEntry(r, (ax + 1))
196191 }
197192
198193
199-@Callable(aA)
200-func setConf (c,aB) = {
201- let E = toString(aA.caller)
202- if (containsElement([i, toString(this)], E))
194+@Callable(ay)
195+func setConf (c,az) = {
196+ let D = toString(ay.caller)
197+ if (containsElement([h, toString(this)], D))
203198 then if (contains(c, "conf_"))
204- then [StringEntry(c, aB)]
199+ then [StringEntry(c, az)]
205200 else throw("Entries starting with conf_ only")
206201 else throw("You are not allowed to change this")
207202 }
208203
209204
210205
211-@Callable(aA)
212-func appRunning (aC,aD) = {
213- let E = toString(aA.caller)
214- let C = toBase58String(aA.transactionId)
215- if (containsElement([i, toString(this)], E))
216- then [BooleanEntry(o, aC), StringEntry(p, aD)]
206+@Callable(ay)
207+func appRunning (aA,aB) = {
208+ let D = toString(ay.caller)
209+ let B = toBase58String(ay.transactionId)
210+ if (containsElement([h, toString(this)], D))
211+ then [BooleanEntry(n, aA), StringEntry(o, aB)]
217212 else throw("You are not allowed to change this")
218213 }
219214
220215
221216
222-@Callable(M)
223-func sellNFT (aE,aF) = {
224- let aG = N(M)
225- let O = aG._1
226- let P = aG._2
227- if ((P != 1))
217+@Callable(K)
218+func sellNFT (aC,aD) = {
219+ let aE = L(K)
220+ let M = aE._1
221+ let N = aE._2
222+ if ((N != 1))
228223 then throw("No Ticket attached")
229224 else {
230- let F = if (if (isDefined(O.assetId))
231- then S(value(O.assetId))
225+ let E = if (if (isDefined(M.assetId))
226+ then Q(value(M.assetId))
232227 else false)
233- then toBase58String(value(O.assetId))
228+ then toBase58String(value(M.assetId))
234229 else throw("Only SIGN Art NFT accepted.")
235- let aH = at(M, F)
236- let C = aH._1
237- let E = aH._2
238- let av = aH._3
239- let ax = aH._4
240- let aj = aH._5
241- let ak = aH._6
242- if (!(ax))
230+ let aF = ar(K, E)
231+ let B = aF._1
232+ let D = aF._2
233+ let at = aF._3
234+ let av = aF._4
235+ let ah = aF._5
236+ let ai = aF._6
237+ if (!(av))
243238 then throw("Not a valid ticket")
244- else if (!(T(aF)))
239+ else if (!(R(aD)))
245240 then throw("Only SIGN token accepted")
246- else [StringEntry((D(E, F, aj, ak) + "_OPEN"), ((((((((((((toString(av) + "_") + toString(aE)) + "_") + aF) + "_") + F) + "_") + aj) + "_") + ak) + "_") + C)), StringEntry(((("sale2nd_status_" + E) + "_") + F), "OPEN"), StringEntry(("current_owner_on_dapp_" + F), E)]
241+ else [StringEntry((C(D, E, ah, ai) + "_OPEN"), ((((((((((((toString(at) + "_") + toString(aC)) + "_") + aD) + "_") + E) + "_") + ah) + "_") + ai) + "_") + B)), StringEntry(((("sale2nd_status_" + D) + "_") + E), "OPEN"), StringEntry(("current_owner_on_dapp_" + E), D)]
247242 }
248243 }
249244
250245
251246
252-@Callable(M)
253-func updateSalePrice (F,aE,aF) = {
254- let aI = at(M, F)
255- let C = aI._1
256- let E = aI._2
257- let av = aI._3
258- let ax = aI._4
259- let aj = aI._5
260- let ak = aI._6
261- if (!(ax))
247+@Callable(K)
248+func updateSalePrice (E,aC,aD) = {
249+ let aG = ar(K, E)
250+ let B = aG._1
251+ let D = aG._2
252+ let at = aG._3
253+ let av = aG._4
254+ let ah = aG._5
255+ let ai = aG._6
256+ if (!(av))
262257 then throw("Not a valid ticket")
263258 else {
264- let I = b(("current_owner_on_dapp_" + F))
265- if ((I != E))
259+ let H = b(("current_owner_on_dapp_" + E))
260+ if ((H != D))
266261 then throw("You don't own this ticket")
267262 else {
268- let X = b(((("sale2nd_status_" + E) + "_") + F))
269- if ((X != "OPEN"))
263+ let V = b(((("sale2nd_status_" + D) + "_") + E))
264+ if ((V != "OPEN"))
270265 then throw("Sale not active")
271- else if (!(T(aF)))
266+ else if (!(R(aD)))
272267 then throw("Only SIGN token accepted")
273268 else {
274- let aJ = D(E, F, aj, ak)
275- let aK = split(b((aJ + "_OPEN")), "_")
276-[StringEntry((aJ + "_OPEN"), ((((((((((((aK[0] + "_") + toString(aE)) + "_") + aF) + "_") + aK[3]) + "_") + aK[4]) + "_") + aK[5]) + "_") + aK[6]))]
269+ let aH = C(D, E, ah, ai)
270+ let aI = split(b((aH + "_OPEN")), "_")
271+[StringEntry((aH + "_OPEN"), ((((((((((((aI[0] + "_") + toString(aC)) + "_") + aD) + "_") + aI[3]) + "_") + aI[4]) + "_") + aI[5]) + "_") + aI[6]))]
277272 }
278273 }
279274 }
280275 }
281276
282277
283278
284-@Callable(M)
285-func cancelSale (F) = {
286- let aL = at(M, F)
287- let C = aL._1
288- let E = aL._2
289- let av = aL._3
290- let ax = aL._4
291- let aj = aL._5
292- let ak = aL._6
293- let I = b(("current_owner_on_dapp_" + F))
294- if ((I != E))
279+@Callable(K)
280+func cancelSale (E) = {
281+ let aJ = ar(K, E)
282+ let B = aJ._1
283+ let D = aJ._2
284+ let at = aJ._3
285+ let av = aJ._4
286+ let ah = aJ._5
287+ let ai = aJ._6
288+ let H = b(("current_owner_on_dapp_" + E))
289+ if ((H != D))
295290 then throw("You don't own this ticket")
296291 else {
297- let X = b(((("sale2nd_status_" + E) + "_") + F))
298- if ((X != "OPEN"))
292+ let V = b(((("sale2nd_status_" + D) + "_") + E))
293+ if ((V != "OPEN"))
299294 then throw("Sale not active")
300295 else {
301- let aJ = D(E, F, aj, ak)
302- let aK = b((aJ + "_OPEN"))
303-[DeleteEntry((aJ + "_OPEN")), DeleteEntry(((("sale2nd_status_" + E) + "_") + F)), DeleteEntry(("current_owner_on_dapp_" + F)), StringEntry((((aJ + "_") + C) + "_CANCELLED"), ((((aK + "_CANCELLED_") + toString(av)) + "_") + C)), ScriptTransfer(Address(fromBase58String(E)), 1, fromBase58String(F))]
296+ let aH = C(D, E, ah, ai)
297+ let aI = b((aH + "_OPEN"))
298+[DeleteEntry((aH + "_OPEN")), DeleteEntry(((("sale2nd_status_" + D) + "_") + E)), DeleteEntry(("current_owner_on_dapp_" + E)), StringEntry((((aH + "_") + B) + "_CANCELLED"), ((((aI + "_CANCELLED_") + toString(at)) + "_") + B)), ScriptTransfer(Address(fromBase58String(D)), 1, fromBase58String(E))]
304299 }
305300 }
306301 }
307302
308303
309304
310-@Callable(M)
311-func buyNFT (F) = {
312- let aM = at(M, F)
313- let C = aM._1
314- let E = aM._2
315- let av = aM._3
316- let ax = aM._4
317- let aj = aM._5
318- let ak = aM._6
319- if (!(ax))
305+@Callable(K)
306+func buyNFT (E) = {
307+ let aK = ar(K, E)
308+ let B = aK._1
309+ let D = aK._2
310+ let at = aK._3
311+ let av = aK._4
312+ let ah = aK._5
313+ let ai = aK._6
314+ if (!(av))
320315 then throw("Not a valid ticket")
321316 else {
322- let I = W(F)
323- let aJ = D(I, F, aj, ak)
324- let aK = b((aJ + "_OPEN"))
325- if ((size(aK) == 0))
317+ let H = U(E)
318+ let aH = C(H, E, ah, ai)
319+ let aI = b((aH + "_OPEN"))
320+ if ((size(aI) == 0))
326321 then throw("Sale Not found!")
327322 else {
328- let aN = split(aK, "_")
329- if ((parseInt(aN[1]) == 0))
323+ let aL = split(aI, "_")
324+ if ((parseInt(aL[1]) == 0))
330325 then throw("Offer only")
331326 else {
332- let aO = N(M)
333- let O = aO._1
334- let P = aO._2
335- let aP = if (isDefined(O.assetId))
336- then toBase58String(value(O.assetId))
327+ let aM = L(K)
328+ let M = aM._1
329+ let N = aM._2
330+ let aN = if (isDefined(M.assetId))
331+ then toBase58String(value(M.assetId))
337332 else ""
338- if (if ((aN[1] != toString(P)))
333+ if (if ((aL[1] != toString(N)))
339334 then true
340- else (aN[2] != aP))
335+ else (aL[2] != aN))
341336 then throw("Payment infos don't match.")
342337 else {
343- let aQ = al(P, O.assetId, F, ak, I, E)
344- let ap = aQ._1
345- let aR = aQ._2
346- let ar = aQ._3
347- let as = aQ._4
348- ([DeleteEntry((aJ + "_OPEN")), DeleteEntry(((("sale2nd_status_" + I) + "_") + F)), DeleteEntry(("current_owner_on_dapp_" + F)), StringEntry((((aJ + "_") + C) + "_CLOSED"), ((((((aK + "_CLOSED_") + toString(av)) + "_") + C) + "_") + E)), ay(), aR, ar, as] ++ ap)
338+ let aO = aj(N, M.assetId, E, ai, H, D)
339+ let an = aO._1
340+ let aP = aO._2
341+ let ap = aO._3
342+ let aq = aO._4
343+ ([DeleteEntry((aH + "_OPEN")), DeleteEntry(((("sale2nd_status_" + H) + "_") + E)), DeleteEntry(("current_owner_on_dapp_" + E)), StringEntry((((aH + "_") + B) + "_CLOSED"), ((((((aI + "_CLOSED_") + toString(at)) + "_") + B) + "_") + D)), aw(), aP, ap, aq] ++ an)
349344 }
350345 }
351346 }
352347 }
353348 }
354349
355350
356351
357-@Callable(M)
358-func setOffer (F) = {
359- let aS = at(M, F)
360- let C = aS._1
361- let H = aS._2
362- let av = aS._3
363- let ax = aS._4
364- let aj = aS._5
365- let ak = aS._6
366- if (!(ax))
352+@Callable(K)
353+func setOffer (E) = {
354+ let aQ = ar(K, E)
355+ let B = aQ._1
356+ let G = aQ._2
357+ let at = aQ._3
358+ let av = aQ._4
359+ let ah = aQ._5
360+ let ai = aQ._6
361+ if (!(av))
367362 then throw("Not a valid ticket")
368363 else {
369- let aT = N(M)
370- let O = aT._1
371- let P = aT._2
372- let U = toBase58String(value(O.assetId))
373- if (!(T(U)))
364+ let aR = L(K)
365+ let M = aR._1
366+ let N = aR._2
367+ let S = toBase58String(value(M.assetId))
368+ if (!(R(S)))
374369 then throw("asset not accepted")
375- else if ((P == 0))
370+ else if ((N == 0))
376371 then throw("Offer of 0 not allowed")
377372 else {
378- let I = W(F)
379-[StringEntry((G(H, F, I, C) + "_OPEN"), ((((((((((((((toString(av) + "_") + toString(P)) + "_") + U) + "_") + F) + "_") + aj) + "_") + ak) + "_") + H) + "_") + C))]
373+ let H = U(E)
374+[StringEntry((F(G, E, H, B) + "_OPEN"), ((((((((((((((toString(at) + "_") + toString(N)) + "_") + S) + "_") + E) + "_") + ah) + "_") + ai) + "_") + G) + "_") + B))]
380375 }
381376 }
382377 }
383378
384379
385380
386-@Callable(M)
387-func acceptOffer (F,J,H) = {
388- let aU = at(M, F)
389- let C = aU._1
390- let E = aU._2
391- let av = aU._3
392- let ax = aU._4
393- let aj = aU._5
394- let ak = aU._6
395- if (!(ax))
381+@Callable(K)
382+func acceptOffer (E,I,G) = {
383+ let aS = ar(K, E)
384+ let B = aS._1
385+ let D = aS._2
386+ let at = aS._3
387+ let av = aS._4
388+ let ah = aS._5
389+ let ai = aS._6
390+ if (!(av))
396391 then throw("Not a valid ticket")
397392 else {
398- let I = W(F)
399- if ((E != I))
393+ let H = U(E)
394+ if ((D != H))
400395 then throw("Only sale owner can accept offer")
401396 else {
402- let aV = G(H, F, I, J)
403- let aW = Y(aV)
404- let aa = aW._1
405- let U = aW._2
406- let Z = aW._3
407- let aJ = D(I, F, aj, ak)
408- let aK = b((aJ + "_OPEN"))
409- if ((size(aK) == 0))
397+ let aT = F(G, E, H, I)
398+ let aU = W(aT)
399+ let Y = aU._1
400+ let S = aU._2
401+ let X = aU._3
402+ let aH = C(H, E, ah, ai)
403+ let aI = b((aH + "_OPEN"))
404+ if ((size(aI) == 0))
410405 then throw("Sale Not found!")
411406 else {
412- let P = value(parseInt(aa[1]))
413- let aX = al(P, U, F, ak, I, aa[6])
414- let ap = aX._1
415- let aR = aX._2
416- let ar = aX._3
417- let as = aX._4
418- let aY = toBase58String(value(U))
419- ([DeleteEntry((aJ + "_OPEN")), DeleteEntry((aV + "_OPEN")), DeleteEntry(((("sale2nd_status_" + I) + "_") + F)), DeleteEntry(("current_owner_on_dapp_" + F)), StringEntry((aV + "_CLOSED"), ((((Z + "_CLOSED_") + toString(av)) + "_") + C)), StringEntry((((aJ + "_") + C) + "_CLOSED"), ((((((((((aK + "_CLOSED-OFFER_") + toString(av)) + "_") + C) + "_") + H) + "_") + toString(P)) + "_") + aY)), ay(), aR, ar, as] ++ ap)
407+ let N = value(parseInt(Y[1]))
408+ let aV = aj(N, S, E, ai, H, Y[6])
409+ let an = aV._1
410+ let aP = aV._2
411+ let ap = aV._3
412+ let aq = aV._4
413+ let aW = toBase58String(value(S))
414+ ([DeleteEntry((aH + "_OPEN")), DeleteEntry((aT + "_OPEN")), DeleteEntry(((("sale2nd_status_" + H) + "_") + E)), DeleteEntry(("current_owner_on_dapp_" + E)), StringEntry((aT + "_CLOSED"), ((((X + "_CLOSED_") + toString(at)) + "_") + B)), StringEntry((((aH + "_") + B) + "_CLOSED"), ((((((((((aI + "_CLOSED-OFFER_") + toString(at)) + "_") + B) + "_") + G) + "_") + toString(N)) + "_") + aW)), aw(), aP, ap, aq] ++ an)
420415 }
421416 }
422417 }
423418 }
424419
425420
426421
427-@Callable(M)
428-func cancelOffer (F,J,H,I) = {
429- let aZ = L(M)
430- let C = aZ._1
431- let E = aZ._2
432- let av = aZ._3
433- if (if ((E != H))
434- then (E != I)
422+@Callable(K)
423+func cancelOffer (E,I,G,H) = {
424+ let aX = J(K)
425+ let B = aX._1
426+ let D = aX._2
427+ let at = aX._3
428+ if (if ((D != G))
429+ then (D != H)
435430 else false)
436431 then throw("You cannot cancel this offer.")
437432 else {
438- let aV = G(H, F, I, J)
439- let ba = Y(aV)
440- let aa = ba._1
441- let U = ba._2
442- let Z = ba._3
443-[DeleteEntry((aV + "_OPEN")), StringEntry((aV + "_CANCELLED"), ((((Z + "_CANCELLED_") + toString(av)) + "_") + C)), ScriptTransfer(Address(fromBase58String(E)), parseIntValue(aa[1]), U)]
433+ let aT = F(G, E, H, I)
434+ let aY = W(aT)
435+ let Y = aY._1
436+ let S = aY._2
437+ let X = aY._3
438+[DeleteEntry((aT + "_OPEN")), StringEntry((aT + "_CANCELLED"), ((((X + "_CANCELLED_") + toString(at)) + "_") + B)), ScriptTransfer(Address(fromBase58String(D)), parseIntValue(Y[1]), S)]
444439 }
445440 }
446441
447442

github/deemru/w8io/873ac7e 
173.46 ms