tx · 5Lcsh7p6YFtDxz5fktwyXHhWZqkXsW9NVQVSofdENWbR

3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p:  -0.01500000 Waves

2022.11.30 07:17 [2339356] smart account 3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p > SELF 0.00000000 Waves

{ "type": 13, "id": "5Lcsh7p6YFtDxz5fktwyXHhWZqkXsW9NVQVSofdENWbR", "fee": 1500000, "feeAssetId": null, "timestamp": 1669781883078, "version": 2, "chainId": 84, "sender": "3N2eA4yzXa4wTj7pP8r6G144RRxZW7cmq4p", "senderPublicKey": "Hh3eFP2XFetZSfTxQiM1Ps96f68zi8Zh5ghhCZdjgdFs", "proofs": [ "2X7wrAmM4arbAAbHd7gA9CrbAV53q3hpTUabb9Dbt2wSxJzF9SDmEior3V7s2xsiwyWUQN2Nunsjy7t2KHndPYLN" ], "script": "base64:BgI5CAISBAoCCAgSBAoCBAgSBAoCAQgSBQoDCAEIEgMKAQgSAwoBCBIDCgEIEgUKAwgICBIGCgQICAgINAEJZ2V0U3RyQnlLAQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgAACHVuaXRUZXN0BwAJb3JhY2xlRmVlCQEFdmFsdWUBCQCmCAEJAQlnZXRTdHJCeUsBAg9jb25mX29yYWNsZV9mZWUAC2ZlZVJlY2VpdmVyCQEJZ2V0U3RyQnlLAQIRY29uZl9mZWVfcmVjZWl2ZXIADGFydHdvcmtzRGFwcAkBBXZhbHVlAQkApggBCQEJZ2V0U3RyQnlLAQISY29uZl9hcnR3b3Jrc19kYXBwAAh1c2VyRGFwcAMFCHVuaXRUZXN0CQEFdmFsdWUBCQCmCAECIzNNdDRSR01FeWpTV1lBb2NUUHFkNTV3ZEhRUUIzUFUyVUNtCQEFdmFsdWUBCQCmCAEJAQlnZXRTdHJCeUsBAg9jb25mX3VzZXJzX2RhcHAAC3NpZ25Bc3NldElkCQDZBAEJAQlnZXRTdHJCeUsBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X1NJR04AC3VzZG5Bc3NldElkCQDZBAEJAQlnZXRTdHJCeUsBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X1VTRE4AC3VzZHRBc3NldElkCQDZBAEJAQlnZXRTdHJCeUsBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X1VTRFQADHdhdmVzQXNzZXRJZAEAAAVjaHJpcwkBCWdldFN0ckJ5SwECDGNvbmZfYWRtaW5fMQAHc2lnbkN1dAADAA11c2VyU3VzcGVuZGVkAglTVVNQRU5ERUQAC3VzZXJSZW1vdmVkAgdSRU1PVkVEAAphcnRJbGxlZ2FsAgdJTExFR0FMAAxhcnRTdXNwZW5kZWQCCVNVU1BFTkRFRAAOZGFwcFJ1bm5pbmdLZXkCFGNvbmZfZGFwcF9pc19ydW5uaW5nABFtYWludGVuYW5jZU1TR0tleQIUY29uZl9tYWludGVuYW5jZV9tc2cAC2RhcHBSdW5uaW5nCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFDmRhcHBSdW5uaW5nS2V5BgAObWFpbnRlbmFuY2VNU0cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwURbWFpbnRlbmFuY2VNU0dLZXkCAAAJbnVtU2FsZXNLAgludW1fc2FsZXMBDWdldFVzZXJTdHJCeUsBA2tleQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQh1c2VyRGFwcAUDa2V5AgVFcnJvcgETZ2V0QXJ0d29ya1JveWFsdGllcwEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFDGFydHdvcmtzRGFwcAUDa2V5AOgHAQxnZXRBcnRTdHJCeUsBA2tleQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQxhcnR3b3Jrc0RhcHAFA2tleQIAAQlnZXRJbnRCeUsBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQNrZXkAAAENa2V5VXNlclN0YXR1cwEEYWRkcgkArAICAgx1c2VyX3N0YXR1c18FBGFkZHIBE2tleUFydHdvcmtSb3lhbHRpZXMCBmNhbGxlcgVhcnRJZAkArAICCQCsAgIJAKwCAgIOYXJ0X3JveWFsdGllc18FBWFydElkAgFfBQZjYWxsZXIBCWtleVNpZ25JRAIKYXJ0aXN0QWRkcgVhcnRJZAkArAICCQCsAgIJAKwCAgILYXJ0X3NpZ25pZF8FBWFydElkAgFfBQphcnRpc3RBZGRyAQdrZXlGbGFnAgphcnRpc3RBZGRyBWFydElkCQCsAgIJAKwCAgkArAICAglhcnRfZmxhZ18FBWFydElkAgFfBQphcnRpc3RBZGRyAQprZXlORlREYXRhAQJpZAkArAICAgRuZnRfBQJpZAEKZ2V0U2FsZUtleQQGY2FsbGVyBW5mdElkBWFydElkC2NyZWF0b3JBZGRyCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDXNhbGUybmRfaW5mb18FBmNhbGxlcgIBXwUFbmZ0SWQCAV8FBWFydElkAgFfBQtjcmVhdG9yQWRkcgEJZ2V0QmlkS2V5BApvZmZlck93bmVyBW5mdElkCXNhbGVPd25lcgdvZmZlcklkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCW9mZmVyMm5kXwUKb2ZmZXJPd25lcgIBXwUFbmZ0SWQCAV8FCXNhbGVPd25lcgIBXwUHb2ZmZXJJZAETZ2V0SW50QnlLRnJvbU9yYWNsZQEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUJb3JhY2xlRmVlBQNrZXkCH0ludGVnZXIgdW5kZWZpbmUgb3IgMCBpbiBvcmFjbGUAGWN1cnJlbnRDZXJ0aWZpY2F0aW9uUHJpY2UJARNnZXRJbnRCeUtGcm9tT3JhY2xlAQkArAICAhJjZXJ0aWZpY2F0aW9uX2ZlZV8JANgEAQULc2lnbkFzc2V0SWQBEmtleUFydGlzdEFnZW50QWRkcgEKYXJ0aXN0QWRkcgkArAICAg1hcnRpc3RfYWdlbnRfBQphcnRpc3RBZGRyARFrZXlTZWNvbmRhcnlTaGFyZQEKYXJ0aXN0QWRkcgkArAICAhdhcnRpc3RfYWdlbnRfc2Vjb25kYXJ5XwUKYXJ0aXN0QWRkcgEMaWRDYWxsZXJEYXRlAQFpAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHCQCVCgMJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAEJaXNQYXltZW50AQFpAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECE05vIHBheW1lbnQgYXR0YWNoZWQEB3BheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQGYW1vdW50CQEFdmFsdWUBCAUHcGF5bWVudAZhbW91bnQJAJQKAgUHcGF5bWVudAUGYW1vdW50AQxhc3NldElzVmFsaWQBDGFzc2V0RGV0YWlscwMDAwkAAAIIBQxhc3NldERldGFpbHMIcXVhbnRpdHkAAQkAAAIIBQxhc3NldERldGFpbHMIZGVjaW1hbHMAAAcJAAACCAUMYXNzZXREZXRhaWxzCnJlaXNzdWFibGUHBwkAAAIIBQxhc3NldERldGFpbHMGaXNzdWVyBQxhcnR3b3Jrc0RhcHAHAQxpc1NpZ25BcnRORlQBAmlkBAxhc3NldERldGFpbHMJAQV2YWx1ZQEJAOwHAQUCaWQJAQxhc3NldElzVmFsaWQBBQxhc3NldERldGFpbHMBEGFjY2VwdGVkQXNzZXRJZHMBB2Fzc2V0SWQDAwMDAwkBAiE9AgUHYXNzZXRJZAkA2AQBBQtzaWduQXNzZXRJZAkBAiE9AgUHYXNzZXRJZAkA2AQBBQx3YXZlc0Fzc2V0SWQHCQECIT0CBQdhc3NldElkAgVXQVZFUwcJAQIhPQIFB2Fzc2V0SWQJANgEAQULdXNkbkFzc2V0SWQHCQECIT0CBQdhc3NldElkCQDYBAEFC3VzZHRBc3NldElkBwcGAQ1nZXRCaWRBc3NldElkAQdhc3NldElkAwkAAAIFB2Fzc2V0SWQCBVdBVkVTBQR1bml0CQDZBAEFB2Fzc2V0SWQBFWdldFNhbGVPd25lckFuZFN0YXR1cwEFbmZ0aWQECXNhbGVPd25lcgkBCWdldFN0ckJ5SwEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0aWQDCQAAAgkAsQIBBQlzYWxlT3duZXIAAAkAAgECDU5GVCBub3QgZm91bmQECnNhbGVTdGF0dXMJAQlnZXRTdHJCeUsBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FCXNhbGVPd25lcgIBXwUFbmZ0aWQDCQECIT0CBQpzYWxlU3RhdHVzAgRPUEVOCQACAQIQTkZUIG5vdCBmb3Igc2FsZQUJc2FsZU93bmVyAQpnZXRCaWREYXRhAQNrZXkEB2JpZERhdGEJAQlnZXRTdHJCeUsBCQCsAgIFA2tleQIFX09QRU4DCQAAAgUHYmlkRGF0YQIACQACAQIPT2ZmZXIgbm90IGZvdW5kBApiaWREYXRhQXJyCQC1CQIFB2JpZERhdGECAV8EB2Fzc2V0SWQJAQ1nZXRCaWRBc3NldElkAQkAkQMCBQpiaWREYXRhQXJyAAIJAJUKAwUKYmlkRGF0YUFycgUHYXNzZXRJZAUHYmlkRGF0YQEKYXJ0SXNWYWxpZAEJYXJ0U3RhdHVzAwkBAiE9AgUJYXJ0U3RhdHVzBQphcnRJbGxlZ2FsCQECIT0CBQlhcnRTdGF0dXMFDGFydFN1c3BlbmRlZAcBDmNoZWNrQXJ0U3RhdHVzAgRhZGRyAmlkBAlhcnRTdGF0dXMJAQxnZXRBcnRTdHJCeUsBCQEHa2V5RmxhZwIFBGFkZHIFAmlkAwkBCmFydElzVmFsaWQBBQlhcnRTdGF0dXMGCQACAQkArAICAhxPcmlnaW5hbCBBcnR3b3JrIGZsYWdnZWQgYXMgBQlhcnRTdGF0dXMBEWNoZWNrQXJ0aXN0U3RhdHVzAQRhZGRyBAxhcnRpc3RTdGF0dXMJAQ1nZXRVc2VyU3RyQnlLAQkBDWtleVVzZXJTdGF0dXMBBQRhZGRyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUNdXNlclN1c3BlbmRlZAkAzAgCBQt1c2VyUmVtb3ZlZAUDbmlsBQxhcnRpc3RTdGF0dXMJAAIBCQCsAgICEE9yaWdpbmFsIEFydGlzdCAFDGFydGlzdFN0YXR1cwYBDGNoZWNrTkZUSW5mbwEHYXNzZXRJZAQHbmZ0RGF0YQkAtQkCCQEMZ2V0QXJ0U3RyQnlLAQkBCmtleU5GVERhdGEBBQdhc3NldElkAgFfBAlhcnRTaWduSUQJAQxnZXRBcnRTdHJCeUsBCQEJa2V5U2lnbklEAgkAkQMCBQduZnREYXRhAAYJAJEDAgUHbmZ0RGF0YQAFAwMJAQEhAQkBDmNoZWNrQXJ0U3RhdHVzAgkAkQMCBQduZnREYXRhAAYJAJEDAgUHbmZ0RGF0YQAFCQEBIQEJARFjaGVja0FydGlzdFN0YXR1cwEJAJEDAgUHbmZ0RGF0YQAGBwkAlgoEBwkAkQMCBQduZnREYXRhAAUJAJEDAgUHbmZ0RGF0YQAGBQlhcnRTaWduSUQJAJYKBAYJAJEDAgUHbmZ0RGF0YQAFCQCRAwIFB25mdERhdGEABgUJYXJ0U2lnbklEAQxzZXRUcmFuc2ZlcnMHBmFtb3VudAdhc3NldElkBW5mdGlkC2NyZWF0b3JBZGRyCXNhbGVPd25lcgZjYWxsZXIFYXJ0SWQECmNyZWF0b3JDdXQJARNnZXRBcnR3b3JrUm95YWx0aWVzAQkBE2tleUFydHdvcmtSb3lhbHRpZXMCBQtjcmVhdG9yQWRkcgUFYXJ0SWQDBgkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkBE2tleUFydHdvcmtSb3lhbHRpZXMCBQtjcmVhdG9yQWRkcgUFbmZ0aWQCAyAvIAkApAMBBQZhbW91bnQCAyAvIAkApAMBBQpjcmVhdG9yQ3V0BAVhZ2VudAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQh1c2VyRGFwcAkBEmtleUFydGlzdEFnZW50QWRkcgEFC2NyZWF0b3JBZGRyBQtmZWVSZWNlaXZlcgQKYWdlbnRTaGFyZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQh1c2VyRGFwcAkBEWtleVNlY29uZGFyeVNoYXJlAQULY3JlYXRvckFkZHIAAAQNYW1vdW50Rm9yU2lnbgkAawMFBmFtb3VudAUHc2lnbkN1dABkBBBhbW91bnRGb3JDcmVhdG9yCQBrAwUGYW1vdW50BQpjcmVhdG9yQ3V0AJBOBA5hbW91bnRGb3JPd25lcgkAZQIFBmFtb3VudAkAZAIFDWFtb3VudEZvclNpZ24FEGFtb3VudEZvckNyZWF0b3IEDmFtb3VudEZvckFnZW50AwMJAQIhPQIFBWFnZW50BQtmZWVSZWNlaXZlcgkAZgIFCmFnZW50U2hhcmUAAAcJAGsDBQZhbW91bnQFCmFnZW50U2hhcmUAZAAABAtjb21taXNzaW9ucwMJAQIhPQIFDmFtb3VudEZvckFnZW50AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFC2ZlZVJlY2VpdmVyCQBlAgUNYW1vdW50Rm9yU2lnbgUOYW1vdW50Rm9yQWdlbnQFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBWFnZW50BQ5hbW91bnRGb3JBZ2VudAUHYXNzZXRJZAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQtmZWVSZWNlaXZlcgUNYW1vdW50Rm9yU2lnbgUHYXNzZXRJZAUDbmlsBApjcmVhdG9yRmVlCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQULY3JlYXRvckFkZHIFEGFtb3VudEZvckNyZWF0b3IFB2Fzc2V0SWQECG93bmVyRmVlCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUJc2FsZU93bmVyBQ5hbW91bnRGb3JPd25lcgUHYXNzZXRJZAQMY29sbGVjdG9yTkZUCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAEJANkEAQUFbmZ0aWQJAJYKBAULY29tbWlzc2lvbnMFCmNyZWF0b3JGZWUFCG93bmVyRmVlBQxjb2xsZWN0b3JORlQBD3ZhbGlkYXRlTWluU2VsbAIHYXNzZXRJZAVwcmljZQQMbWluU2VsbFdhdmVzAwUIdW5pdFRlc3QACgkBE2dldEludEJ5S0Zyb21PcmFjbGUBAg53YXZlc19taW5fc2VsbAQLbWluU2VsbFVzZG4AwIQ9BAttaW5TZWxsU2lnbgMFCHVuaXRUZXN0AAEJAGgCBRljdXJyZW50Q2VydGlmaWNhdGlvblByaWNlAAIDAwMDAwMJAAACBQdhc3NldElkCQDYBAEFC3VzZG5Bc3NldElkCQBmAgULbWluU2VsbFVzZG4FBXByaWNlBwkBAiE9AgUFcHJpY2UAAAcGAwMJAAACBQdhc3NldElkCQDYBAEFC3VzZHRBc3NldElkCQBmAgULbWluU2VsbFVzZG4FBXByaWNlBwkBAiE9AgUFcHJpY2UAAAcGAwMJAAACBQdhc3NldElkCQDYBAEFC3NpZ25Bc3NldElkCQBmAgULbWluU2VsbFNpZ24FBXByaWNlBwkBAiE9AgUFcHJpY2UAAAcGAwMDCQAAAgUHYXNzZXRJZAkA2AQBBQx3YXZlc0Fzc2V0SWQGCQAAAgUHYXNzZXRJZAIFV0FWRVMJAGYCBQxtaW5TZWxsV2F2ZXMFBXByaWNlBwkBAiE9AgUFcHJpY2UAAAcHBgEPcHJvdmlkZUJhc2VEYXRhAgFpBW5mdElkBAskdDA5ODQwOTg4MAkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAULJHQwOTg0MDk4ODACXzEEBmNhbGxlcggFCyR0MDk4NDA5ODgwAl8yBARkYXRlCAULJHQwOTg0MDk4ODACXzMECyR0MDk4ODQ5OTUzCQEMY2hlY2tORlRJbmZvAQUFbmZ0SWQECmlzVmFsaWRORlQIBQskdDA5ODg0OTk1MwJfMQQFYXJ0SWQIBQskdDA5ODg0OTk1MwJfMgQLY3JlYXRvckFkZHIIBQskdDA5ODg0OTk1MwJfMwQJYXJ0U2lnbklECAULJHQwOTg4NDk5NTMCXzQJAJkKBwUCaWQFBmNhbGxlcgUEZGF0ZQUKaXNWYWxpZE5GVAUFYXJ0SWQFC2NyZWF0b3JBZGRyBQlhcnRTaWduSUQBDnVwZGF0ZU51bVNhbGVzAAQIbnVtU2FsZXMJAQlnZXRJbnRCeUsBBQludW1TYWxlc0sJAQxJbnRlZ2VyRW50cnkCBQludW1TYWxlc0sJAGQCBQhudW1TYWxlcwABCQZpbnZva2UBB3NldENvbmYCA2tleQN2YWwEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDCQEIY29udGFpbnMCBQNrZXkCBWNvbmZfCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwJAAIBAiBFbnRyaWVzIHN0YXJ0aW5nIHdpdGggY29uZl8gb25seQkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMGaW52b2tlAQphcHBSdW5uaW5nAgZpc0xpdmUHbWVzc2FnZQQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyBAJpZAkA2AQBCAUGaW52b2tlDXRyYW5zYWN0aW9uSWQDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyCQDMCAIJAQxCb29sZWFuRW50cnkCBQ5kYXBwUnVubmluZ0tleQUGaXNMaXZlCQDMCAIJAQtTdHJpbmdFbnRyeQIFEW1haW50ZW5hbmNlTVNHS2V5BQdtZXNzYWdlBQNuaWwJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzAWkBB3NlbGxORlQCBXByaWNlBWFzc2V0BA0kdDAxMTA1ODExMDk0CQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDExMDU4MTEwOTQCXzEEBmFtb3VudAgFDSR0MDExMDU4MTEwOTQCXzIDCQECIT0CBQZhbW91bnQAAQkAAgECD05vIE5GVCBhdHRhY2hlZAQFbmZ0SWQDAwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJAQxpc1NpZ25BcnRORlQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkBwkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkCQACAQIbT25seSBTSUdOIEFydCBORlQgYWNjZXB0ZWQuBA0kdDAxMTMzMjExNDI1CQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTEzMzIxMTQyNQJfMQQGY2FsbGVyCAUNJHQwMTEzMzIxMTQyNQJfMgQEZGF0ZQgFDSR0MDExMzMyMTE0MjUCXzMECmlzVmFsaWRORlQIBQ0kdDAxMTMzMjExNDI1Al80BAVhcnRJZAgFDSR0MDExMzMyMTE0MjUCXzUEC2NyZWF0b3JBZGRyCAUNJHQwMTEzMzIxMTQyNQJfNgQJYXJ0U2lnbklECAUNJHQwMTEzMzIxMTQyNQJfNwMJAAACCQCxAgEFCWFydFNpZ25JRAAACQACAQIdQXJ0d29yayBub3QgZm91bmQgb24gU0lHTiBBcnQDCQEBIQEFCmlzVmFsaWRORlQJAAIBAg9Ob3QgYSB2YWxpZCBuZnQDCQEBIQEJARBhY2NlcHRlZEFzc2V0SWRzAQUFYXNzZXQJAAIBAidPbmx5IFNJR04sIFVTRE4sIFVTRFQgb3IgV0FWRVMgYWNjZXB0ZWQDCQEBIQEJAQ92YWxpZGF0ZU1pblNlbGwCBQVhc3NldAUFcHJpY2UJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQEKZ2V0U2FsZUtleQQFBmNhbGxlcgUFbmZ0SWQFBWFydElkBQtjcmVhdG9yQWRkcgIFX09QRU4JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUEZGF0ZQIBXwkApAMBBQVwcmljZQIBXwUFYXNzZXQCAV8FBW5mdElkAgFfBQVhcnRJZAIBXwULY3JlYXRvckFkZHICAV8FAmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAIET1BFTgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkBQZjYWxsZXIFA25pbAFpAQ91cGRhdGVTYWxlUHJpY2UDBW5mdElkBXByaWNlBWFzc2V0BA0kdDAxMjMyOTEyNDIyCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTIzMjkxMjQyMgJfMQQGY2FsbGVyCAUNJHQwMTIzMjkxMjQyMgJfMgQEZGF0ZQgFDSR0MDEyMzI5MTI0MjICXzMECmlzVmFsaWRORlQIBQ0kdDAxMjMyOTEyNDIyAl80BAVhcnRJZAgFDSR0MDEyMzI5MTI0MjICXzUEC2NyZWF0b3JBZGRyCAUNJHQwMTIzMjkxMjQyMgJfNgQJYXJ0U2lnbklECAUNJHQwMTIzMjkxMjQyMgJfNwMJAAACCQCxAgEFCWFydFNpZ25JRAAACQACAQIwQXJ0d29yayBub3QgZm91bmQgb24gU0lHTiBBcnQsIGNhbmNlbCB5b3VyIHNhbGUuAwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0BAlzYWxlT3duZXIJAQlnZXRTdHJCeUsBCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkAwkBAiE9AgUJc2FsZU93bmVyBQZjYWxsZXIJAAIBAhZZb3UgZG9uJ3Qgb3duIHRoaXMgTkZUBApzYWxlU3RhdHVzCQEJZ2V0U3RyQnlLAQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQZjYWxsZXICAV8FBW5mdElkAwkBAiE9AgUKc2FsZVN0YXR1cwIET1BFTgkAAgECD1NhbGUgbm90IGFjdGl2ZQMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQVhc3NldAkAAgECJ09ubHkgU0lHTiwgVVNETiwgVVNEVCBvciBXQVZFUyBhY2NlcHRlZAMJAQEhAQkBD3ZhbGlkYXRlTWluU2VsbAIFBWFzc2V0BQVwcmljZQkAAgECGFdyb25nIG1pbmltdW0gc2VsbCBwcmljZQQHc2FsZUtleQkBCmdldFNhbGVLZXkEBQZjYWxsZXIFBW5mdElkBQVhcnRJZAULY3JlYXRvckFkZHIECHNhbGVJbmZvCQC1CQIJAQlnZXRTdHJCeUsBCQCsAgIFB3NhbGVLZXkCBV9PUEVOAgFfCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUHc2FsZUtleQIFX09QRU4JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAJEDAgUIc2FsZUluZm8AAAIBXwkApAMBBQVwcmljZQIBXwUFYXNzZXQCAV8JAJEDAgUIc2FsZUluZm8AAwIBXwkAkQMCBQhzYWxlSW5mbwAEAgFfCQCRAwIFCHNhbGVJbmZvAAUCAV8JAJEDAgUIc2FsZUluZm8ABgUDbmlsAWkBCmNhbmNlbFNhbGUBBW5mdElkBA0kdDAxMzU5OTEzODQzCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTM1OTkxMzg0MwJfMQQGY2FsbGVyCAUNJHQwMTM1OTkxMzg0MwJfMgQEZGF0ZQgFDSR0MDEzNTk5MTM4NDMCXzMECmlzVmFsaWRORlQIBQ0kdDAxMzU5OTEzODQzAl80BAVhcnRJZAgFDSR0MDEzNTk5MTM4NDMCXzUEC2NyZWF0b3JBZGRyCAUNJHQwMTM1OTkxMzg0MwJfNgQJYXJ0U2lnbklECAUNJHQwMTM1OTkxMzg0MwJfNwQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAMJAQIhPQIFCXNhbGVPd25lcgUGY2FsbGVyCQACAQIWWW91IGRvbid0IG93biB0aGlzIE5GVAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAg9TYWxlIG5vdCBhY3RpdmUEB3NhbGVLZXkJAQpnZXRTYWxlS2V5BAUGY2FsbGVyBQVuZnRJZAUFYXJ0SWQFC2NyZWF0b3JBZGRyBAhzYWxlSW5mbwkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQdzYWxlS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FBmNhbGxlcgIBXwUFbmZ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQdzYWxlS2V5AgFfBQJpZAIKX0NBTkNFTExFRAkArAICCQCsAgIJAKwCAgkArAICBQhzYWxlSW5mbwILX0NBTkNFTExFRF8JAKQDAQUEZGF0ZQIBXwUCaWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCQDZBAEFBW5mdElkBQNuaWwBaQEGYnV5TkZUAQVuZnRJZAQNJHQwMTQ2OTcxNDc5MAkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFDSR0MDE0Njk3MTQ3OTACXzEEBmNhbGxlcggFDSR0MDE0Njk3MTQ3OTACXzIEBGRhdGUIBQ0kdDAxNDY5NzE0NzkwAl8zBAppc1ZhbGlkTkZUCAUNJHQwMTQ2OTcxNDc5MAJfNAQFYXJ0SWQIBQ0kdDAxNDY5NzE0NzkwAl81BAtjcmVhdG9yQWRkcggFDSR0MDE0Njk3MTQ3OTACXzYECWFydFNpZ25JRAgFDSR0MDE0Njk3MTQ3OTACXzcDCQAAAgkAsQIBBQlhcnRTaWduSUQAAAkAAgECMEFydHdvcmsgbm90IGZvdW5kIG9uIFNJR04gQXJ0LCBjYW5jZWwgeW91ciBzYWxlLgMJAQEhAQUKaXNWYWxpZE5GVAkAAgECD05vdCBhIHZhbGlkIG5mdAQJc2FsZU93bmVyCQEVZ2V0U2FsZU93bmVyQW5kU3RhdHVzAQUFbmZ0SWQEB3NhbGVLZXkJAQpnZXRTYWxlS2V5BAUJc2FsZU93bmVyBQVuZnRJZAUFYXJ0SWQFC2NyZWF0b3JBZGRyBAhzYWxlSW5mbwkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4DCQAAAgkAsQIBBQhzYWxlSW5mbwAACQACAQIPU2FsZSBOb3QgZm91bmQhBA1zYWxlSW5mb0FycmF5CQC1CQIFCHNhbGVJbmZvAgFfAwkAAAIJALYJAQkAkQMCBQ1zYWxlSW5mb0FycmF5AAEAAAkAAgECCk9mZmVyIG9ubHkEDSR0MDE1Mjk5MTUzMzUJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAUNJHQwMTUyOTkxNTMzNQJfMQQGYW1vdW50CAUNJHQwMTUyOTkxNTMzNQJfMgQPcGF5bWVudEFzc2V0U3RyAwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAIAAwMJAQIhPQIJAJEDAgUNc2FsZUluZm9BcnJheQABCQCkAwEFBmFtb3VudAYJAQIhPQIJAJEDAgUNc2FsZUluZm9BcnJheQACBQ9wYXltZW50QXNzZXRTdHIJAAIBAhpQYXltZW50IGluZm9zIGRvbid0IG1hdGNoLgQNJHQwMTU4NDkxNTk4OAkBDHNldFRyYW5zZmVycwcFBmFtb3VudAgFB3BheW1lbnQHYXNzZXRJZAUFbmZ0SWQFC2NyZWF0b3JBZGRyBQlzYWxlT3duZXIFBmNhbGxlcgUFYXJ0SWQEC2NvbW1pc3Npb25zCAUNJHQwMTU4NDkxNTk4OAJfMQQKY3JlYXRvckZlZQgFDSR0MDE1ODQ5MTU5ODgCXzIECG93bmVyRmVlCAUNJHQwMTU4NDkxNTk4OAJfMwQMY29sbGVjdG9yTkZUCAUNJHQwMTU4NDkxNTk4OAJfNAkAzggCCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQlzYWxlT3duZXICAV8FBW5mdElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHc2FsZUtleQIBXwUCaWQCB19DTE9TRUQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAghfQ0xPU0VEXwkApAMBBQRkYXRlAgFfBQJpZAIBXwUGY2FsbGVyCQDMCAIJAQ51cGRhdGVOdW1TYWxlcwAJAMwIAgUKY3JlYXRvckZlZQkAzAgCBQhvd25lckZlZQkAzAgCBQxjb2xsZWN0b3JORlQFA25pbAULY29tbWlzc2lvbnMBaQEIc2V0T2ZmZXIBBW5mdElkBA0kdDAxNjQxNjE2NTEzCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTY0MTYxNjUxMwJfMQQKb2ZmZXJPd25lcggFDSR0MDE2NDE2MTY1MTMCXzIEBGRhdGUIBQ0kdDAxNjQxNjE2NTEzAl8zBAppc1ZhbGlkTkZUCAUNJHQwMTY0MTYxNjUxMwJfNAQFYXJ0SWQIBQ0kdDAxNjQxNjE2NTEzAl81BAtjcmVhdG9yQWRkcggFDSR0MDE2NDE2MTY1MTMCXzYECWFydFNpZ25JRAgFDSR0MDE2NDE2MTY1MTMCXzcDCQEBIQEFCmlzVmFsaWRORlQJAAIBAg9Ob3QgYSB2YWxpZCBuZnQEDSR0MDE2NTc3MTY2MTMJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAUNJHQwMTY1NzcxNjYxMwJfMQQGYW1vdW50CAUNJHQwMTY1NzcxNjYxMwJfMgQHYXNzZXRJZAMJAQEhAQkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQDCQEBIQEJARBhY2NlcHRlZEFzc2V0SWRzAQUHYXNzZXRJZAkAAgECEmFzc2V0IG5vdCBhY2NlcHRlZAMJAAACBQZhbW91bnQAAAkAAgECFk9mZmVyIG9mIDAgbm90IGFsbG93ZWQDCQEBIQEJAQ92YWxpZGF0ZU1pblNlbGwCBQdhc3NldElkBQZhbW91bnQJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UECXNhbGVPd25lcgkBFWdldFNhbGVPd25lckFuZFN0YXR1cwEFBW5mdElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkBCWdldEJpZEtleQQFCm9mZmVyT3duZXIFBW5mdElkBQlzYWxlT3duZXIFAmlkAgVfT1BFTgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUEZGF0ZQIBXwkApAMBBQZhbW91bnQCAV8FB2Fzc2V0SWQCAV8FBW5mdElkAgFfBQVhcnRJZAIBXwULY3JlYXRvckFkZHICAV8FCm9mZmVyT3duZXICAV8FAmlkBQNuaWwBaQELYWNjZXB0T2ZmZXIDBW5mdElkB29mZmVySWQKb2ZmZXJPd25lcgQNJHQwMTc0MzQxNzUyNwkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFDSR0MDE3NDM0MTc1MjcCXzEEBmNhbGxlcggFDSR0MDE3NDM0MTc1MjcCXzIEBGRhdGUIBQ0kdDAxNzQzNDE3NTI3Al8zBAppc1ZhbGlkTkZUCAUNJHQwMTc0MzQxNzUyNwJfNAQFYXJ0SWQIBQ0kdDAxNzQzNDE3NTI3Al81BAtjcmVhdG9yQWRkcggFDSR0MDE3NDM0MTc1MjcCXzYECWFydFNpZ25JRAgFDSR0MDE3NDM0MTc1MjcCXzcDCQEBIQEFCmlzVmFsaWRORlQJAAIBAg9Ob3QgYSB2YWxpZCBuZnQECXNhbGVPd25lcgkBFWdldFNhbGVPd25lckFuZFN0YXR1cwEFBW5mdElkAwkBAiE9AgUGY2FsbGVyBQlzYWxlT3duZXIJAAIBAiBPbmx5IHNhbGUgb3duZXIgY2FuIGFjY2VwdCBvZmZlcgQGYmlkS2V5CQEJZ2V0QmlkS2V5BAUKb2ZmZXJPd25lcgUFbmZ0SWQFCXNhbGVPd25lcgUHb2ZmZXJJZAQNJHQwMTc3ODgxNzg0MwkBCmdldEJpZERhdGEBBQZiaWRLZXkECmJpZERhdGFBcnIIBQ0kdDAxNzc4ODE3ODQzAl8xBAdhc3NldElkCAUNJHQwMTc3ODgxNzg0MwJfMgQHYmlkRGF0YQgFDSR0MDE3Nzg4MTc4NDMCXzMEB3NhbGVLZXkJAQpnZXRTYWxlS2V5BAUJc2FsZU93bmVyBQVuZnRJZAUFYXJ0SWQFC2NyZWF0b3JBZGRyBAhzYWxlSW5mbwkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4DCQAAAgkAsQIBBQhzYWxlSW5mbwAACQACAQIPU2FsZSBOb3QgZm91bmQhBAZhbW91bnQJAQV2YWx1ZQEJALYJAQkAkQMCBQpiaWREYXRhQXJyAAEEDSR0MDE4MDg2MTgyMjQJAQxzZXRUcmFuc2ZlcnMHBQZhbW91bnQFB2Fzc2V0SWQFBW5mdElkBQtjcmVhdG9yQWRkcgUJc2FsZU93bmVyCQCRAwIFCmJpZERhdGFBcnIABgUFYXJ0SWQEC2NvbW1pc3Npb25zCAUNJHQwMTgwODYxODIyNAJfMQQKY3JlYXRvckZlZQgFDSR0MDE4MDg2MTgyMjQCXzIECG93bmVyRmVlCAUNJHQwMTgwODYxODIyNAJfMwQMY29sbGVjdG9yTkZUCAUNJHQwMTgwODYxODIyNAJfNAQKYXNzZXRJZFN0cgMJAQlpc0RlZmluZWQBBQdhc3NldElkCQDYBAEJAQV2YWx1ZQEFB2Fzc2V0SWQCBVdBVkVTCQDOCAIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQdzYWxlS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFBmJpZEtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQlzYWxlT3duZXICAV8FBW5mdElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQZiaWRLZXkCB19DTE9TRUQJAKwCAgkArAICCQCsAgIJAKwCAgUHYmlkRGF0YQIIX0NMT1NFRF8JAKQDAQUEZGF0ZQIBXwUCaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHc2FsZUtleQIBXwUCaWQCB19DTE9TRUQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUIc2FsZUluZm8CDl9DTE9TRUQtT0ZGRVJfCQCkAwEFBGRhdGUCAV8FAmlkAgFfBQpvZmZlck93bmVyAgFfCQCkAwEFBmFtb3VudAIBXwUKYXNzZXRJZFN0cgkAzAgCCQEOdXBkYXRlTnVtU2FsZXMACQDMCAIFCmNyZWF0b3JGZWUJAMwIAgUIb3duZXJGZWUJAMwIAgUMY29sbGVjdG9yTkZUBQNuaWwFC2NvbW1pc3Npb25zAWkBC2NhbmNlbE9mZmVyBAVuZnRJZAdvZmZlcklkCm9mZmVyT3duZXIJc2FsZU93bmVyBA0kdDAxOTA0NDE5MTE5CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAxOTA0NDE5MTE5Al8xBAZjYWxsZXIIBQ0kdDAxOTA0NDE5MTE5Al8yBARkYXRlCAUNJHQwMTkwNDQxOTExOQJfMwMDCQECIT0CBQZjYWxsZXIFCm9mZmVyT3duZXIJAQIhPQIFBmNhbGxlcgUJc2FsZU93bmVyBwkAAgECHVlvdSBjYW5ub3QgY2FuY2VsIHRoaXMgb2ZmZXIuBAZiaWRLZXkJAQlnZXRCaWRLZXkEBQpvZmZlck93bmVyBQVuZnRJZAUJc2FsZU93bmVyBQdvZmZlcklkBA0kdDAxOTI5MzE5MzQ4CQEKZ2V0QmlkRGF0YQEFBmJpZEtleQQKYmlkRGF0YUFycggFDSR0MDE5MjkzMTkzNDgCXzEEB2Fzc2V0SWQIBQ0kdDAxOTI5MzE5MzQ4Al8yBAdiaWREYXRhCAUNJHQwMTkyOTMxOTM0OAJfMwkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFBmJpZEtleQIFX09QRU4JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQZiaWRLZXkCCl9DQU5DRUxMRUQJAKwCAgkArAICCQCsAgIJAKwCAgUHYmlkRGF0YQILX0NBTkNFTExFRF8JAKQDAQUEZGF0ZQIBXwUCaWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCmJpZERhdGFBcnIAAQUHYXNzZXRJZAUDbmlsAJLc8xI=", "height": 2339356, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FTDLWBgCoFTywtZZzEWhQ9qDfbLsKJVEVZEu7s7kXGJx Next: 9wZRxJJs8sKk8MtLPUGqNTbW3aVKVzGecNjXqkPMqECN Diff:
OldNewDifferences
194194 }
195195
196196
197-func setTransfers (amount,assetId,nftid,creatorAddr,saleOwner,caller) = {
198- let creatorCut = getArtworkRoyalties(keyArtworkRoyalties(creatorAddr, nftid))
197+func setTransfers (amount,assetId,nftid,creatorAddr,saleOwner,caller,artId) = {
198+ let creatorCut = getArtworkRoyalties(keyArtworkRoyalties(creatorAddr, artId))
199199 if (true)
200200 then throw(((((keyArtworkRoyalties(creatorAddr, nftid) + " / ") + toString(amount)) + " / ") + toString(creatorCut)))
201201 else {
259259
260260
261261 func provideBaseData (i,nftId) = {
262- let $t098259865 = idCallerDate(i)
263- let id = $t098259865._1
264- let caller = $t098259865._2
265- let date = $t098259865._3
266- let $t098699938 = checkNFTInfo(nftId)
267- let isValidNFT = $t098699938._1
268- let artId = $t098699938._2
269- let creatorAddr = $t098699938._3
270- let artSignID = $t098699938._4
262+ let $t098409880 = idCallerDate(i)
263+ let id = $t098409880._1
264+ let caller = $t098409880._2
265+ let date = $t098409880._3
266+ let $t098849953 = checkNFTInfo(nftId)
267+ let isValidNFT = $t098849953._1
268+ let artId = $t098849953._2
269+ let creatorAddr = $t098849953._3
270+ let artSignID = $t098849953._4
271271 $Tuple7(id, caller, date, isValidNFT, artId, creatorAddr, artSignID)
272272 }
273273
303303
304304 @Callable(i)
305305 func sellNFT (price,asset) = {
306- let $t01104311079 = isPayment(i)
307- let payment = $t01104311079._1
308- let amount = $t01104311079._2
306+ let $t01105811094 = isPayment(i)
307+ let payment = $t01105811094._1
308+ let amount = $t01105811094._2
309309 if ((amount != 1))
310310 then throw("No NFT attached")
311311 else {
314314 else false)
315315 then toBase58String(value(payment.assetId))
316316 else throw("Only SIGN Art NFT accepted.")
317- let $t01131711410 = provideBaseData(i, nftId)
318- let id = $t01131711410._1
319- let caller = $t01131711410._2
320- let date = $t01131711410._3
321- let isValidNFT = $t01131711410._4
322- let artId = $t01131711410._5
323- let creatorAddr = $t01131711410._6
324- let artSignID = $t01131711410._7
317+ let $t01133211425 = provideBaseData(i, nftId)
318+ let id = $t01133211425._1
319+ let caller = $t01133211425._2
320+ let date = $t01133211425._3
321+ let isValidNFT = $t01133211425._4
322+ let artId = $t01133211425._5
323+ let creatorAddr = $t01133211425._6
324+ let artSignID = $t01133211425._7
325325 if ((size(artSignID) == 0))
326326 then throw("Artwork not found on SIGN Art")
327327 else if (!(isValidNFT))
338338
339339 @Callable(i)
340340 func updateSalePrice (nftId,price,asset) = {
341- let $t01231412407 = provideBaseData(i, nftId)
342- let id = $t01231412407._1
343- let caller = $t01231412407._2
344- let date = $t01231412407._3
345- let isValidNFT = $t01231412407._4
346- let artId = $t01231412407._5
347- let creatorAddr = $t01231412407._6
348- let artSignID = $t01231412407._7
341+ let $t01232912422 = provideBaseData(i, nftId)
342+ let id = $t01232912422._1
343+ let caller = $t01232912422._2
344+ let date = $t01232912422._3
345+ let isValidNFT = $t01232912422._4
346+ let artId = $t01232912422._5
347+ let creatorAddr = $t01232912422._6
348+ let artSignID = $t01232912422._7
349349 if ((size(artSignID) == 0))
350350 then throw("Artwork not found on SIGN Art, cancel your sale.")
351351 else if (!(isValidNFT))
375375
376376 @Callable(i)
377377 func cancelSale (nftId) = {
378- let $t01358413828 = provideBaseData(i, nftId)
379- let id = $t01358413828._1
380- let caller = $t01358413828._2
381- let date = $t01358413828._3
382- let isValidNFT = $t01358413828._4
383- let artId = $t01358413828._5
384- let creatorAddr = $t01358413828._6
385- let artSignID = $t01358413828._7
378+ let $t01359913843 = provideBaseData(i, nftId)
379+ let id = $t01359913843._1
380+ let caller = $t01359913843._2
381+ let date = $t01359913843._3
382+ let isValidNFT = $t01359913843._4
383+ let artId = $t01359913843._5
384+ let creatorAddr = $t01359913843._6
385+ let artSignID = $t01359913843._7
386386 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
387387 if ((saleOwner != caller))
388388 then throw("You don't own this NFT")
402402
403403 @Callable(i)
404404 func buyNFT (nftId) = {
405- let $t01468214775 = provideBaseData(i, nftId)
406- let id = $t01468214775._1
407- let caller = $t01468214775._2
408- let date = $t01468214775._3
409- let isValidNFT = $t01468214775._4
410- let artId = $t01468214775._5
411- let creatorAddr = $t01468214775._6
412- let artSignID = $t01468214775._7
405+ let $t01469714790 = provideBaseData(i, nftId)
406+ let id = $t01469714790._1
407+ let caller = $t01469714790._2
408+ let date = $t01469714790._3
409+ let isValidNFT = $t01469714790._4
410+ let artId = $t01469714790._5
411+ let creatorAddr = $t01469714790._6
412+ let artSignID = $t01469714790._7
413413 if ((size(artSignID) == 0))
414414 then throw("Artwork not found on SIGN Art, cancel your sale.")
415415 else if (!(isValidNFT))
425425 if ((parseInt(saleInfoArray[1]) == 0))
426426 then throw("Offer only")
427427 else {
428- let $t01528415320 = isPayment(i)
429- let payment = $t01528415320._1
430- let amount = $t01528415320._2
428+ let $t01529915335 = isPayment(i)
429+ let payment = $t01529915335._1
430+ let amount = $t01529915335._2
431431 let paymentAssetStr = if (isDefined(payment.assetId))
432432 then toBase58String(value(payment.assetId))
433433 else ""
436436 else (saleInfoArray[2] != paymentAssetStr))
437437 then throw("Payment infos don't match.")
438438 else {
439- let $t01583415966 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
440- let commissions = $t01583415966._1
441- let creatorFee = $t01583415966._2
442- let ownerFee = $t01583415966._3
443- let collectorNFT = $t01583415966._4
439+ let $t01584915988 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller, artId)
440+ let commissions = $t01584915988._1
441+ let creatorFee = $t01584915988._2
442+ let ownerFee = $t01584915988._3
443+ let collectorNFT = $t01584915988._4
444444 ([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)
445445 }
446446 }
452452
453453 @Callable(i)
454454 func setOffer (nftId) = {
455- let $t01639416491 = provideBaseData(i, nftId)
456- let id = $t01639416491._1
457- let offerOwner = $t01639416491._2
458- let date = $t01639416491._3
459- let isValidNFT = $t01639416491._4
460- let artId = $t01639416491._5
461- let creatorAddr = $t01639416491._6
462- let artSignID = $t01639416491._7
455+ let $t01641616513 = provideBaseData(i, nftId)
456+ let id = $t01641616513._1
457+ let offerOwner = $t01641616513._2
458+ let date = $t01641616513._3
459+ let isValidNFT = $t01641616513._4
460+ let artId = $t01641616513._5
461+ let creatorAddr = $t01641616513._6
462+ let artSignID = $t01641616513._7
463463 if (!(isValidNFT))
464464 then throw("Not a valid nft")
465465 else {
466- let $t01655516591 = isPayment(i)
467- let payment = $t01655516591._1
468- let amount = $t01655516591._2
466+ let $t01657716613 = isPayment(i)
467+ let payment = $t01657716613._1
468+ let amount = $t01657716613._2
469469 let assetId = if (!(isDefined(payment.assetId)))
470470 then "WAVES"
471471 else toBase58String(value(payment.assetId))
486486
487487 @Callable(i)
488488 func acceptOffer (nftId,offerId,offerOwner) = {
489- let $t01741217505 = provideBaseData(i, nftId)
490- let id = $t01741217505._1
491- let caller = $t01741217505._2
492- let date = $t01741217505._3
493- let isValidNFT = $t01741217505._4
494- let artId = $t01741217505._5
495- let creatorAddr = $t01741217505._6
496- let artSignID = $t01741217505._7
489+ let $t01743417527 = provideBaseData(i, nftId)
490+ let id = $t01743417527._1
491+ let caller = $t01743417527._2
492+ let date = $t01743417527._3
493+ let isValidNFT = $t01743417527._4
494+ let artId = $t01743417527._5
495+ let creatorAddr = $t01743417527._6
496+ let artSignID = $t01743417527._7
497497 if (!(isValidNFT))
498498 then throw("Not a valid nft")
499499 else {
502502 then throw("Only sale owner can accept offer")
503503 else {
504504 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
505- let $t01776617821 = getBidData(bidKey)
506- let bidDataArr = $t01776617821._1
507- let assetId = $t01776617821._2
508- let bidData = $t01776617821._3
505+ let $t01778817843 = getBidData(bidKey)
506+ let bidDataArr = $t01778817843._1
507+ let assetId = $t01778817843._2
508+ let bidData = $t01778817843._3
509509 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
510510 let saleInfo = getStrByK((saleKey + "_OPEN"))
511511 if ((size(saleInfo) == 0))
512512 then throw("Sale Not found!")
513513 else {
514514 let amount = value(parseInt(bidDataArr[1]))
515- let $t01806418195 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
516- let commissions = $t01806418195._1
517- let creatorFee = $t01806418195._2
518- let ownerFee = $t01806418195._3
519- let collectorNFT = $t01806418195._4
515+ let $t01808618224 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6], artId)
516+ let commissions = $t01808618224._1
517+ let creatorFee = $t01808618224._2
518+ let ownerFee = $t01808618224._3
519+ let collectorNFT = $t01808618224._4
520520 let assetIdStr = if (isDefined(assetId))
521521 then toBase58String(value(assetId))
522522 else "WAVES"
530530
531531 @Callable(i)
532532 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
533- let $t01901519090 = idCallerDate(i)
534- let id = $t01901519090._1
535- let caller = $t01901519090._2
536- let date = $t01901519090._3
533+ let $t01904419119 = idCallerDate(i)
534+ let id = $t01904419119._1
535+ let caller = $t01904419119._2
536+ let date = $t01904419119._3
537537 if (if ((caller != offerOwner))
538538 then (caller != saleOwner)
539539 else false)
540540 then throw("You cannot cancel this offer.")
541541 else {
542542 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
543- let $t01926419319 = getBidData(bidKey)
544- let bidDataArr = $t01926419319._1
545- let assetId = $t01926419319._2
546- let bidData = $t01926419319._3
543+ let $t01929319348 = getBidData(bidKey)
544+ let bidDataArr = $t01929319348._1
545+ let assetId = $t01929319348._2
546+ let bidData = $t01929319348._3
547547 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
548548 }
549549 }
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
5252 func getArtworkRoyalties (key) = valueOrElse(getInteger(artworksDapp, 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 keyArtworkRoyalties (caller,artId) = ((("art_royalties_" + artId) + "_") + caller)
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
197-func setTransfers (amount,assetId,nftid,creatorAddr,saleOwner,caller) = {
198- let creatorCut = getArtworkRoyalties(keyArtworkRoyalties(creatorAddr, nftid))
197+func setTransfers (amount,assetId,nftid,creatorAddr,saleOwner,caller,artId) = {
198+ let creatorCut = getArtworkRoyalties(keyArtworkRoyalties(creatorAddr, artId))
199199 if (true)
200200 then throw(((((keyArtworkRoyalties(creatorAddr, nftid) + " / ") + toString(amount)) + " / ") + toString(creatorCut)))
201201 else {
202202 let agent = valueOrElse(getString(userDapp, keyArtistAgentAddr(creatorAddr)), feeReceiver)
203203 let agentShare = valueOrElse(getInteger(userDapp, keySecondaryShare(creatorAddr)), 0)
204204 let amountForSign = fraction(amount, signCut, 100)
205205 let amountForCreator = fraction(amount, creatorCut, 10000)
206206 let amountForOwner = (amount - (amountForSign + amountForCreator))
207207 let amountForAgent = if (if ((agent != feeReceiver))
208208 then (agentShare > 0)
209209 else false)
210210 then fraction(amount, agentShare, 100)
211211 else 0
212212 let commissions = if ((amountForAgent != 0))
213213 then [ScriptTransfer(Address(fromBase58String(feeReceiver)), (amountForSign - amountForAgent), assetId), ScriptTransfer(Address(fromBase58String(agent)), amountForAgent, assetId)]
214214 else [ScriptTransfer(Address(fromBase58String(feeReceiver)), amountForSign, assetId)]
215215 let creatorFee = ScriptTransfer(Address(fromBase58String(creatorAddr)), amountForCreator, assetId)
216216 let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
217217 let collectorNFT = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))
218218 $Tuple4(commissions, creatorFee, ownerFee, collectorNFT)
219219 }
220220 }
221221
222222
223223 func validateMinSell (assetId,price) = {
224224 let minSellWaves = if (unitTest)
225225 then 10
226226 else getIntByKFromOracle("waves_min_sell")
227227 let minSellUsdn = 1000000
228228 let minSellSign = if (unitTest)
229229 then 1
230230 else (currentCertificationPrice * 2)
231231 if (if (if (if (if (if ((assetId == toBase58String(usdnAssetId)))
232232 then (minSellUsdn > price)
233233 else false)
234234 then (price != 0)
235235 else false)
236236 then true
237237 else if (if ((assetId == toBase58String(usdtAssetId)))
238238 then (minSellUsdn > price)
239239 else false)
240240 then (price != 0)
241241 else false)
242242 then true
243243 else if (if ((assetId == toBase58String(signAssetId)))
244244 then (minSellSign > price)
245245 else false)
246246 then (price != 0)
247247 else false)
248248 then true
249249 else if (if (if ((assetId == toBase58String(wavesAssetId)))
250250 then true
251251 else (assetId == "WAVES"))
252252 then (minSellWaves > price)
253253 else false)
254254 then (price != 0)
255255 else false)
256256 then false
257257 else true
258258 }
259259
260260
261261 func provideBaseData (i,nftId) = {
262- let $t098259865 = idCallerDate(i)
263- let id = $t098259865._1
264- let caller = $t098259865._2
265- let date = $t098259865._3
266- let $t098699938 = checkNFTInfo(nftId)
267- let isValidNFT = $t098699938._1
268- let artId = $t098699938._2
269- let creatorAddr = $t098699938._3
270- let artSignID = $t098699938._4
262+ let $t098409880 = idCallerDate(i)
263+ let id = $t098409880._1
264+ let caller = $t098409880._2
265+ let date = $t098409880._3
266+ let $t098849953 = checkNFTInfo(nftId)
267+ let isValidNFT = $t098849953._1
268+ let artId = $t098849953._2
269+ let creatorAddr = $t098849953._3
270+ let artSignID = $t098849953._4
271271 $Tuple7(id, caller, date, isValidNFT, artId, creatorAddr, artSignID)
272272 }
273273
274274
275275 func updateNumSales () = {
276276 let numSales = getIntByK(numSalesK)
277277 IntegerEntry(numSalesK, (numSales + 1))
278278 }
279279
280280
281281 @Callable(invoke)
282282 func setConf (key,val) = {
283283 let caller = toString(invoke.caller)
284284 if (containsElement([chris, toString(this)], caller))
285285 then if (contains(key, "conf_"))
286286 then [StringEntry(key, val)]
287287 else throw("Entries starting with conf_ only")
288288 else throw("You are not allowed to change this")
289289 }
290290
291291
292292
293293 @Callable(invoke)
294294 func appRunning (isLive,message) = {
295295 let caller = toString(invoke.caller)
296296 let id = toBase58String(invoke.transactionId)
297297 if (containsElement([chris, toString(this)], caller))
298298 then [BooleanEntry(dappRunningKey, isLive), StringEntry(maintenanceMSGKey, message)]
299299 else throw("You are not allowed to change this")
300300 }
301301
302302
303303
304304 @Callable(i)
305305 func sellNFT (price,asset) = {
306- let $t01104311079 = isPayment(i)
307- let payment = $t01104311079._1
308- let amount = $t01104311079._2
306+ let $t01105811094 = isPayment(i)
307+ let payment = $t01105811094._1
308+ let amount = $t01105811094._2
309309 if ((amount != 1))
310310 then throw("No NFT attached")
311311 else {
312312 let nftId = if (if (isDefined(payment.assetId))
313313 then isSignArtNFT(value(payment.assetId))
314314 else false)
315315 then toBase58String(value(payment.assetId))
316316 else throw("Only SIGN Art NFT accepted.")
317- let $t01131711410 = provideBaseData(i, nftId)
318- let id = $t01131711410._1
319- let caller = $t01131711410._2
320- let date = $t01131711410._3
321- let isValidNFT = $t01131711410._4
322- let artId = $t01131711410._5
323- let creatorAddr = $t01131711410._6
324- let artSignID = $t01131711410._7
317+ let $t01133211425 = provideBaseData(i, nftId)
318+ let id = $t01133211425._1
319+ let caller = $t01133211425._2
320+ let date = $t01133211425._3
321+ let isValidNFT = $t01133211425._4
322+ let artId = $t01133211425._5
323+ let creatorAddr = $t01133211425._6
324+ let artSignID = $t01133211425._7
325325 if ((size(artSignID) == 0))
326326 then throw("Artwork not found on SIGN Art")
327327 else if (!(isValidNFT))
328328 then throw("Not a valid nft")
329329 else if (!(acceptedAssetIds(asset)))
330330 then throw("Only SIGN, USDN, USDT or WAVES accepted")
331331 else if (!(validateMinSell(asset, price)))
332332 then throw("Wrong minimum sell price")
333333 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)]
334334 }
335335 }
336336
337337
338338
339339 @Callable(i)
340340 func updateSalePrice (nftId,price,asset) = {
341- let $t01231412407 = provideBaseData(i, nftId)
342- let id = $t01231412407._1
343- let caller = $t01231412407._2
344- let date = $t01231412407._3
345- let isValidNFT = $t01231412407._4
346- let artId = $t01231412407._5
347- let creatorAddr = $t01231412407._6
348- let artSignID = $t01231412407._7
341+ let $t01232912422 = provideBaseData(i, nftId)
342+ let id = $t01232912422._1
343+ let caller = $t01232912422._2
344+ let date = $t01232912422._3
345+ let isValidNFT = $t01232912422._4
346+ let artId = $t01232912422._5
347+ let creatorAddr = $t01232912422._6
348+ let artSignID = $t01232912422._7
349349 if ((size(artSignID) == 0))
350350 then throw("Artwork not found on SIGN Art, cancel your sale.")
351351 else if (!(isValidNFT))
352352 then throw("Not a valid nft")
353353 else {
354354 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
355355 if ((saleOwner != caller))
356356 then throw("You don't own this NFT")
357357 else {
358358 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
359359 if ((saleStatus != "OPEN"))
360360 then throw("Sale not active")
361361 else if (!(acceptedAssetIds(asset)))
362362 then throw("Only SIGN, USDN, USDT or WAVES accepted")
363363 else if (!(validateMinSell(asset, price)))
364364 then throw("Wrong minimum sell price")
365365 else {
366366 let saleKey = getSaleKey(caller, nftId, artId, creatorAddr)
367367 let saleInfo = split(getStrByK((saleKey + "_OPEN")), "_")
368368 [StringEntry((saleKey + "_OPEN"), ((((((((((((saleInfo[0] + "_") + toString(price)) + "_") + asset) + "_") + saleInfo[3]) + "_") + saleInfo[4]) + "_") + saleInfo[5]) + "_") + saleInfo[6]))]
369369 }
370370 }
371371 }
372372 }
373373
374374
375375
376376 @Callable(i)
377377 func cancelSale (nftId) = {
378- let $t01358413828 = provideBaseData(i, nftId)
379- let id = $t01358413828._1
380- let caller = $t01358413828._2
381- let date = $t01358413828._3
382- let isValidNFT = $t01358413828._4
383- let artId = $t01358413828._5
384- let creatorAddr = $t01358413828._6
385- let artSignID = $t01358413828._7
378+ let $t01359913843 = provideBaseData(i, nftId)
379+ let id = $t01359913843._1
380+ let caller = $t01359913843._2
381+ let date = $t01359913843._3
382+ let isValidNFT = $t01359913843._4
383+ let artId = $t01359913843._5
384+ let creatorAddr = $t01359913843._6
385+ let artSignID = $t01359913843._7
386386 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
387387 if ((saleOwner != caller))
388388 then throw("You don't own this NFT")
389389 else {
390390 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
391391 if ((saleStatus != "OPEN"))
392392 then throw("Sale not active")
393393 else {
394394 let saleKey = getSaleKey(caller, nftId, artId, creatorAddr)
395395 let saleInfo = getStrByK((saleKey + "_OPEN"))
396396 [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))]
397397 }
398398 }
399399 }
400400
401401
402402
403403 @Callable(i)
404404 func buyNFT (nftId) = {
405- let $t01468214775 = provideBaseData(i, nftId)
406- let id = $t01468214775._1
407- let caller = $t01468214775._2
408- let date = $t01468214775._3
409- let isValidNFT = $t01468214775._4
410- let artId = $t01468214775._5
411- let creatorAddr = $t01468214775._6
412- let artSignID = $t01468214775._7
405+ let $t01469714790 = provideBaseData(i, nftId)
406+ let id = $t01469714790._1
407+ let caller = $t01469714790._2
408+ let date = $t01469714790._3
409+ let isValidNFT = $t01469714790._4
410+ let artId = $t01469714790._5
411+ let creatorAddr = $t01469714790._6
412+ let artSignID = $t01469714790._7
413413 if ((size(artSignID) == 0))
414414 then throw("Artwork not found on SIGN Art, cancel your sale.")
415415 else if (!(isValidNFT))
416416 then throw("Not a valid nft")
417417 else {
418418 let saleOwner = getSaleOwnerAndStatus(nftId)
419419 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
420420 let saleInfo = getStrByK((saleKey + "_OPEN"))
421421 if ((size(saleInfo) == 0))
422422 then throw("Sale Not found!")
423423 else {
424424 let saleInfoArray = split(saleInfo, "_")
425425 if ((parseInt(saleInfoArray[1]) == 0))
426426 then throw("Offer only")
427427 else {
428- let $t01528415320 = isPayment(i)
429- let payment = $t01528415320._1
430- let amount = $t01528415320._2
428+ let $t01529915335 = isPayment(i)
429+ let payment = $t01529915335._1
430+ let amount = $t01529915335._2
431431 let paymentAssetStr = if (isDefined(payment.assetId))
432432 then toBase58String(value(payment.assetId))
433433 else ""
434434 if (if ((saleInfoArray[1] != toString(amount)))
435435 then true
436436 else (saleInfoArray[2] != paymentAssetStr))
437437 then throw("Payment infos don't match.")
438438 else {
439- let $t01583415966 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller)
440- let commissions = $t01583415966._1
441- let creatorFee = $t01583415966._2
442- let ownerFee = $t01583415966._3
443- let collectorNFT = $t01583415966._4
439+ let $t01584915988 = setTransfers(amount, payment.assetId, nftId, creatorAddr, saleOwner, caller, artId)
440+ let commissions = $t01584915988._1
441+ let creatorFee = $t01584915988._2
442+ let ownerFee = $t01584915988._3
443+ let collectorNFT = $t01584915988._4
444444 ([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)
445445 }
446446 }
447447 }
448448 }
449449 }
450450
451451
452452
453453 @Callable(i)
454454 func setOffer (nftId) = {
455- let $t01639416491 = provideBaseData(i, nftId)
456- let id = $t01639416491._1
457- let offerOwner = $t01639416491._2
458- let date = $t01639416491._3
459- let isValidNFT = $t01639416491._4
460- let artId = $t01639416491._5
461- let creatorAddr = $t01639416491._6
462- let artSignID = $t01639416491._7
455+ let $t01641616513 = provideBaseData(i, nftId)
456+ let id = $t01641616513._1
457+ let offerOwner = $t01641616513._2
458+ let date = $t01641616513._3
459+ let isValidNFT = $t01641616513._4
460+ let artId = $t01641616513._5
461+ let creatorAddr = $t01641616513._6
462+ let artSignID = $t01641616513._7
463463 if (!(isValidNFT))
464464 then throw("Not a valid nft")
465465 else {
466- let $t01655516591 = isPayment(i)
467- let payment = $t01655516591._1
468- let amount = $t01655516591._2
466+ let $t01657716613 = isPayment(i)
467+ let payment = $t01657716613._1
468+ let amount = $t01657716613._2
469469 let assetId = if (!(isDefined(payment.assetId)))
470470 then "WAVES"
471471 else toBase58String(value(payment.assetId))
472472 if (!(acceptedAssetIds(assetId)))
473473 then throw("asset not accepted")
474474 else if ((amount == 0))
475475 then throw("Offer of 0 not allowed")
476476 else if (!(validateMinSell(assetId, amount)))
477477 then throw("Wrong minimum sell price")
478478 else {
479479 let saleOwner = getSaleOwnerAndStatus(nftId)
480480 [StringEntry((getBidKey(offerOwner, nftId, saleOwner, id) + "_OPEN"), ((((((((((((((toString(date) + "_") + toString(amount)) + "_") + assetId) + "_") + nftId) + "_") + artId) + "_") + creatorAddr) + "_") + offerOwner) + "_") + id))]
481481 }
482482 }
483483 }
484484
485485
486486
487487 @Callable(i)
488488 func acceptOffer (nftId,offerId,offerOwner) = {
489- let $t01741217505 = provideBaseData(i, nftId)
490- let id = $t01741217505._1
491- let caller = $t01741217505._2
492- let date = $t01741217505._3
493- let isValidNFT = $t01741217505._4
494- let artId = $t01741217505._5
495- let creatorAddr = $t01741217505._6
496- let artSignID = $t01741217505._7
489+ let $t01743417527 = provideBaseData(i, nftId)
490+ let id = $t01743417527._1
491+ let caller = $t01743417527._2
492+ let date = $t01743417527._3
493+ let isValidNFT = $t01743417527._4
494+ let artId = $t01743417527._5
495+ let creatorAddr = $t01743417527._6
496+ let artSignID = $t01743417527._7
497497 if (!(isValidNFT))
498498 then throw("Not a valid nft")
499499 else {
500500 let saleOwner = getSaleOwnerAndStatus(nftId)
501501 if ((caller != saleOwner))
502502 then throw("Only sale owner can accept offer")
503503 else {
504504 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
505- let $t01776617821 = getBidData(bidKey)
506- let bidDataArr = $t01776617821._1
507- let assetId = $t01776617821._2
508- let bidData = $t01776617821._3
505+ let $t01778817843 = getBidData(bidKey)
506+ let bidDataArr = $t01778817843._1
507+ let assetId = $t01778817843._2
508+ let bidData = $t01778817843._3
509509 let saleKey = getSaleKey(saleOwner, nftId, artId, creatorAddr)
510510 let saleInfo = getStrByK((saleKey + "_OPEN"))
511511 if ((size(saleInfo) == 0))
512512 then throw("Sale Not found!")
513513 else {
514514 let amount = value(parseInt(bidDataArr[1]))
515- let $t01806418195 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6])
516- let commissions = $t01806418195._1
517- let creatorFee = $t01806418195._2
518- let ownerFee = $t01806418195._3
519- let collectorNFT = $t01806418195._4
515+ let $t01808618224 = setTransfers(amount, assetId, nftId, creatorAddr, saleOwner, bidDataArr[6], artId)
516+ let commissions = $t01808618224._1
517+ let creatorFee = $t01808618224._2
518+ let ownerFee = $t01808618224._3
519+ let collectorNFT = $t01808618224._4
520520 let assetIdStr = if (isDefined(assetId))
521521 then toBase58String(value(assetId))
522522 else "WAVES"
523523 ([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)
524524 }
525525 }
526526 }
527527 }
528528
529529
530530
531531 @Callable(i)
532532 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
533- let $t01901519090 = idCallerDate(i)
534- let id = $t01901519090._1
535- let caller = $t01901519090._2
536- let date = $t01901519090._3
533+ let $t01904419119 = idCallerDate(i)
534+ let id = $t01904419119._1
535+ let caller = $t01904419119._2
536+ let date = $t01904419119._3
537537 if (if ((caller != offerOwner))
538538 then (caller != saleOwner)
539539 else false)
540540 then throw("You cannot cancel this offer.")
541541 else {
542542 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
543- let $t01926419319 = getBidData(bidKey)
544- let bidDataArr = $t01926419319._1
545- let assetId = $t01926419319._2
546- let bidData = $t01926419319._3
543+ let $t01929319348 = getBidData(bidKey)
544+ let bidDataArr = $t01929319348._1
545+ let assetId = $t01929319348._2
546+ let bidData = $t01929319348._3
547547 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
548548 }
549549 }
550550
551551

github/deemru/w8io/169f3d6 
83.09 ms