tx · Cmqh7EbyBVHkpzW1WwR2Cjp2M65riRYzky3RHVSv8DbK

3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p:  -0.01500000 Waves

2022.11.29 07:04 [2337892] smart account 3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p > SELF 0.00000000 Waves

{ "type": 13, "id": "Cmqh7EbyBVHkpzW1WwR2Cjp2M65riRYzky3RHVSv8DbK", "fee": 1500000, "feeAssetId": null, "timestamp": 1669694753382, "version": 2, "chainId": 84, "sender": "3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p", "senderPublicKey": "Hh3eFP2XFetZSfTxQiM1Ps96f68zi8Zh5ghhCZdjgdFs", "proofs": [ "32ZaZJ5Jvu3imwkC9F5mfkSdFcqUGQXYgt9b1NxN3BKfE1rayHUP8mzUbUJMqPxUBpE9QJ1rMUCT7FpznQemVVPb" ], "script": "base64:BgI5CAISBAoCCAgSBAoCBAgSBAoCAQgSBQoDCAEIEgMKAQgSAwoBCBIDCgEIEgUKAwgICBIGCgQICAgINAEJZ2V0U3RyQnlLAQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgAACHVuaXRUZXN0BwAJb3JhY2xlRmVlCQEFdmFsdWUBCQCmCAEJAQlnZXRTdHJCeUsBAg9jb25mX29yYWNsZV9mZWUAC2ZlZVJlY2VpdmVyCQEJZ2V0U3RyQnlLAQIRY29uZl9mZWVfcmVjZWl2ZXIADGFydHdvcmtzRGFwcAkBBXZhbHVlAQkApggBCQEJZ2V0U3RyQnlLAQISY29uZl9hcnR3b3Jrc19kYXBwAAh1c2VyRGFwcAMFCHVuaXRUZXN0CQEFdmFsdWUBCQCmCAECIzNNdDRSR01FeWpTV1lBb2NUUHFkNTV3ZEhRUUIzUFUyVUNtCQEFdmFsdWUBCQCmCAEJAQlnZXRTdHJCeUsBAg9jb25mX3VzZXJzX2RhcHAAC3NpZ25Bc3NldElkCQDZBAEJAQlnZXRTdHJCeUsBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X1NJR04AC3VzZG5Bc3NldElkCQDZBAEJAQlnZXRTdHJCeUsBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X1VTRE4AC3VzZHRBc3NldElkCQDZBAEJAQlnZXRTdHJCeUsBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X1VTRFQADHdhdmVzQXNzZXRJZAEAAAVjaHJpcwkBCWdldFN0ckJ5SwECDGNvbmZfYWRtaW5fMQAHc2lnbkN1dAADAA11c2VyU3VzcGVuZGVkAglTVVNQRU5ERUQAC3VzZXJSZW1vdmVkAgdSRU1PVkVEAAphcnRJbGxlZ2FsAgdJTExFR0FMAAxhcnRTdXNwZW5kZWQCCVNVU1BFTkRFRAAOZGFwcFJ1bm5pbmdLZXkCFGNvbmZfZGFwcF9pc19ydW5uaW5nABFtYWludGVuYW5jZU1TR0tleQIUY29uZl9tYWludGVuYW5jZV9tc2cAC2RhcHBSdW5uaW5nCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDmRhcHBSdW5uaW5nS2V5BgAObWFpbnRlbmFuY2VNU0cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwURbWFpbnRlbmFuY2VNU0dLZXkCAAAJbnVtU2FsZXNLAgludW1fc2FsZXMBDWdldFVzZXJTdHJCeUsBA2tleQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQh1c2VyRGFwcAUDa2V5AgVFcnJvcgEQZ2V0VXNlclJveWFsdGllcwEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFCHVzZXJEYXBwBQNrZXkA6AcBDGdldEFydFN0ckJ5SwEDa2V5CQELdmFsdWVPckVsc2UCCQCdCAIFDGFydHdvcmtzRGFwcAUDa2V5AgABCWdldEludEJ5SwEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAQ1rZXlVc2VyU3RhdHVzAQRhZGRyCQCsAgICDHVzZXJfc3RhdHVzXwUEYWRkcgEQa2V5VXNlclJveWFsdGllcwEEYWRkcgkArAICAg91c2VyX3JveWFsdGllc18FBGFkZHIBCWtleVNpZ25JRAIKYXJ0aXN0QWRkcgVhcnRJZAkArAICCQCsAgIJAKwCAgILYXJ0X3NpZ25pZF8FBWFydElkAgFfBQphcnRpc3RBZGRyAQdrZXlGbGFnAgphcnRpc3RBZGRyBWFydElkCQCsAgIJAKwCAgkArAICAglhcnRfZmxhZ18FBWFydElkAgFfBQphcnRpc3RBZGRyAQprZXlORlREYXRhAQJpZAkArAICAgRuZnRfBQJpZAEKZ2V0U2FsZUtleQQGY2FsbGVyBW5mdElkBWFydElkC2NyZWF0b3JBZGRyCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDXNhbGUybmRfaW5mb18FBmNhbGxlcgIBXwUFbmZ0SWQCAV8FBWFydElkAgFfBQtjcmVhdG9yQWRkcgEJZ2V0QmlkS2V5BApvZmZlck93bmVyBW5mdElkCXNhbGVPd25lcgdvZmZlcklkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCW9mZmVyMm5kXwUKb2ZmZXJPd25lcgIBXwUFbmZ0SWQCAV8FCXNhbGVPd25lcgIBXwUHb2ZmZXJJZAETZ2V0SW50QnlLRnJvbU9yYWNsZQEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUJb3JhY2xlRmVlBQNrZXkCH0ludGVnZXIgdW5kZWZpbmUgb3IgMCBpbiBvcmFjbGUAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJARNnZXRJbnRCeUtGcm9tT3JhY2xlAQkArAICAhJjZXJ0aWZpY2F0aW9uX2ZlZV8JANgEAQULc2lnbkFzc2V0SWQBEmtleUFydGlzdEFnZW50QWRkcgEKYXJ0aXN0QWRkcgkArAICAg1hcnRpc3RfYWdlbnRfBQphcnRpc3RBZGRyARFrZXlTZWNvbmRhcnlTaGFyZQEKYXJ0aXN0QWRkcgkArAICAhdhcnRpc3RfYWdlbnRfc2Vjb25kYXJ5XwUKYXJ0aXN0QWRkcgEMaWRDYWxsZXJEYXRlAQFpAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHCQCVCgMJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAEJaXNQYXltZW50AQFpAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECE05vIHBheW1lbnQgYXR0YWNoZWQEB3BheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQGYW1vdW50CQEFdmFsdWUBCAUHcGF5bWVudAZhbW91bnQJAJQKAgUHcGF5bWVudAUGYW1vdW50AQxhc3NldElzVmFsaWQBDGFzc2V0RGV0YWlscwMDAwkAAAIIBQxhc3NldERldGFpbHMIcXVhbnRpdHkAAQkAAAIIBQxhc3NldERldGFpbHMIZGVjaW1hbHMAAAcJAAACCAUMYXNzZXREZXRhaWxzCnJlaXNzdWFibGUHBwkAAAIIBQxhc3NldERldGFpbHMGaXNzdWVyBQxhcnR3b3Jrc0RhcHAHAQxpc1NpZ25BcnRORlQBAmlkBAxhc3NldERldGFpbHMJAQV2YWx1ZQEJAOwHAQUCaWQJAQxhc3NldElzVmFsaWQBBQxhc3NldERldGFpbHMBEGFjY2VwdGVkQXNzZXRJZHMBB2Fzc2V0SWQDAwMDAwkBAiE9AgUHYXNzZXRJZAkA2AQBBQtzaWduQXNzZXRJZAkBAiE9AgUHYXNzZXRJZAkA2AQBBQx3YXZlc0Fzc2V0SWQHCQECIT0CBQdhc3NldElkAgVXQVZFUwcJAQIhPQIFB2Fzc2V0SWQJANgEAQULdXNkbkFzc2V0SWQHCQECIT0CBQdhc3NldElkCQDYBAEFC3VzZHRBc3NldElkBwcGAQ1nZXRCaWRBc3NldElkAQdhc3NldElkAwkAAAIFB2Fzc2V0SWQCBVdBVkVTBQR1bml0CQDZBAEFB2Fzc2V0SWQBFWdldFNhbGVPd25lckFuZFN0YXR1cwEFbmZ0aWQECXNhbGVPd25lcgkBCWdldFN0ckJ5SwEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0aWQDCQAAAgkAsQIBBQlzYWxlT3duZXIAAAkAAgECDU5GVCBub3QgZm91bmQECnNhbGVTdGF0dXMJAQlnZXRTdHJCeUsBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FCXNhbGVPd25lcgIBXwUFbmZ0aWQDCQECIT0CBQpzYWxlU3RhdHVzAgRPUEVOCQACAQIQTkZUIG5vdCBmb3Igc2FsZQUJc2FsZU93bmVyAQpnZXRCaWREYXRhAQNrZXkEB2JpZERhdGEJAQlnZXRTdHJCeUsBCQCsAgIFA2tleQIFX09QRU4DCQAAAgUHYmlkRGF0YQIACQACAQIPT2ZmZXIgbm90IGZvdW5kBApiaWREYXRhQXJyCQC1CQIFB2JpZERhdGECAV8EB2Fzc2V0SWQJAQ1nZXRCaWRBc3NldElkAQkAkQMCBQpiaWREYXRhQXJyAAIJAJUKAwUKYmlkRGF0YUFycgUHYXNzZXRJZAUHYmlkRGF0YQEKYXJ0SXNWYWxpZAEJYXJ0U3RhdHVzAwkBAiE9AgUJYXJ0U3RhdHVzBQphcnRJbGxlZ2FsCQECIT0CBQlhcnRTdGF0dXMFDGFydFN1c3BlbmRlZAcBDmNoZWNrQXJ0U3RhdHVzAgRhZGRyAmlkBAlhcnRTdGF0dXMJAQxnZXRBcnRTdHJCeUsBCQEHa2V5RmxhZwIFBGFkZHIFAmlkAwkBCmFydElzVmFsaWQBBQlhcnRTdGF0dXMGCQACAQkArAICAhxPcmlnaW5hbCBBcnR3b3JrIGZsYWdnZWQgYXMgBQlhcnRTdGF0dXMBEWNoZWNrQXJ0aXN0U3RhdHVzAQRhZGRyBAxhcnRpc3RTdGF0dXMJAQ1nZXRVc2VyU3RyQnlLAQkBDWtleVVzZXJTdGF0dXMBBQRhZGRyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUNdXNlclN1c3BlbmRlZAkAzAgCBQt1c2VyUmVtb3ZlZAUDbmlsBQxhcnRpc3RTdGF0dXMJAAIBCQCsAgICEE9yaWdpbmFsIEFydGlzdCAFDGFydGlzdFN0YXR1cwYBDGNoZWNrTkZUSW5mbwEHYXNzZXRJZAQHbmZ0RGF0YQkAtQkCCQEMZ2V0QXJ0U3RyQnlLAQkBCmtleU5GVERhdGEBBQdhc3NldElkAgFfBAlhcnRTaWduSUQJAQxnZXRBcnRTdHJCeUsBCQEJa2V5U2lnbklEAgkAkQMCBQduZnREYXRhAAYJAJEDAgUHbmZ0RGF0YQAFAwMJAQEhAQkBDmNoZWNrQXJ0U3RhdHVzAgkAkQMCBQduZnREYXRhAAYJAJEDAgUHbmZ0RGF0YQAFCQEBIQEJARFjaGVja0FydGlzdFN0YXR1cwEJAJEDAgUHbmZ0RGF0YQAGBwkAlgoEBwkAkQMCBQduZnREYXRhAAUJAJEDAgUHbmZ0RGF0YQAGBQlhcnRTaWduSUQJAJYKBAYJAJEDAgUHbmZ0RGF0YQAFCQCRAwIFB25mdERhdGEABgUJYXJ0U2lnbklEAQxzZXRUcmFuc2ZlcnMGBmFtb3VudAdhc3NldElkBW5mdGlkC2NyZWF0b3JBZGRyCXNhbGVPd25lcgZjYWxsZXIECmNyZWF0b3JDdXQJARBnZXRVc2VyUm95YWx0aWVzAQkBEGtleVVzZXJSb3lhbHRpZXMBBQtjcmVhdG9yQWRkcgQFYWdlbnQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUIdXNlckRhcHAJARJrZXlBcnRpc3RBZ2VudEFkZHIBBQtjcmVhdG9yQWRkcgULZmVlUmVjZWl2ZXIECmFnZW50U2hhcmUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUIdXNlckRhcHAJARFrZXlTZWNvbmRhcnlTaGFyZQEFC2NyZWF0b3JBZGRyAAAEDWFtb3VudEZvclNpZ24JAGsDBQZhbW91bnQFB3NpZ25DdXQAZAQQYW1vdW50Rm9yQ3JlYXRvcgkAawMFBmFtb3VudAUKY3JlYXRvckN1dACQTgQOYW1vdW50Rm9yT3duZXIJAGUCBQZhbW91bnQJAGQCBQ1hbW91bnRGb3JTaWduBRBhbW91bnRGb3JDcmVhdG9yBA5hbW91bnRGb3JBZ2VudAMDCQECIT0CBQVhZ2VudAULZmVlUmVjZWl2ZXIJAGYCBQphZ2VudFNoYXJlAAAHCQBrAwUGYW1vdW50BQphZ2VudFNoYXJlAGQAAAQLY29tbWlzc2lvbnMDCQECIT0CBQ5hbW91bnRGb3JBZ2VudAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQtmZWVSZWNlaXZlcgkAZQIFDWFtb3VudEZvclNpZ24FDmFtb3VudEZvckFnZW50BQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQVhZ2VudAUOYW1vdW50Rm9yQWdlbnQFB2Fzc2V0SWQFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQULZmVlUmVjZWl2ZXIFDWFtb3VudEZvclNpZ24FB2Fzc2V0SWQFA25pbAQKY3JlYXRvckZlZQkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFC2NyZWF0b3JBZGRyBRBhbW91bnRGb3JDcmVhdG9yBQdhc3NldElkBAhvd25lckZlZQkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFCXNhbGVPd25lcgUOYW1vdW50Rm9yT3duZXIFB2Fzc2V0SWQEDGNvbGxlY3Rvck5GVAkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCQDZBAEFBW5mdGlkCQCWCgQFC2NvbW1pc3Npb25zBQpjcmVhdG9yRmVlBQhvd25lckZlZQUMY29sbGVjdG9yTkZUAQ92YWxpZGF0ZU1pblNlbGwCB2Fzc2V0SWQFcHJpY2UEDG1pblNlbGxXYXZlcwMFCHVuaXRUZXN0AAoJARNnZXRJbnRCeUtGcm9tT3JhY2xlAQIOd2F2ZXNfbWluX3NlbGwEC21pblNlbGxVc2RuAMCEPQQLbWluU2VsbFNpZ24DBQh1bml0VGVzdAABCQBoAgUZY3VycmVudENlcnRpZmljYXRpb25QcmljZQACAwMDAwMDCQAAAgUHYXNzZXRJZAkA2AQBBQt1c2RuQXNzZXRJZAkAZgIFC21pblNlbGxVc2RuBQVwcmljZQcJAQIhPQIFBXByaWNlAAAHBgMDCQAAAgUHYXNzZXRJZAkA2AQBBQt1c2R0QXNzZXRJZAkAZgIFC21pblNlbGxVc2RuBQVwcmljZQcJAQIhPQIFBXByaWNlAAAHBgMDCQAAAgUHYXNzZXRJZAkA2AQBBQtzaWduQXNzZXRJZAkAZgIFC21pblNlbGxTaWduBQVwcmljZQcJAQIhPQIFBXByaWNlAAAHBgMDAwkAAAIFB2Fzc2V0SWQJANgEAQUMd2F2ZXNBc3NldElkBgkAAAIFB2Fzc2V0SWQCBVdBVkVTCQBmAgUMbWluU2VsbFdhdmVzBQVwcmljZQcJAQIhPQIFBXByaWNlAAAHBwYBD3Byb3ZpZGVCYXNlRGF0YQIBaQVuZnRJZAQLJHQwOTU2MTk2MDEJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFCyR0MDk1NjE5NjAxAl8xBAZjYWxsZXIIBQskdDA5NTYxOTYwMQJfMgQEZGF0ZQgFCyR0MDk1NjE5NjAxAl8zBAskdDA5NjA1OTY3NAkBDGNoZWNrTkZUSW5mbwEFBW5mdElkBAppc1ZhbGlkTkZUCAULJHQwOTYwNTk2NzQCXzEEBWFydElkCAULJHQwOTYwNTk2NzQCXzIEC2NyZWF0b3JBZGRyCAULJHQwOTYwNTk2NzQCXzMECWFydFNpZ25JRAgFCyR0MDk2MDU5Njc0Al80CQCZCgcFAmlkBQZjYWxsZXIFBGRhdGUFCmlzVmFsaWRORlQFBWFydElkBQtjcmVhdG9yQWRkcgUJYXJ0U2lnbklEAQ51cGRhdGVOdW1TYWxlcwAECG51bVNhbGVzCQEJZ2V0SW50QnlLAQUJbnVtU2FsZXNLCQEMSW50ZWdlckVudHJ5AgUJbnVtU2FsZXNLCQBkAgUIbnVtU2FsZXMAAQkGaW52b2tlAQdzZXRDb25mAgNrZXkDdmFsBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwkBCGNvbnRhaW5zAgUDa2V5AgVjb25mXwkAzAgCCQELU3RyaW5nRW50cnkCBQNrZXkFA3ZhbAUDbmlsCQACAQIgRW50cmllcyBzdGFydGluZyB3aXRoIGNvbmZfIG9ubHkJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzBmludm9rZQEKYXBwUnVubmluZwIGaXNMaXZlB21lc3NhZ2UEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgQCaWQJANgEAQgFBmludm9rZQ10cmFuc2FjdGlvbklkAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUOZGFwcFJ1bm5pbmdLZXkFBmlzTGl2ZQkAzAgCCQELU3RyaW5nRW50cnkCBRFtYWludGVuYW5jZU1TR0tleQUHbWVzc2FnZQUDbmlsCQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwFpAQdzZWxsTkZUAgVwcmljZQVhc3NldAQNJHQwMTA3NzkxMDgxNQkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQ0kdDAxMDc3OTEwODE1Al8xBAZhbW91bnQIBQ0kdDAxMDc3OTEwODE1Al8yAwkBAiE9AgUGYW1vdW50AAEJAAIBAg9ObyBORlQgYXR0YWNoZWQEBW5mdElkAwMJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQEMaXNTaWduQXJ0TkZUAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAcJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAkAAgECG09ubHkgU0lHTiBBcnQgTkZUIGFjY2VwdGVkLgQNJHQwMTEwNTMxMTE0NgkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFDSR0MDExMDUzMTExNDYCXzEEBmNhbGxlcggFDSR0MDExMDUzMTExNDYCXzIEBGRhdGUIBQ0kdDAxMTA1MzExMTQ2Al8zBAppc1ZhbGlkTkZUCAUNJHQwMTEwNTMxMTE0NgJfNAQFYXJ0SWQIBQ0kdDAxMTA1MzExMTQ2Al81BAtjcmVhdG9yQWRkcggFDSR0MDExMDUzMTExNDYCXzYECWFydFNpZ25JRAgFDSR0MDExMDUzMTExNDYCXzcDCQAAAgkAsQIBBQlhcnRTaWduSUQAAAkAAgECHUFydHdvcmsgbm90IGZvdW5kIG9uIFNJR04gQXJ0AwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0AwkBASEBCQEQYWNjZXB0ZWRBc3NldElkcwEFBWFzc2V0CQACAQInT25seSBTSUdOLCBVU0ROLCBVU0RUIG9yIFdBVkVTIGFjY2VwdGVkAwkBASEBCQEPdmFsaWRhdGVNaW5TZWxsAgUFYXNzZXQFBXByaWNlCQACAQIYV3JvbmcgbWluaW11bSBzZWxsIHByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkBCmdldFNhbGVLZXkEBQZjYWxsZXIFBW5mdElkBQVhcnRJZAULY3JlYXRvckFkZHICBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCkAwEFBGRhdGUCAV8JAKQDAQUFcHJpY2UCAV8FBWFzc2V0AgFfBQVuZnRJZAIBXwUFYXJ0SWQCAV8FC2NyZWF0b3JBZGRyAgFfBQJpZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FBmNhbGxlcgIBXwUFbmZ0SWQCBE9QRU4JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAUGY2FsbGVyBQNuaWwBaQEPdXBkYXRlU2FsZVByaWNlAwVuZnRJZAVwcmljZQVhc3NldAQNJHQwMTIwNTAxMjE0MwkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFDSR0MDEyMDUwMTIxNDMCXzEEBmNhbGxlcggFDSR0MDEyMDUwMTIxNDMCXzIEBGRhdGUIBQ0kdDAxMjA1MDEyMTQzAl8zBAppc1ZhbGlkTkZUCAUNJHQwMTIwNTAxMjE0MwJfNAQFYXJ0SWQIBQ0kdDAxMjA1MDEyMTQzAl81BAtjcmVhdG9yQWRkcggFDSR0MDEyMDUwMTIxNDMCXzYECWFydFNpZ25JRAgFDSR0MDEyMDUwMTIxNDMCXzcDCQAAAgkAsQIBBQlhcnRTaWduSUQAAAkAAgECMEFydHdvcmsgbm90IGZvdW5kIG9uIFNJR04gQXJ0LCBjYW5jZWwgeW91ciBzYWxlLgMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAMJAQIhPQIFCXNhbGVPd25lcgUGY2FsbGVyCQACAQIWWW91IGRvbid0IG93biB0aGlzIE5GVAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAg9TYWxlIG5vdCBhY3RpdmUDCQEBIQEJARBhY2NlcHRlZEFzc2V0SWRzAQUFYXNzZXQJAAIBAidPbmx5IFNJR04sIFVTRE4sIFVTRFQgb3IgV0FWRVMgYWNjZXB0ZWQDCQEBIQEJAQ92YWxpZGF0ZU1pblNlbGwCBQVhc3NldAUFcHJpY2UJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UEB3NhbGVLZXkJAQpnZXRTYWxlS2V5BAUGY2FsbGVyBQVuZnRJZAUFYXJ0SWQFC2NyZWF0b3JBZGRyBAhzYWxlSW5mbwkAtQkCCQEJZ2V0U3RyQnlLAQkArAICBQdzYWxlS2V5AgVfT1BFTgIBXwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCRAwIFCHNhbGVJbmZvAAACAV8JAKQDAQUFcHJpY2UCAV8FBWFzc2V0AgFfCQCRAwIFCHNhbGVJbmZvAAMCAV8JAJEDAgUIc2FsZUluZm8ABAIBXwkAkQMCBQhzYWxlSW5mbwAFAgFfCQCRAwIFCHNhbGVJbmZvAAYFA25pbAFpAQpjYW5jZWxTYWxlAQVuZnRJZAQNJHQwMTMzMjAxMzU2NAkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFDSR0MDEzMzIwMTM1NjQCXzEEBmNhbGxlcggFDSR0MDEzMzIwMTM1NjQCXzIEBGRhdGUIBQ0kdDAxMzMyMDEzNTY0Al8zBAppc1ZhbGlkTkZUCAUNJHQwMTMzMjAxMzU2NAJfNAQFYXJ0SWQIBQ0kdDAxMzMyMDEzNTY0Al81BAtjcmVhdG9yQWRkcggFDSR0MDEzMzIwMTM1NjQCXzYECWFydFNpZ25JRAgFDSR0MDEzMzIwMTM1NjQCXzcECXNhbGVPd25lcgkBCWdldFN0ckJ5SwEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQDCQECIT0CBQlzYWxlT3duZXIFBmNhbGxlcgkAAgECFllvdSBkb24ndCBvd24gdGhpcyBORlQECnNhbGVTdGF0dXMJAQlnZXRTdHJCeUsBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FBmNhbGxlcgIBXwUFbmZ0SWQDCQECIT0CBQpzYWxlU3RhdHVzAgRPUEVOCQACAQIPU2FsZSBub3QgYWN0aXZlBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQQFBmNhbGxlcgUFbmZ0SWQFBWFydElkBQtjcmVhdG9yQWRkcgQIc2FsZUluZm8JAQlnZXRTdHJCeUsBCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQZjYWxsZXICAV8FBW5mdElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHc2FsZUtleQIBXwUCaWQCCl9DQU5DRUxMRUQJAKwCAgkArAICCQCsAgIJAKwCAgUIc2FsZUluZm8CC19DQU5DRUxMRURfCQCkAwEFBGRhdGUCAV8FAmlkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIAAQkA2QQBBQVuZnRJZAUDbmlsAWkBBmJ1eU5GVAEFbmZ0SWQEDSR0MDE0NDE4MTQ1MTEJAQ9wcm92aWRlQmFzZURhdGECBQFpBQVuZnRJZAQCaWQIBQ0kdDAxNDQxODE0NTExAl8xBAZjYWxsZXIIBQ0kdDAxNDQxODE0NTExAl8yBARkYXRlCAUNJHQwMTQ0MTgxNDUxMQJfMwQKaXNWYWxpZE5GVAgFDSR0MDE0NDE4MTQ1MTECXzQEBWFydElkCAUNJHQwMTQ0MTgxNDUxMQJfNQQLY3JlYXRvckFkZHIIBQ0kdDAxNDQxODE0NTExAl82BAlhcnRTaWduSUQIBQ0kdDAxNDQxODE0NTExAl83AwkAAAIJALECAQUJYXJ0U2lnbklEAAAJAAIBAjBBcnR3b3JrIG5vdCBmb3VuZCBvbiBTSUdOIEFydCwgY2FuY2VsIHlvdXIgc2FsZS4DCQEBIQEFCmlzVmFsaWRORlQJAAIBAg9Ob3QgYSB2YWxpZCBuZnQECXNhbGVPd25lcgkBFWdldFNhbGVPd25lckFuZFN0YXR1cwEFBW5mdElkBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQQFCXNhbGVPd25lcgUFbmZ0SWQFBWFydElkBQtjcmVhdG9yQWRkcgQIc2FsZUluZm8JAQlnZXRTdHJCeUsBCQCsAgIFB3NhbGVLZXkCBV9PUEVOAwkAAAIJALECAQUIc2FsZUluZm8AAAkAAgECD1NhbGUgTm90IGZvdW5kIQQNc2FsZUluZm9BcnJheQkAtQkCBQhzYWxlSW5mbwIBXwMJAAACCQC2CQEJAJEDAgUNc2FsZUluZm9BcnJheQABAAAJAAIBAgpPZmZlciBvbmx5BA0kdDAxNTAyMDE1MDU2CQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDE1MDIwMTUwNTYCXzEEBmFtb3VudAgFDSR0MDE1MDIwMTUwNTYCXzIED3BheW1lbnRBc3NldFN0cgMJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQCAAMDCQECIT0CCQCRAwIFDXNhbGVJbmZvQXJyYXkAAQkApAMBBQZhbW91bnQGCQECIT0CCQCRAwIFDXNhbGVJbmZvQXJyYXkAAgUPcGF5bWVudEFzc2V0U3RyCQACAQIaUGF5bWVudCBpbmZvcyBkb24ndCBtYXRjaC4EDSR0MDE1NTcwMTU3MDIJAQxzZXRUcmFuc2ZlcnMGBQZhbW91bnQIBQdwYXltZW50B2Fzc2V0SWQFBW5mdElkBQtjcmVhdG9yQWRkcgUJc2FsZU93bmVyBQZjYWxsZXIEC2NvbW1pc3Npb25zCAUNJHQwMTU1NzAxNTcwMgJfMQQKY3JlYXRvckZlZQgFDSR0MDE1NTcwMTU3MDICXzIECG93bmVyRmVlCAUNJHQwMTU1NzAxNTcwMgJfMwQMY29sbGVjdG9yTkZUCAUNJHQwMTU1NzAxNTcwMgJfNAkAzggCCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQlzYWxlT3duZXICAV8FBW5mdElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHc2FsZUtleQIBXwUCaWQCB19DTE9TRUQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAIBXwUGY2FsbGVyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUKY3JlYXRvckZlZQkAzAgCBQhvd25lckZlZQkAzAgCBQxjb2xsZWN0b3JORlQFA25pbAULY29tbWlzc2lvbnMBaQEIc2V0T2ZmZXIBBW5mdElkBA0kdDAxNjEzMDE2MjI3CQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTYxMzAxNjIyNwJfMQQKb2ZmZXJPd25lcggFDSR0MDE2MTMwMTYyMjcCXzIEBGRhdGUIBQ0kdDAxNjEzMDE2MjI3Al8zBAppc1ZhbGlkTkZUCAUNJHQwMTYxMzAxNjIyNwJfNAQFYXJ0SWQIBQ0kdDAxNjEzMDE2MjI3Al81BAtjcmVhdG9yQWRkcggFDSR0MDE2MTMwMTYyMjcCXzYECWFydFNpZ25JRAgFDSR0MDE2MTMwMTYyMjcCXzcDCQEBIQEFCmlzVmFsaWRORlQJAAIBAg9Ob3QgYSB2YWxpZCBuZnQEDSR0MDE2MjkxMTYzMjcJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAUNJHQwMTYyOTExNjMyNwJfMQQGYW1vdW50CAUNJHQwMTYyOTExNjMyNwJfMgQHYXNzZXRJZAMJAQEhAQkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQDCQEBIQEJARBhY2NlcHRlZEFzc2V0SWRzAQUHYXNzZXRJZAkAAgECEmFzc2V0IG5vdCBhY2NlcHRlZAMJAAACBQZhbW91bnQAAAkAAgECFk9mZmVyIG9mIDAgbm90IGFsbG93ZWQDCQEBIQEJAQ92YWxpZGF0ZU1pblNlbGwCBQdhc3NldElkBQZhbW91bnQJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UECXNhbGVPd25lcgkBFWdldFNhbGVPd25lckFuZFN0YXR1cwEFBW5mdElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkBCWdldEJpZEtleQQFCm9mZmVyT3duZXIFBW5mdElkBQlzYWxlT3duZXIFAmlkAgVfT1BFTgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUEZGF0ZQIBXwkApAMBBQZhbW91bnQCAV8FB2Fzc2V0SWQCAV8FBW5mdElkAgFfBQVhcnRJZAIBXwULY3JlYXRvckFkZHICAV8FCm9mZmVyT3duZXICAV8FAmlkBQNuaWwBaQELYWNjZXB0T2ZmZXIDBW5mdElkB29mZmVySWQKb2ZmZXJPd25lcgQNJHQwMTcxNDgxNzI0MQkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFDSR0MDE3MTQ4MTcyNDECXzEEBmNhbGxlcggFDSR0MDE3MTQ4MTcyNDECXzIEBGRhdGUIBQ0kdDAxNzE0ODE3MjQxAl8zBAppc1ZhbGlkTkZUCAUNJHQwMTcxNDgxNzI0MQJfNAQFYXJ0SWQIBQ0kdDAxNzE0ODE3MjQxAl81BAtjcmVhdG9yQWRkcggFDSR0MDE3MTQ4MTcyNDECXzYECWFydFNpZ25JRAgFDSR0MDE3MTQ4MTcyNDECXzcDCQEBIQEFCmlzVmFsaWRORlQJAAIBAg9Ob3QgYSB2YWxpZCBuZnQECXNhbGVPd25lcgkBFWdldFNhbGVPd25lckFuZFN0YXR1cwEFBW5mdElkAwkBAiE9AgUGY2FsbGVyBQlzYWxlT3duZXIJAAIBAiBPbmx5IHNhbGUgb3duZXIgY2FuIGFjY2VwdCBvZmZlcgQGYmlkS2V5CQEJZ2V0QmlkS2V5BAUKb2ZmZXJPd25lcgUFbmZ0SWQFCXNhbGVPd25lcgUHb2ZmZXJJZAQNJHQwMTc1MDIxNzU1NwkBCmdldEJpZERhdGEBBQZiaWRLZXkECmJpZERhdGFBcnIIBQ0kdDAxNzUwMjE3NTU3Al8xBAdhc3NldElkCAUNJHQwMTc1MDIxNzU1NwJfMgQHYmlkRGF0YQgFDSR0MDE3NTAyMTc1NTcCXzMEB3NhbGVLZXkJAQpnZXRTYWxlS2V5BAUJc2FsZU93bmVyBQVuZnRJZAUFYXJ0SWQFC2NyZWF0b3JBZGRyBAhzYWxlSW5mbwkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4DCQAAAgkAsQIBBQhzYWxlSW5mbwAACQACAQIPU2FsZSBOb3QgZm91bmQhBAZhbW91bnQJAQV2YWx1ZQEJALYJAQkAkQMCBQpiaWREYXRhQXJyAAEEDSR0MDE3ODAwMTc5MzEJAQxzZXRUcmFuc2ZlcnMGBQZhbW91bnQFB2Fzc2V0SWQFBW5mdElkBQtjcmVhdG9yQWRkcgUJc2FsZU93bmVyCQCRAwIFCmJpZERhdGFBcnIABgQLY29tbWlzc2lvbnMIBQ0kdDAxNzgwMDE3OTMxAl8xBApjcmVhdG9yRmVlCAUNJHQwMTc4MDAxNzkzMQJfMgQIb3duZXJGZWUIBQ0kdDAxNzgwMDE3OTMxAl8zBAxjb2xsZWN0b3JORlQIBQ0kdDAxNzgwMDE3OTMxAl80BAphc3NldElkU3RyAwkBCWlzRGVmaW5lZAEFB2Fzc2V0SWQJANgEAQkBBXZhbHVlAQUHYXNzZXRJZAIFV0FWRVMJAM4IAgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUGYmlkS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FCXNhbGVPd25lcgIBXwUFbmZ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBmJpZEtleQIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICBQdiaWREYXRhAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQdzYWxlS2V5AgFfBQJpZAIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQhzYWxlSW5mbwIOX0NMT1NFRC1PRkZFUl8JAKQDAQUEZGF0ZQIBXwUCaWQCAV8FCm9mZmVyT3duZXICAV8JAKQDAQUGYW1vdW50AgFfBQphc3NldElkU3RyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUKY3JlYXRvckZlZQkAzAgCBQhvd25lckZlZQkAzAgCBQxjb2xsZWN0b3JORlQFA25pbAULY29tbWlzc2lvbnMBaQELY2FuY2VsT2ZmZXIEBW5mdElkB29mZmVySWQKb2ZmZXJPd25lcglzYWxlT3duZXIEDSR0MDE4NzUxMTg4MjYJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDE4NzUxMTg4MjYCXzEEBmNhbGxlcggFDSR0MDE4NzUxMTg4MjYCXzIEBGRhdGUIBQ0kdDAxODc1MTE4ODI2Al8zAwMJAQIhPQIFBmNhbGxlcgUKb2ZmZXJPd25lcgkBAiE9AgUGY2FsbGVyBQlzYWxlT3duZXIHCQACAQIdWW91IGNhbm5vdCBjYW5jZWwgdGhpcyBvZmZlci4EBmJpZEtleQkBCWdldEJpZEtleQQFCm9mZmVyT3duZXIFBW5mdElkBQlzYWxlT3duZXIFB29mZmVySWQEDSR0MDE5MDAwMTkwNTUJAQpnZXRCaWREYXRhAQUGYmlkS2V5BApiaWREYXRhQXJyCAUNJHQwMTkwMDAxOTA1NQJfMQQHYXNzZXRJZAgFDSR0MDE5MDAwMTkwNTUCXzIEB2JpZERhdGEIBQ0kdDAxOTAwMDE5MDU1Al8zCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUGYmlkS2V5AgVfT1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBmJpZEtleQIKX0NBTkNFTExFRAkArAICCQCsAgIJAKwCAgkArAICBQdiaWREYXRhAgtfQ0FOQ0VMTEVEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKYmlkRGF0YUFycgABBQdhc3NldElkBQNuaWwALwC/JQ==", "height": 2337892, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6oG5vYcVV3wCsopCphmbZsjDT9qjoQSkwXhgSwPk4EvM Next: BXtoTCEAeG9b8xRb6WZjS4Qz2T6zUmPx2jUxybEoxVii Diff:
OldNewDifferences
4949 func getUserStrByK (key) = valueOrElse(getString(userDapp, key), "Error")
5050
5151
52-func getUserRoyalties (key) = valueOrElse(getInteger(userDapp, key), 10)
52+func getUserRoyalties (key) = valueOrElse(getInteger(userDapp, key), 1000)
5353
5454
5555 func getArtStrByK (key) = valueOrElse(getString(artworksDapp, key), "")
199199 let agent = valueOrElse(getString(userDapp, keyArtistAgentAddr(creatorAddr)), feeReceiver)
200200 let agentShare = valueOrElse(getInteger(userDapp, keySecondaryShare(creatorAddr)), 0)
201201 let amountForSign = fraction(amount, signCut, 100)
202- let amountForCreator = fraction(amount, creatorCut, 100)
202+ let amountForCreator = fraction(amount, creatorCut, 10000)
203203 let amountForOwner = (amount - (amountForSign + amountForCreator))
204204 let amountForAgent = if (if ((agent != feeReceiver))
205205 then (agentShare > 0)
255255
256256
257257 func provideBaseData (i,nftId) = {
258- let $t095459585 = idCallerDate(i)
259- let id = $t095459585._1
260- let caller = $t095459585._2
261- let date = $t095459585._3
262- let $t095899658 = checkNFTInfo(nftId)
263- let isValidNFT = $t095899658._1
264- let artId = $t095899658._2
265- let creatorAddr = $t095899658._3
266- let artSignID = $t095899658._4
258+ let $t095619601 = idCallerDate(i)
259+ let id = $t095619601._1
260+ let caller = $t095619601._2
261+ let date = $t095619601._3
262+ let $t096059674 = checkNFTInfo(nftId)
263+ let isValidNFT = $t096059674._1
264+ let artId = $t096059674._2
265+ let creatorAddr = $t096059674._3
266+ let artSignID = $t096059674._4
267267 $Tuple7(id, caller, date, isValidNFT, artId, creatorAddr, artSignID)
268268 }
269269
299299
300300 @Callable(i)
301301 func sellNFT (price,asset) = {
302- let $t01076310799 = isPayment(i)
303- let payment = $t01076310799._1
304- let amount = $t01076310799._2
302+ let $t01077910815 = isPayment(i)
303+ let payment = $t01077910815._1
304+ let amount = $t01077910815._2
305305 if ((amount != 1))
306306 then throw("No NFT attached")
307307 else {
310310 else false)
311311 then toBase58String(value(payment.assetId))
312312 else throw("Only SIGN Art NFT accepted.")
313- let $t01103711130 = provideBaseData(i, nftId)
314- let id = $t01103711130._1
315- let caller = $t01103711130._2
316- let date = $t01103711130._3
317- let isValidNFT = $t01103711130._4
318- let artId = $t01103711130._5
319- let creatorAddr = $t01103711130._6
320- let artSignID = $t01103711130._7
313+ let $t01105311146 = provideBaseData(i, nftId)
314+ let id = $t01105311146._1
315+ let caller = $t01105311146._2
316+ let date = $t01105311146._3
317+ let isValidNFT = $t01105311146._4
318+ let artId = $t01105311146._5
319+ let creatorAddr = $t01105311146._6
320+ let artSignID = $t01105311146._7
321321 if ((size(artSignID) == 0))
322322 then throw("Artwork not found on SIGN Art")
323323 else if (!(isValidNFT))
334334
335335 @Callable(i)
336336 func updateSalePrice (nftId,price,asset) = {
337- let $t01203412127 = provideBaseData(i, nftId)
338- let id = $t01203412127._1
339- let caller = $t01203412127._2
340- let date = $t01203412127._3
341- let isValidNFT = $t01203412127._4
342- let artId = $t01203412127._5
343- let creatorAddr = $t01203412127._6
344- let artSignID = $t01203412127._7
337+ let $t01205012143 = provideBaseData(i, nftId)
338+ let id = $t01205012143._1
339+ let caller = $t01205012143._2
340+ let date = $t01205012143._3
341+ let isValidNFT = $t01205012143._4
342+ let artId = $t01205012143._5
343+ let creatorAddr = $t01205012143._6
344+ let artSignID = $t01205012143._7
345345 if ((size(artSignID) == 0))
346346 then throw("Artwork not found on SIGN Art, cancel your sale.")
347347 else if (!(isValidNFT))
371371
372372 @Callable(i)
373373 func cancelSale (nftId) = {
374- let $t01330413548 = provideBaseData(i, nftId)
375- let id = $t01330413548._1
376- let caller = $t01330413548._2
377- let date = $t01330413548._3
378- let isValidNFT = $t01330413548._4
379- let artId = $t01330413548._5
380- let creatorAddr = $t01330413548._6
381- let artSignID = $t01330413548._7
374+ let $t01332013564 = provideBaseData(i, nftId)
375+ let id = $t01332013564._1
376+ let caller = $t01332013564._2
377+ let date = $t01332013564._3
378+ let isValidNFT = $t01332013564._4
379+ let artId = $t01332013564._5
380+ let creatorAddr = $t01332013564._6
381+ let artSignID = $t01332013564._7
382382 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
383383 if ((saleOwner != caller))
384384 then throw("You don't own this NFT")
398398
399399 @Callable(i)
400400 func buyNFT (nftId) = {
401- let $t01440214495 = provideBaseData(i, nftId)
402- let id = $t01440214495._1
403- let caller = $t01440214495._2
404- let date = $t01440214495._3
405- let isValidNFT = $t01440214495._4
406- let artId = $t01440214495._5
407- let creatorAddr = $t01440214495._6
408- let artSignID = $t01440214495._7
401+ let $t01441814511 = provideBaseData(i, nftId)
402+ let id = $t01441814511._1
403+ let caller = $t01441814511._2
404+ let date = $t01441814511._3
405+ let isValidNFT = $t01441814511._4
406+ let artId = $t01441814511._5
407+ let creatorAddr = $t01441814511._6
408+ let artSignID = $t01441814511._7
409409 if ((size(artSignID) == 0))
410410 then throw("Artwork not found on SIGN Art, cancel your sale.")
411411 else if (!(isValidNFT))
421421 if ((parseInt(saleInfoArray[1]) == 0))
422422 then throw("Offer only")
423423 else {
424- let $t01500415040 = isPayment(i)
425- let payment = $t01500415040._1
426- let amount = $t01500415040._2
424+ let $t01502015056 = isPayment(i)
425+ let payment = $t01502015056._1
426+ let amount = $t01502015056._2
427427 let paymentAssetStr = if (isDefined(payment.assetId))
428428 then toBase58String(value(payment.assetId))
429429 else ""
432432 else (saleInfoArray[2] != paymentAssetStr))
433433 then throw("Payment infos don't match.")
434434 else {
435- let $t01555415686 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
436- let commissions = $t01555415686._1
437- let creatorFee = $t01555415686._2
438- let ownerFee = $t01555415686._3
439- let collectorNFT = $t01555415686._4
435+ let $t01557015702 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
436+ let commissions = $t01557015702._1
437+ let creatorFee = $t01557015702._2
438+ let ownerFee = $t01557015702._3
439+ let collectorNFT = $t01557015702._4
440440 ([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)
441441 }
442442 }
448448
449449 @Callable(i)
450450 func setOffer (nftId) = {
451- let $t01611416211 = provideBaseData(i, nftId)
452- let id = $t01611416211._1
453- let offerOwner = $t01611416211._2
454- let date = $t01611416211._3
455- let isValidNFT = $t01611416211._4
456- let artId = $t01611416211._5
457- let creatorAddr = $t01611416211._6
458- let artSignID = $t01611416211._7
451+ let $t01613016227 = provideBaseData(i, nftId)
452+ let id = $t01613016227._1
453+ let offerOwner = $t01613016227._2
454+ let date = $t01613016227._3
455+ let isValidNFT = $t01613016227._4
456+ let artId = $t01613016227._5
457+ let creatorAddr = $t01613016227._6
458+ let artSignID = $t01613016227._7
459459 if (!(isValidNFT))
460460 then throw("Not a valid nft")
461461 else {
462- let $t01627516311 = isPayment(i)
463- let payment = $t01627516311._1
464- let amount = $t01627516311._2
462+ let $t01629116327 = isPayment(i)
463+ let payment = $t01629116327._1
464+ let amount = $t01629116327._2
465465 let assetId = if (!(isDefined(payment.assetId)))
466466 then "WAVES"
467467 else toBase58String(value(payment.assetId))
482482
483483 @Callable(i)
484484 func acceptOffer (nftId,offerId,offerOwner) = {
485- let $t01713217225 = provideBaseData(i, nftId)
486- let id = $t01713217225._1
487- let caller = $t01713217225._2
488- let date = $t01713217225._3
489- let isValidNFT = $t01713217225._4
490- let artId = $t01713217225._5
491- let creatorAddr = $t01713217225._6
492- let artSignID = $t01713217225._7
485+ let $t01714817241 = provideBaseData(i, nftId)
486+ let id = $t01714817241._1
487+ let caller = $t01714817241._2
488+ let date = $t01714817241._3
489+ let isValidNFT = $t01714817241._4
490+ let artId = $t01714817241._5
491+ let creatorAddr = $t01714817241._6
492+ let artSignID = $t01714817241._7
493493 if (!(isValidNFT))
494494 then throw("Not a valid nft")
495495 else {
498498 then throw("Only sale owner can accept offer")
499499 else {
500500 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
501- let $t01748617541 = getBidData(bidKey)
502- let bidDataArr = $t01748617541._1
503- let assetId = $t01748617541._2
504- let bidData = $t01748617541._3
501+ let $t01750217557 = getBidData(bidKey)
502+ let bidDataArr = $t01750217557._1
503+ let assetId = $t01750217557._2
504+ let bidData = $t01750217557._3
505505 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
506506 let saleInfo = getStrByK((saleKey + "_OPEN"))
507507 if ((size(saleInfo) == 0))
508508 then throw("Sale Not found!")
509509 else {
510510 let amount = value(parseInt(bidDataArr[1]))
511- let $t01778417915 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
512- let commissions = $t01778417915._1
513- let creatorFee = $t01778417915._2
514- let ownerFee = $t01778417915._3
515- let collectorNFT = $t01778417915._4
511+ let $t01780017931 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
512+ let commissions = $t01780017931._1
513+ let creatorFee = $t01780017931._2
514+ let ownerFee = $t01780017931._3
515+ let collectorNFT = $t01780017931._4
516516 let assetIdStr = if (isDefined(assetId))
517517 then toBase58String(value(assetId))
518518 else "WAVES"
526526
527527 @Callable(i)
528528 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
529- let $t01873518810 = idCallerDate(i)
530- let id = $t01873518810._1
531- let caller = $t01873518810._2
532- let date = $t01873518810._3
529+ let $t01875118826 = idCallerDate(i)
530+ let id = $t01875118826._1
531+ let caller = $t01875118826._2
532+ let date = $t01875118826._3
533533 if (if ((caller != offerOwner))
534534 then (caller != saleOwner)
535535 else false)
536536 then throw("You cannot cancel this offer.")
537537 else {
538538 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
539- let $t01898419039 = getBidData(bidKey)
540- let bidDataArr = $t01898419039._1
541- let assetId = $t01898419039._2
542- let bidData = $t01898419039._3
539+ let $t01900019055 = getBidData(bidKey)
540+ let bidDataArr = $t01900019055._1
541+ let assetId = $t01900019055._2
542+ let bidData = $t01900019055._3
543543 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
544544 }
545545 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func getStrByK (key) = valueOrElse(getString(this, key), "")
55
66
77 let unitTest = false
88
99 let oracleFee = value(addressFromString(getStrByK("conf_oracle_fee")))
1010
1111 let feeReceiver = getStrByK("conf_fee_receiver")
1212
1313 let artworksDapp = value(addressFromString(getStrByK("conf_artworks_dapp")))
1414
1515 let userDapp = if (unitTest)
1616 then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
1717 else value(addressFromString(getStrByK("conf_users_dapp")))
1818
1919 let signAssetId = fromBase58String(getStrByK("conf_accepted_asset_SIGN"))
2020
2121 let usdnAssetId = fromBase58String(getStrByK("conf_accepted_asset_USDN"))
2222
2323 let usdtAssetId = fromBase58String(getStrByK("conf_accepted_asset_USDT"))
2424
2525 let wavesAssetId = base58''
2626
2727 let chris = getStrByK("conf_admin_1")
2828
2929 let signCut = 3
3030
3131 let userSuspended = "SUSPENDED"
3232
3333 let userRemoved = "REMOVED"
3434
3535 let artIllegal = "ILLEGAL"
3636
3737 let artSuspended = "SUSPENDED"
3838
3939 let dappRunningKey = "conf_dapp_is_running"
4040
4141 let maintenanceMSGKey = "conf_maintenance_msg"
4242
4343 let dappRunning = valueOrElse(getBoolean(this, dappRunningKey), true)
4444
4545 let maintenanceMSG = valueOrElse(getString(this, maintenanceMSGKey), "")
4646
4747 let numSalesK = "num_sales"
4848
4949 func getUserStrByK (key) = valueOrElse(getString(userDapp, key), "Error")
5050
5151
52-func getUserRoyalties (key) = valueOrElse(getInteger(userDapp, key), 10)
52+func getUserRoyalties (key) = valueOrElse(getInteger(userDapp, key), 1000)
5353
5454
5555 func getArtStrByK (key) = valueOrElse(getString(artworksDapp, key), "")
5656
5757
5858 func getIntByK (key) = valueOrElse(getInteger(this, key), 0)
5959
6060
6161 func keyUserStatus (addr) = ("user_status_" + addr)
6262
6363
6464 func keyUserRoyalties (addr) = ("user_royalties_" + addr)
6565
6666
6767 func keySignID (artistAddr,artId) = ((("art_signid_" + artId) + "_") + artistAddr)
6868
6969
7070 func keyFlag (artistAddr,artId) = ((("art_flag_" + artId) + "_") + artistAddr)
7171
7272
7373 func keyNFTData (id) = ("nft_" + id)
7474
7575
7676 func getSaleKey (caller,nftId,artId,creatorAddr) = ((((((("sale2nd_info_" + caller) + "_") + nftId) + "_") + artId) + "_") + creatorAddr)
7777
7878
7979 func getBidKey (offerOwner,nftId,saleOwner,offerId) = ((((((("offer2nd_" + offerOwner) + "_") + nftId) + "_") + saleOwner) + "_") + offerId)
8080
8181
8282 func getIntByKFromOracle (key) = valueOrErrorMessage(getInteger(oracleFee, key), "Integer undefine or 0 in oracle")
8383
8484
8585 let currentCertificationPrice = getIntByKFromOracle(("certification_fee_" + toBase58String(signAssetId)))
8686
8787 func keyArtistAgentAddr (artistAddr) = ("artist_agent_" + artistAddr)
8888
8989
9090 func keySecondaryShare (artistAddr) = ("artist_agent_secondary_" + artistAddr)
9191
9292
9393 func idCallerDate (i) = if (!(dappRunning))
9494 then throw(maintenanceMSG)
9595 else $Tuple3(toBase58String(i.transactionId), toBase58String(i.caller.bytes), lastBlock.timestamp)
9696
9797
9898 func isPayment (i) = if ((size(i.payments) == 0))
9999 then throw("No payment attached")
100100 else {
101101 let payment = value(i.payments[0])
102102 let amount = value(payment.amount)
103103 $Tuple2(payment, amount)
104104 }
105105
106106
107107 func assetIsValid (assetDetails) = if (if (if ((assetDetails.quantity == 1))
108108 then (assetDetails.decimals == 0)
109109 else false)
110110 then (assetDetails.reissuable == false)
111111 else false)
112112 then (assetDetails.issuer == artworksDapp)
113113 else false
114114
115115
116116 func isSignArtNFT (id) = {
117117 let assetDetails = value(assetInfo(id))
118118 assetIsValid(assetDetails)
119119 }
120120
121121
122122 func acceptedAssetIds (assetId) = if (if (if (if (if ((assetId != toBase58String(signAssetId)))
123123 then (assetId != toBase58String(wavesAssetId))
124124 else false)
125125 then (assetId != "WAVES")
126126 else false)
127127 then (assetId != toBase58String(usdnAssetId))
128128 else false)
129129 then (assetId != toBase58String(usdtAssetId))
130130 else false)
131131 then false
132132 else true
133133
134134
135135 func getBidAssetId (assetId) = if ((assetId == "WAVES"))
136136 then unit
137137 else fromBase58String(assetId)
138138
139139
140140 func getSaleOwnerAndStatus (nftid) = {
141141 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
142142 if ((size(saleOwner) == 0))
143143 then throw("NFT not found")
144144 else {
145145 let saleStatus = getStrByK(((("sale2nd_status_" + saleOwner) + "_") + nftid))
146146 if ((saleStatus != "OPEN"))
147147 then throw("NFT not for sale")
148148 else saleOwner
149149 }
150150 }
151151
152152
153153 func getBidData (key) = {
154154 let bidData = getStrByK((key + "_OPEN"))
155155 if ((bidData == ""))
156156 then throw("Offer not found")
157157 else {
158158 let bidDataArr = split(bidData, "_")
159159 let assetId = getBidAssetId(bidDataArr[2])
160160 $Tuple3(bidDataArr, assetId, bidData)
161161 }
162162 }
163163
164164
165165 func artIsValid (artStatus) = if ((artStatus != artIllegal))
166166 then (artStatus != artSuspended)
167167 else false
168168
169169
170170 func checkArtStatus (addr,id) = {
171171 let artStatus = getArtStrByK(keyFlag(addr, id))
172172 if (artIsValid(artStatus))
173173 then true
174174 else throw(("Original Artwork flagged as " + artStatus))
175175 }
176176
177177
178178 func checkArtistStatus (addr) = {
179179 let artistStatus = getUserStrByK(keyUserStatus(addr))
180180 if (containsElement([userSuspended, userRemoved], artistStatus))
181181 then throw(("Original Artist " + artistStatus))
182182 else true
183183 }
184184
185185
186186 func checkNFTInfo (assetId) = {
187187 let nftData = split(getArtStrByK(keyNFTData(assetId)), "_")
188188 let artSignID = getArtStrByK(keySignID(nftData[6], nftData[5]))
189189 if (if (!(checkArtStatus(nftData[6], nftData[5])))
190190 then !(checkArtistStatus(nftData[6]))
191191 else false)
192192 then $Tuple4(false, nftData[5], nftData[6], artSignID)
193193 else $Tuple4(true, nftData[5], nftData[6], artSignID)
194194 }
195195
196196
197197 func setTransfers (amount,assetId,nftid,creatorAddr,saleOwner,caller) = {
198198 let creatorCut = getUserRoyalties(keyUserRoyalties(creatorAddr))
199199 let agent = valueOrElse(getString(userDapp, keyArtistAgentAddr(creatorAddr)), feeReceiver)
200200 let agentShare = valueOrElse(getInteger(userDapp, keySecondaryShare(creatorAddr)), 0)
201201 let amountForSign = fraction(amount, signCut, 100)
202- let amountForCreator = fraction(amount, creatorCut, 100)
202+ let amountForCreator = fraction(amount, creatorCut, 10000)
203203 let amountForOwner = (amount - (amountForSign + amountForCreator))
204204 let amountForAgent = if (if ((agent != feeReceiver))
205205 then (agentShare > 0)
206206 else false)
207207 then fraction(amount, agentShare, 100)
208208 else 0
209209 let commissions = if ((amountForAgent != 0))
210210 then [ScriptTransfer(Address(fromBase58String(feeReceiver)), (amountForSign - amountForAgent), assetId), ScriptTransfer(Address(fromBase58String(agent)), amountForAgent, assetId)]
211211 else [ScriptTransfer(Address(fromBase58String(feeReceiver)), amountForSign, assetId)]
212212 let creatorFee = ScriptTransfer(Address(fromBase58String(creatorAddr)), amountForCreator, assetId)
213213 let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
214214 let collectorNFT = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))
215215 $Tuple4(commissions, creatorFee, ownerFee, collectorNFT)
216216 }
217217
218218
219219 func validateMinSell (assetId,price) = {
220220 let minSellWaves = if (unitTest)
221221 then 10
222222 else getIntByKFromOracle("waves_min_sell")
223223 let minSellUsdn = 1000000
224224 let minSellSign = if (unitTest)
225225 then 1
226226 else (currentCertificationPrice * 2)
227227 if (if (if (if (if (if ((assetId == toBase58String(usdnAssetId)))
228228 then (minSellUsdn > price)
229229 else false)
230230 then (price != 0)
231231 else false)
232232 then true
233233 else if (if ((assetId == toBase58String(usdtAssetId)))
234234 then (minSellUsdn > price)
235235 else false)
236236 then (price != 0)
237237 else false)
238238 then true
239239 else if (if ((assetId == toBase58String(signAssetId)))
240240 then (minSellSign > price)
241241 else false)
242242 then (price != 0)
243243 else false)
244244 then true
245245 else if (if (if ((assetId == toBase58String(wavesAssetId)))
246246 then true
247247 else (assetId == "WAVES"))
248248 then (minSellWaves > price)
249249 else false)
250250 then (price != 0)
251251 else false)
252252 then false
253253 else true
254254 }
255255
256256
257257 func provideBaseData (i,nftId) = {
258- let $t095459585 = idCallerDate(i)
259- let id = $t095459585._1
260- let caller = $t095459585._2
261- let date = $t095459585._3
262- let $t095899658 = checkNFTInfo(nftId)
263- let isValidNFT = $t095899658._1
264- let artId = $t095899658._2
265- let creatorAddr = $t095899658._3
266- let artSignID = $t095899658._4
258+ let $t095619601 = idCallerDate(i)
259+ let id = $t095619601._1
260+ let caller = $t095619601._2
261+ let date = $t095619601._3
262+ let $t096059674 = checkNFTInfo(nftId)
263+ let isValidNFT = $t096059674._1
264+ let artId = $t096059674._2
265+ let creatorAddr = $t096059674._3
266+ let artSignID = $t096059674._4
267267 $Tuple7(id, caller, date, isValidNFT, artId, creatorAddr, artSignID)
268268 }
269269
270270
271271 func updateNumSales () = {
272272 let numSales = getIntByK(numSalesK)
273273 IntegerEntry(numSalesK, (numSales + 1))
274274 }
275275
276276
277277 @Callable(invoke)
278278 func setConf (key,val) = {
279279 let caller = toString(invoke.caller)
280280 if (containsElement([chris, toString(this)], caller))
281281 then if (contains(key, "conf_"))
282282 then [StringEntry(key, val)]
283283 else throw("Entries starting with conf_ only")
284284 else throw("You are not allowed to change this")
285285 }
286286
287287
288288
289289 @Callable(invoke)
290290 func appRunning (isLive,message) = {
291291 let caller = toString(invoke.caller)
292292 let id = toBase58String(invoke.transactionId)
293293 if (containsElement([chris, toString(this)], caller))
294294 then [BooleanEntry(dappRunningKey, isLive), StringEntry(maintenanceMSGKey, message)]
295295 else throw("You are not allowed to change this")
296296 }
297297
298298
299299
300300 @Callable(i)
301301 func sellNFT (price,asset) = {
302- let $t01076310799 = isPayment(i)
303- let payment = $t01076310799._1
304- let amount = $t01076310799._2
302+ let $t01077910815 = isPayment(i)
303+ let payment = $t01077910815._1
304+ let amount = $t01077910815._2
305305 if ((amount != 1))
306306 then throw("No NFT attached")
307307 else {
308308 let nftId = if (if (isDefined(payment.assetId))
309309 then isSignArtNFT(value(payment.assetId))
310310 else false)
311311 then toBase58String(value(payment.assetId))
312312 else throw("Only SIGN Art NFT accepted.")
313- let $t01103711130 = provideBaseData(i, nftId)
314- let id = $t01103711130._1
315- let caller = $t01103711130._2
316- let date = $t01103711130._3
317- let isValidNFT = $t01103711130._4
318- let artId = $t01103711130._5
319- let creatorAddr = $t01103711130._6
320- let artSignID = $t01103711130._7
313+ let $t01105311146 = provideBaseData(i, nftId)
314+ let id = $t01105311146._1
315+ let caller = $t01105311146._2
316+ let date = $t01105311146._3
317+ let isValidNFT = $t01105311146._4
318+ let artId = $t01105311146._5
319+ let creatorAddr = $t01105311146._6
320+ let artSignID = $t01105311146._7
321321 if ((size(artSignID) == 0))
322322 then throw("Artwork not found on SIGN Art")
323323 else if (!(isValidNFT))
324324 then throw("Not a valid nft")
325325 else if (!(acceptedAssetIds(asset)))
326326 then throw("Only SIGN, USDN, USDT or WAVES accepted")
327327 else if (!(validateMinSell(asset, price)))
328328 then throw("Wrong minimum sell price")
329329 else [StringEntry((getSaleKey(caller, nftId, artId, creatorAddr) + "_OPEN"), ((((((((((((toString(date) + "_") + toString(price)) + "_") + asset) + "_") + nftId) + "_") + artId) + "_") + creatorAddr) + "_") + id)), StringEntry(((("sale2nd_status_" + caller) + "_") + nftId), "OPEN"), StringEntry(("current_owner_on_dapp_" + nftId), caller)]
330330 }
331331 }
332332
333333
334334
335335 @Callable(i)
336336 func updateSalePrice (nftId,price,asset) = {
337- let $t01203412127 = provideBaseData(i, nftId)
338- let id = $t01203412127._1
339- let caller = $t01203412127._2
340- let date = $t01203412127._3
341- let isValidNFT = $t01203412127._4
342- let artId = $t01203412127._5
343- let creatorAddr = $t01203412127._6
344- let artSignID = $t01203412127._7
337+ let $t01205012143 = provideBaseData(i, nftId)
338+ let id = $t01205012143._1
339+ let caller = $t01205012143._2
340+ let date = $t01205012143._3
341+ let isValidNFT = $t01205012143._4
342+ let artId = $t01205012143._5
343+ let creatorAddr = $t01205012143._6
344+ let artSignID = $t01205012143._7
345345 if ((size(artSignID) == 0))
346346 then throw("Artwork not found on SIGN Art, cancel your sale.")
347347 else if (!(isValidNFT))
348348 then throw("Not a valid nft")
349349 else {
350350 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
351351 if ((saleOwner != caller))
352352 then throw("You don't own this NFT")
353353 else {
354354 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
355355 if ((saleStatus != "OPEN"))
356356 then throw("Sale not active")
357357 else if (!(acceptedAssetIds(asset)))
358358 then throw("Only SIGN, USDN, USDT or WAVES accepted")
359359 else if (!(validateMinSell(asset, price)))
360360 then throw("Wrong minimum sell price")
361361 else {
362362 let saleKey = getSaleKey(caller, nftId, artId, creatorAddr)
363363 let saleInfo = split(getStrByK((saleKey + "_OPEN")), "_")
364364 [StringEntry((saleKey + "_OPEN"), ((((((((((((saleInfo[0] + "_") + toString(price)) + "_") + asset) + "_") + saleInfo[3]) + "_") + saleInfo[4]) + "_") + saleInfo[5]) + "_") + saleInfo[6]))]
365365 }
366366 }
367367 }
368368 }
369369
370370
371371
372372 @Callable(i)
373373 func cancelSale (nftId) = {
374- let $t01330413548 = provideBaseData(i, nftId)
375- let id = $t01330413548._1
376- let caller = $t01330413548._2
377- let date = $t01330413548._3
378- let isValidNFT = $t01330413548._4
379- let artId = $t01330413548._5
380- let creatorAddr = $t01330413548._6
381- let artSignID = $t01330413548._7
374+ let $t01332013564 = provideBaseData(i, nftId)
375+ let id = $t01332013564._1
376+ let caller = $t01332013564._2
377+ let date = $t01332013564._3
378+ let isValidNFT = $t01332013564._4
379+ let artId = $t01332013564._5
380+ let creatorAddr = $t01332013564._6
381+ let artSignID = $t01332013564._7
382382 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
383383 if ((saleOwner != caller))
384384 then throw("You don't own this NFT")
385385 else {
386386 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
387387 if ((saleStatus != "OPEN"))
388388 then throw("Sale not active")
389389 else {
390390 let saleKey = getSaleKey(caller, nftId, artId, creatorAddr)
391391 let saleInfo = getStrByK((saleKey + "_OPEN"))
392392 [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))]
393393 }
394394 }
395395 }
396396
397397
398398
399399 @Callable(i)
400400 func buyNFT (nftId) = {
401- let $t01440214495 = provideBaseData(i, nftId)
402- let id = $t01440214495._1
403- let caller = $t01440214495._2
404- let date = $t01440214495._3
405- let isValidNFT = $t01440214495._4
406- let artId = $t01440214495._5
407- let creatorAddr = $t01440214495._6
408- let artSignID = $t01440214495._7
401+ let $t01441814511 = provideBaseData(i, nftId)
402+ let id = $t01441814511._1
403+ let caller = $t01441814511._2
404+ let date = $t01441814511._3
405+ let isValidNFT = $t01441814511._4
406+ let artId = $t01441814511._5
407+ let creatorAddr = $t01441814511._6
408+ let artSignID = $t01441814511._7
409409 if ((size(artSignID) == 0))
410410 then throw("Artwork not found on SIGN Art, cancel your sale.")
411411 else if (!(isValidNFT))
412412 then throw("Not a valid nft")
413413 else {
414414 let saleOwner = getSaleOwnerAndStatus(nftId)
415415 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
416416 let saleInfo = getStrByK((saleKey + "_OPEN"))
417417 if ((size(saleInfo) == 0))
418418 then throw("Sale Not found!")
419419 else {
420420 let saleInfoArray = split(saleInfo, "_")
421421 if ((parseInt(saleInfoArray[1]) == 0))
422422 then throw("Offer only")
423423 else {
424- let $t01500415040 = isPayment(i)
425- let payment = $t01500415040._1
426- let amount = $t01500415040._2
424+ let $t01502015056 = isPayment(i)
425+ let payment = $t01502015056._1
426+ let amount = $t01502015056._2
427427 let paymentAssetStr = if (isDefined(payment.assetId))
428428 then toBase58String(value(payment.assetId))
429429 else ""
430430 if (if ((saleInfoArray[1] != toString(amount)))
431431 then true
432432 else (saleInfoArray[2] != paymentAssetStr))
433433 then throw("Payment infos don't match.")
434434 else {
435- let $t01555415686 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
436- let commissions = $t01555415686._1
437- let creatorFee = $t01555415686._2
438- let ownerFee = $t01555415686._3
439- let collectorNFT = $t01555415686._4
435+ let $t01557015702 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
436+ let commissions = $t01557015702._1
437+ let creatorFee = $t01557015702._2
438+ let ownerFee = $t01557015702._3
439+ let collectorNFT = $t01557015702._4
440440 ([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)
441441 }
442442 }
443443 }
444444 }
445445 }
446446
447447
448448
449449 @Callable(i)
450450 func setOffer (nftId) = {
451- let $t01611416211 = provideBaseData(i, nftId)
452- let id = $t01611416211._1
453- let offerOwner = $t01611416211._2
454- let date = $t01611416211._3
455- let isValidNFT = $t01611416211._4
456- let artId = $t01611416211._5
457- let creatorAddr = $t01611416211._6
458- let artSignID = $t01611416211._7
451+ let $t01613016227 = provideBaseData(i, nftId)
452+ let id = $t01613016227._1
453+ let offerOwner = $t01613016227._2
454+ let date = $t01613016227._3
455+ let isValidNFT = $t01613016227._4
456+ let artId = $t01613016227._5
457+ let creatorAddr = $t01613016227._6
458+ let artSignID = $t01613016227._7
459459 if (!(isValidNFT))
460460 then throw("Not a valid nft")
461461 else {
462- let $t01627516311 = isPayment(i)
463- let payment = $t01627516311._1
464- let amount = $t01627516311._2
462+ let $t01629116327 = isPayment(i)
463+ let payment = $t01629116327._1
464+ let amount = $t01629116327._2
465465 let assetId = if (!(isDefined(payment.assetId)))
466466 then "WAVES"
467467 else toBase58String(value(payment.assetId))
468468 if (!(acceptedAssetIds(assetId)))
469469 then throw("asset not accepted")
470470 else if ((amount == 0))
471471 then throw("Offer of 0 not allowed")
472472 else if (!(validateMinSell(assetId, amount)))
473473 then throw("Wrong minimum sell price")
474474 else {
475475 let saleOwner = getSaleOwnerAndStatus(nftId)
476476 [StringEntry((getBidKey(offerOwner, nftId, saleOwner, id) + "_OPEN"), ((((((((((((((toString(date) + "_") + toString(amount)) + "_") + assetId) + "_") + nftId) + "_") + artId) + "_") + creatorAddr) + "_") + offerOwner) + "_") + id))]
477477 }
478478 }
479479 }
480480
481481
482482
483483 @Callable(i)
484484 func acceptOffer (nftId,offerId,offerOwner) = {
485- let $t01713217225 = provideBaseData(i, nftId)
486- let id = $t01713217225._1
487- let caller = $t01713217225._2
488- let date = $t01713217225._3
489- let isValidNFT = $t01713217225._4
490- let artId = $t01713217225._5
491- let creatorAddr = $t01713217225._6
492- let artSignID = $t01713217225._7
485+ let $t01714817241 = provideBaseData(i, nftId)
486+ let id = $t01714817241._1
487+ let caller = $t01714817241._2
488+ let date = $t01714817241._3
489+ let isValidNFT = $t01714817241._4
490+ let artId = $t01714817241._5
491+ let creatorAddr = $t01714817241._6
492+ let artSignID = $t01714817241._7
493493 if (!(isValidNFT))
494494 then throw("Not a valid nft")
495495 else {
496496 let saleOwner = getSaleOwnerAndStatus(nftId)
497497 if ((caller != saleOwner))
498498 then throw("Only sale owner can accept offer")
499499 else {
500500 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
501- let $t01748617541 = getBidData(bidKey)
502- let bidDataArr = $t01748617541._1
503- let assetId = $t01748617541._2
504- let bidData = $t01748617541._3
501+ let $t01750217557 = getBidData(bidKey)
502+ let bidDataArr = $t01750217557._1
503+ let assetId = $t01750217557._2
504+ let bidData = $t01750217557._3
505505 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
506506 let saleInfo = getStrByK((saleKey + "_OPEN"))
507507 if ((size(saleInfo) == 0))
508508 then throw("Sale Not found!")
509509 else {
510510 let amount = value(parseInt(bidDataArr[1]))
511- let $t01778417915 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
512- let commissions = $t01778417915._1
513- let creatorFee = $t01778417915._2
514- let ownerFee = $t01778417915._3
515- let collectorNFT = $t01778417915._4
511+ let $t01780017931 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
512+ let commissions = $t01780017931._1
513+ let creatorFee = $t01780017931._2
514+ let ownerFee = $t01780017931._3
515+ let collectorNFT = $t01780017931._4
516516 let assetIdStr = if (isDefined(assetId))
517517 then toBase58String(value(assetId))
518518 else "WAVES"
519519 ([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)
520520 }
521521 }
522522 }
523523 }
524524
525525
526526
527527 @Callable(i)
528528 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
529- let $t01873518810 = idCallerDate(i)
530- let id = $t01873518810._1
531- let caller = $t01873518810._2
532- let date = $t01873518810._3
529+ let $t01875118826 = idCallerDate(i)
530+ let id = $t01875118826._1
531+ let caller = $t01875118826._2
532+ let date = $t01875118826._3
533533 if (if ((caller != offerOwner))
534534 then (caller != saleOwner)
535535 else false)
536536 then throw("You cannot cancel this offer.")
537537 else {
538538 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
539- let $t01898419039 = getBidData(bidKey)
540- let bidDataArr = $t01898419039._1
541- let assetId = $t01898419039._2
542- let bidData = $t01898419039._3
539+ let $t01900019055 = getBidData(bidKey)
540+ let bidDataArr = $t01900019055._1
541+ let assetId = $t01900019055._2
542+ let bidData = $t01900019055._3
543543 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
544544 }
545545 }
546546
547547

github/deemru/w8io/026f985 
102.70 ms