tx · Fz1ZzMJugmfDpuHVH4HrT4u3xNTCAEYsGafV9CcHhFeH

3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz:  -0.01300000 Waves

2023.11.14 10:58 [2842734] smart account 3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz > SELF 0.00000000 Waves

{ "type": 13, "id": "Fz1ZzMJugmfDpuHVH4HrT4u3xNTCAEYsGafV9CcHhFeH", "fee": 1300000, "feeAssetId": null, "timestamp": 1699948760336, "version": 2, "chainId": 84, "sender": "3N4ishKFoRooDxWoaCWSp3CUEoDmVepA1bz", "senderPublicKey": "9p5EiEVtTgiMBxj67TfVfstKuQs1LHPxoZRiRhyS5oiN", "proofs": [ "5v96j4XtLsfkCEEymi2Nm9rbqZpMYhcTXiS9nNrEShdYaRD6CPEdDpNdxxAjneDovDBrUKKbsXzyMhzVQEYapTQX" ], "script": "base64:BgI5CAISBAoCCAgSBAoCBAgSBAoCAQgSBQoDCAEIEgMKAQgSAwoBCBIDCgEIEgUKAwgICBIGCgQICAgILAAHVkVSU0lPTgIFMS4wLjABCWdldFN0ckJ5SwEDa2V5CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFA2tleQIAAAlvcmFjbGVGZWUJAQV2YWx1ZQEJAKYIAQkBCWdldFN0ckJ5SwECD2NvbmZfb3JhY2xlX2ZlZQALZmVlUmVjZWl2ZXIJAQlnZXRTdHJCeUsBAhFjb25mX2ZlZV9yZWNlaXZlcgAPcHV6emxlX2FydF9wb29sCQEJZ2V0U3RyQnlLAQIUY29uZl9wdXp6bGVfYXJ0X3Bvb2wAEXVzZHRQUEFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIbY29uZl9hY2NlcHRlZF9hc3NldF9VU0RUX1BQAA5hcnRBc3NldElkX3N0cgkBCWdldFN0ckJ5SwECF2NvbmZfYWNjZXB0ZWRfYXNzZXRfQVJUABF1c2RjUFBBc3NldElkX3N0cgkBCWdldFN0ckJ5SwECG2NvbmZfYWNjZXB0ZWRfYXNzZXRfVVNEQ19QUAAPZWFzdEFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIYY29uZl9hY2NlcHRlZF9hc3NldF9FQVNUABFwdXp6bGVBc3NldElkX3N0cgkBCWdldFN0ckJ5SwECGmNvbmZfYWNjZXB0ZWRfYXNzZXRfUFVaWkxFABBldGhQUEFzc2V0SWRfc3RyCQEJZ2V0U3RyQnlLAQIaY29uZl9hY2NlcHRlZF9hc3NldF9FVEhfUFAAEHdhdmVzQXNzZXRJZF9zdHICBVdBVkVTAA11c2R0UFBBc3NldElkCQDZBAEFEXVzZHRQUEFzc2V0SWRfc3RyAAphcnRBc3NldElkCQDZBAEFDmFydEFzc2V0SWRfc3RyAA11c2RjUFBBc3NldElkCQDZBAEFEXVzZGNQUEFzc2V0SWRfc3RyAAtlYXN0QXNzZXRJZAkA2QQBBQ9lYXN0QXNzZXRJZF9zdHIADXB1enpsZUFzc2V0SWQJANkEAQURcHV6emxlQXNzZXRJZF9zdHIADGV0aFBQQXNzZXRJZAkA2QQBBRBldGhQUEFzc2V0SWRfc3RyAAx3YXZlc0Fzc2V0SWQBAAATYWxsX2FjY2VwdGVkX2Fzc2V0cwkAzAgCBRF1c2R0UFBBc3NldElkX3N0cgkAzAgCBQ5hcnRBc3NldElkX3N0cgkAzAgCBRF1c2RjUFBBc3NldElkX3N0cgkAzAgCBQ9lYXN0QXNzZXRJZF9zdHIJAMwIAgURcHV6emxlQXNzZXRJZF9zdHIJAMwIAgUQd2F2ZXNBc3NldElkX3N0cgkAzAgCBRBldGhQUEFzc2V0SWRfc3RyBQNuaWwABWNocmlzCQEJZ2V0U3RyQnlLAQIMY29uZl9hZG1pbl8xAA5jb21taXNzaW9uX2ZlZQADAA5kYXBwUnVubmluZ0tleQIUY29uZl9kYXBwX2lzX3J1bm5pbmcAEW1haW50ZW5hbmNlTVNHS2V5AhRjb25mX21haW50ZW5hbmNlX21zZwALZGFwcFJ1bm5pbmcJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwUOZGFwcFJ1bm5pbmdLZXkGAA5tYWludGVuYW5jZU1TRwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBRFtYWludGVuYW5jZU1TR0tleQIAAAludW1TYWxlc0sCCW51bV9zYWxlcwEJZ2V0SW50QnlLAQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUDa2V5AAABCmdldFNhbGVLZXkDBmNhbGxlcgVuZnRJZAZpc3N1ZXIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg1zYWxlMm5kX2luZm9fBQZjYWxsZXICAV8FBW5mdElkAgFfBQZpc3N1ZXIBCWdldEJpZEtleQQKb2ZmZXJPd25lcgVuZnRJZAlzYWxlT3duZXIHb2ZmZXJJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAglvZmZlcjJuZF8FCm9mZmVyT3duZXICAV8FBW5mdElkAgFfBQlzYWxlT3duZXICAV8FB29mZmVySWQBE2dldEludEJ5S0Zyb21PcmFjbGUBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFCW9yYWNsZUZlZQUDa2V5Ah9JbnRlZ2VyIHVuZGVmaW5lIG9yIDAgaW4gb3JhY2xlAQxpZENhbGxlckRhdGUBAWkDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cJAJUKAwkA2AQBCAUBaQ10cmFuc2FjdGlvbklkCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMIBQlsYXN0QmxvY2sJdGltZXN0YW1wAQlpc1BheW1lbnQBAWkDCQAAAgkAkAMBCAUBaQhwYXltZW50cwAACQACAQITTm8gcGF5bWVudCBhdHRhY2hlZAQHcGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAZhbW91bnQJAQV2YWx1ZQEIBQdwYXltZW50BmFtb3VudAkAlAoCBQdwYXltZW50BQZhbW91bnQBCk5GVElzVmFsaWQBDGFzc2V0RGV0YWlscwMDCQAAAggFDGFzc2V0RGV0YWlscwhxdWFudGl0eQABCQAAAggFDGFzc2V0RGV0YWlscwhkZWNpbWFscwAABwkAAAIIBQxhc3NldERldGFpbHMKcmVpc3N1YWJsZQcHARBhY2NlcHRlZEFzc2V0SWRzAQdhc3NldElkAwkBASEBCQEPY29udGFpbnNFbGVtZW50AgUTYWxsX2FjY2VwdGVkX2Fzc2V0cwUHYXNzZXRJZAkAAgECQE9ubHkgJEFSVCwgVVNEVC1QUCwgVVNEQy1QUCwgRUFTVCwgUFVaWkxFLCBFVEggb3IgV0FWRVMgYWNjZXB0ZWQGAQ1nZXRCaWRBc3NldElkAQdhc3NldElkAwkAAAIFB2Fzc2V0SWQCBVdBVkVTBQR1bml0CQDZBAEFB2Fzc2V0SWQBFWdldFNhbGVPd25lckFuZFN0YXR1cwEFbmZ0aWQECXNhbGVPd25lcgkBCWdldFN0ckJ5SwEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0aWQDCQAAAgkAsQIBBQlzYWxlT3duZXIAAAkAAgECDU5GVCBub3QgZm91bmQECnNhbGVTdGF0dXMJAQlnZXRTdHJCeUsBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FCXNhbGVPd25lcgIBXwUFbmZ0aWQDCQECIT0CBQpzYWxlU3RhdHVzAgRPUEVOCQACAQIQTkZUIG5vdCBmb3Igc2FsZQUJc2FsZU93bmVyAQpnZXRCaWREYXRhAQNrZXkEB2JpZERhdGEJAQlnZXRTdHJCeUsBCQCsAgIFA2tleQIFX09QRU4DCQAAAgUHYmlkRGF0YQIACQACAQIPT2ZmZXIgbm90IGZvdW5kBApiaWREYXRhQXJyCQC1CQIFB2JpZERhdGECAV8EB2Fzc2V0SWQJAQ1nZXRCaWRBc3NldElkAQkAkQMCBQpiaWREYXRhQXJyAAIJAJUKAwUKYmlkRGF0YUFycgUHYXNzZXRJZAUHYmlkRGF0YQEKZ2V0QmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDwBwIFBHRoaXMFAWIICQDvBwEFBHRoaXMJYXZhaWxhYmxlAQxzZXRUcmFuc2ZlcnMFBmFtb3VudAdhc3NldElkBW5mdGlkCXNhbGVPd25lcgZjYWxsZXIEDWFtb3VudEZvclNpZ24JAGsDBQZhbW91bnQFDmNvbW1pc3Npb25fZmVlAGQEDmFtb3VudEZvck93bmVyCQBlAgUGYW1vdW50BQ1hbW91bnRGb3JTaWduBCJhbW91bnRfY29tbWlzc2lvbl9mb3Jfc2lnbl90b19zd2FwBQ1hbW91bnRGb3JTaWduBBFhbW91bnRfYXJ0X2JlZm9yZQkBCmdldEJhbGFuY2UBBQphcnRBc3NldElkAwkAAAIFEWFtb3VudF9hcnRfYmVmb3JlBRFhbW91bnRfYXJ0X2JlZm9yZQQPc3dhcF9mZWVfdG9fYXJ0AwkBAiE9AgUHYXNzZXRJZAUKYXJ0QXNzZXRJZAkA/AcECQEHQWRkcmVzcwEJANkEAQUPcHV6emxlX2FydF9wb29sAgRzd2FwCQDMCAIFDmFydEFzc2V0SWRfc3RyCQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQdhc3NldElkBSJhbW91bnRfY29tbWlzc2lvbl9mb3Jfc2lnbl90b19zd2FwBQNuaWwFBHVuaXQDCQAAAgUPc3dhcF9mZWVfdG9fYXJ0BQ9zd2FwX2ZlZV90b19hcnQEEGFtb3VudF9hcnRfYWZ0ZXIJAQpnZXRCYWxhbmNlAQUKYXJ0QXNzZXRJZAMJAAACBRBhbW91bnRfYXJ0X2FmdGVyBRBhbW91bnRfYXJ0X2FmdGVyBAtjb21taXNzaW9ucwkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFC2ZlZVJlY2VpdmVyAwkAAAIFB2Fzc2V0SWQFCmFydEFzc2V0SWQFDWFtb3VudEZvclNpZ24JAGUCBRBhbW91bnRfYXJ0X2FmdGVyBRFhbW91bnRfYXJ0X2JlZm9yZQUKYXJ0QXNzZXRJZAQIb3duZXJGZWUJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQlzYWxlT3duZXIFDmFtb3VudEZvck93bmVyBQdhc3NldElkBAxjb2xsZWN0b3JORlQJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIAAQkA2QQBBQVuZnRpZAkAlQoDBQtjb21taXNzaW9ucwUIb3duZXJGZWUFDGNvbGxlY3Rvck5GVAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEPdmFsaWRhdGVNaW5TZWxsAQVwcmljZQMJAGcCAAAFBXByaWNlCQACAQIYV3JvbmcgbWluaW11bSBzZWxsIHByaWNlBgEPcHJvdmlkZUJhc2VEYXRhAgFpBW5mdElkBAskdDA1MDc5NTExOQkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAULJHQwNTA3OTUxMTkCXzEEBmNhbGxlcggFCyR0MDUwNzk1MTE5Al8yBARkYXRlCAULJHQwNTA3OTUxMTkCXzMEDGFzc2V0RGV0YWlscwkBBXZhbHVlAQkA7AcBCQDZBAEFBW5mdElkBAppc1ZhbGlkTkZUCQEKTkZUSXNWYWxpZAEFDGFzc2V0RGV0YWlscwkAlwoFBQJpZAUGY2FsbGVyBQRkYXRlBQppc1ZhbGlkTkZUCAUMYXNzZXREZXRhaWxzBmlzc3VlcgEOdXBkYXRlTnVtU2FsZXMABAhudW1TYWxlcwkBCWdldEludEJ5SwEFCW51bVNhbGVzSwkBDEludGVnZXJFbnRyeQIFCW51bVNhbGVzSwkAZAIFCG51bVNhbGVzAAEBB2hhdmVTVEQCBmlzc3VlcgZuZGZ0SWQEBGRhdGEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgkBB0FkZHJlc3MBCQDZBAEFBmlzc3VlcgkArAICCQCsAgICCHN0ZF9uZnRfBQZuZGZ0SWQCCV9tZXRhZGF0YQIACQECIT0CBQRkYXRhAgAJBmludm9rZQEHc2V0Q29uZgIDa2V5A3ZhbAQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgMJAQhjb250YWlucwIFA2tleQIFY29uZl8JAMwIAgkBC1N0cmluZ0VudHJ5AgUDa2V5BQN2YWwFA25pbAkAAgECIEVudHJpZXMgc3RhcnRpbmcgd2l0aCBjb25mXyBvbmx5CQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwZpbnZva2UBCmFwcFJ1bm5pbmcCBmlzTGl2ZQdtZXNzYWdlBAZjYWxsZXIJAKUIAQgFBmludm9rZQZjYWxsZXIEAmlkCQDYBAEIBQZpbnZva2UNdHJhbnNhY3Rpb25JZAMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIJAMwIAgkBDEJvb2xlYW5FbnRyeQIFDmRhcHBSdW5uaW5nS2V5BQZpc0xpdmUJAMwIAgkBC1N0cmluZ0VudHJ5AgURbWFpbnRlbmFuY2VNU0dLZXkFB21lc3NhZ2UFA25pbAkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMBaQEHc2VsbE5GVAIFcHJpY2UFYXNzZXQECyR0MDY0NTQ2NDkwCQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFCyR0MDY0NTQ2NDkwAl8xBAZhbW91bnQIBQskdDA2NDU0NjQ5MAJfMgMJAQIhPQIFBmFtb3VudAABCQACAQIPTm8gTkZUIGF0dGFjaGVkBAVuZnRJZAMJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQJAAIBAhNXYXZlcyBpcyBub3QgYSBORlQuBAskdDA2Njc2Njc0NgkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFCyR0MDY2NzY2NzQ2Al8xBAZjYWxsZXIIBQskdDA2Njc2Njc0NgJfMgQEZGF0ZQgFCyR0MDY2NzY2NzQ2Al8zBAppc1ZhbGlkTkZUCAULJHQwNjY3NjY3NDYCXzQEBmlzc3VlcggFCyR0MDY2NzY2NzQ2Al81AwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0AwkBASEBCQEHaGF2ZVNURAIJAKUIAQUGaXNzdWVyBQVuZnRJZAkAAgECJ05vIG5mdCBzdGFuZGFyZCBmb3VuZCBvbiBpc3N1ZXIgYWNjb3VudAMJAQEhAQkBEGFjY2VwdGVkQXNzZXRJZHMBBQVhc3NldAkAAgECQE9ubHkgJEFSVCwgVVNEVC1QUCwgVVNEQy1QUCwgRUFTVCwgUFVaWkxFLCBFVEggb3IgV0FWRVMgYWNjZXB0ZWQDCQEBIQEJAQ92YWxpZGF0ZU1pblNlbGwBBQVwcmljZQkAAgECGFdyb25nIG1pbmltdW0gc2VsbCBwcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAQpnZXRTYWxlS2V5AwUGY2FsbGVyBQVuZnRJZAkApQgBBQZpc3N1ZXICBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUEZGF0ZQIBXwkApAMBBQVwcmljZQIBXwUFYXNzZXQCAV8FBW5mdElkAgFfCQClCAEFBmlzc3VlcgIBXwUCaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgIPc2FsZTJuZF9zdGF0dXNfBQZjYWxsZXICAV8FBW5mdElkAgRPUEVOCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQFBmNhbGxlcgUDbmlsAWkBD3VwZGF0ZVNhbGVQcmljZQMFbmZ0SWQFcHJpY2UFYXNzZXQECyR0MDc1NDE3NjExCQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAULJHQwNzU0MTc2MTECXzEEBmNhbGxlcggFCyR0MDc1NDE3NjExAl8yBARkYXRlCAULJHQwNzU0MTc2MTECXzMECmlzVmFsaWRORlQIBQskdDA3NTQxNzYxMQJfNAQGaXNzdWVyCAULJHQwNzU0MTc2MTECXzUDCQEBIQEFCmlzVmFsaWRORlQJAAIBAg9Ob3QgYSB2YWxpZCBuZnQECXNhbGVPd25lcgkBCWdldFN0ckJ5SwEJAKwCAgIWY3VycmVudF9vd25lcl9vbl9kYXBwXwUFbmZ0SWQDCQECIT0CBQlzYWxlT3duZXIFBmNhbGxlcgkAAgECFllvdSBkb24ndCBvd24gdGhpcyBORlQECnNhbGVTdGF0dXMJAQlnZXRTdHJCeUsBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FBmNhbGxlcgIBXwUFbmZ0SWQDCQECIT0CBQpzYWxlU3RhdHVzAgRPUEVOCQACAQIPU2FsZSBub3QgYWN0aXZlAwkBASEBCQEQYWNjZXB0ZWRBc3NldElkcwEFBWFzc2V0CQACAQJAT25seSAkQVJULCBVU0RULVBQLCBVU0RDLVBQLCBFQVNULCBQVVpaTEUsIEVUSCBvciBXQVZFUyBhY2NlcHRlZAMJAQEhAQkBD3ZhbGlkYXRlTWluU2VsbAEFBXByaWNlCQACAQIYV3JvbmcgbWluaW11bSBzZWxsIHByaWNlBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQMFBmNhbGxlcgUFbmZ0SWQJAKUIAQUGaXNzdWVyBAhzYWxlSW5mbwkAtQkCCQEJZ2V0U3RyQnlLAQkArAICBQdzYWxlS2V5AgVfT1BFTgIBXwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAJEDAgUIc2FsZUluZm8AAAIBXwkApAMBBQVwcmljZQIBXwUFYXNzZXQCAV8JAJEDAgUIc2FsZUluZm8AAwIBXwkAkQMCBQhzYWxlSW5mbwAEAgFfCQCRAwIFCHNhbGVJbmZvAAUFA25pbAFpAQpjYW5jZWxTYWxlAQVuZnRJZAQLJHQwODY2Mzg4ODEJAQ9wcm92aWRlQmFzZURhdGECBQFpBQVuZnRJZAQCaWQIBQskdDA4NjYzODg4MQJfMQQGY2FsbGVyCAULJHQwODY2Mzg4ODECXzIEBGRhdGUIBQskdDA4NjYzODg4MQJfMwQKaXNWYWxpZE5GVAgFCyR0MDg2NjM4ODgxAl80BAZpc3N1ZXIIBQskdDA4NjYzODg4MQJfNQQJc2FsZU93bmVyCQEJZ2V0U3RyQnlLAQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAMJAQIhPQIFCXNhbGVPd25lcgUGY2FsbGVyCQACAQIWWW91IGRvbid0IG93biB0aGlzIE5GVAQKc2FsZVN0YXR1cwkBCWdldFN0ckJ5SwEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAMJAQIhPQIFCnNhbGVTdGF0dXMCBE9QRU4JAAIBAg9TYWxlIG5vdCBhY3RpdmUEB3NhbGVLZXkJAQpnZXRTYWxlS2V5AwUGY2FsbGVyBQVuZnRJZAkApQgBBQZpc3N1ZXIECHNhbGVJbmZvCQEJZ2V0U3RyQnlLAQkArAICBQdzYWxlS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIFB3NhbGVLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUGY2FsbGVyAgFfBQVuZnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFB3NhbGVLZXkCAV8FAmlkAgpfQ0FOQ0VMTEVECQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAgtfQ0FOQ0VMTEVEXwkApAMBBQRkYXRlAgFfBQJpZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAEJANkEAQUFbmZ0SWQFA25pbAFpAQZidXlORlQBBW5mdElkBAskdDA5NzEyOTc4MgkBD3Byb3ZpZGVCYXNlRGF0YQIFAWkFBW5mdElkBAJpZAgFCyR0MDk3MTI5NzgyAl8xBAZjYWxsZXIIBQskdDA5NzEyOTc4MgJfMgQEZGF0ZQgFCyR0MDk3MTI5NzgyAl8zBAppc1ZhbGlkTkZUCAULJHQwOTcxMjk3ODICXzQEBmlzc3VlcggFCyR0MDk3MTI5NzgyAl81AwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0BAlzYWxlT3duZXIJARVnZXRTYWxlT3duZXJBbmRTdGF0dXMBBQVuZnRJZAQHc2FsZUtleQkBCmdldFNhbGVLZXkDBQlzYWxlT3duZXIFBW5mdElkCQClCAEFBmlzc3VlcgQIc2FsZUluZm8JAQlnZXRTdHJCeUsBCQCsAgIFB3NhbGVLZXkCBV9PUEVOAwkAAAIJALECAQUIc2FsZUluZm8AAAkAAgECD1NhbGUgTm90IGZvdW5kIQQNc2FsZUluZm9BcnJheQkAtQkCBQhzYWxlSW5mbwIBXwMJAAACCQC2CQEJAJEDAgUNc2FsZUluZm9BcnJheQABAAAJAAIBAgpPZmZlciBvbmx5BA0kdDAxMDE4MTEwMjE3CQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDEwMTgxMTAyMTcCXzEEBmFtb3VudAgFDSR0MDEwMTgxMTAyMTcCXzIED3BheW1lbnRBc3NldFN0cgMJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQCAAMDCQECIT0CCQCRAwIFDXNhbGVJbmZvQXJyYXkAAQkApAMBBQZhbW91bnQGCQECIT0CCQCRAwIFDXNhbGVJbmZvQXJyYXkAAgUPcGF5bWVudEFzc2V0U3RyCQACAQIaUGF5bWVudCBpbmZvcyBkb24ndCBtYXRjaC4EDSR0MDEwNzMxMTA4MzgJAQxzZXRUcmFuc2ZlcnMFBQZhbW91bnQIBQdwYXltZW50B2Fzc2V0SWQFBW5mdElkBQlzYWxlT3duZXIFBmNhbGxlcgQLY29tbWlzc2lvbnMIBQ0kdDAxMDczMTEwODM4Al8xBAhvd25lckZlZQgFDSR0MDEwNzMxMTA4MzgCXzIEDGNvbGxlY3Rvck5GVAgFDSR0MDEwNzMxMTA4MzgCXzMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQdzYWxlS2V5AgVfT1BFTgkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgkArAICAg9zYWxlMm5kX3N0YXR1c18FCXNhbGVPd25lcgIBXwUFbmZ0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICAhZjdXJyZW50X293bmVyX29uX2RhcHBfBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQdzYWxlS2V5AgFfBQJpZAIHX0NMT1NFRAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUIc2FsZUluZm8CCF9DTE9TRURfCQCkAwEFBGRhdGUCAV8FAmlkAgFfBQZjYWxsZXIJAMwIAgkBDnVwZGF0ZU51bVNhbGVzAAkAzAgCBQhvd25lckZlZQkAzAgCBQxjb2xsZWN0b3JORlQJAMwIAgULY29tbWlzc2lvbnMFA25pbAFpAQhzZXRPZmZlcgEFbmZ0SWQEDSR0MDExMjM3MTEzMTEJAQ9wcm92aWRlQmFzZURhdGECBQFpBQVuZnRJZAQCaWQIBQ0kdDAxMTIzNzExMzExAl8xBApvZmZlck93bmVyCAUNJHQwMTEyMzcxMTMxMQJfMgQEZGF0ZQgFDSR0MDExMjM3MTEzMTECXzMECmlzVmFsaWRORlQIBQ0kdDAxMTIzNzExMzExAl80BAZpc3N1ZXIIBQ0kdDAxMTIzNzExMzExAl81AwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0BA0kdDAxMTM3MjExNDA4CQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDExMzcyMTE0MDgCXzEEBmFtb3VudAgFDSR0MDExMzcyMTE0MDgCXzIEB2Fzc2V0SWQDCQEBIQEJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkAgVXQVZFUwkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkAwkBASEBCQEQYWNjZXB0ZWRBc3NldElkcwEFB2Fzc2V0SWQJAAIBAhJhc3NldCBub3QgYWNjZXB0ZWQDCQAAAgUGYW1vdW50AAAJAAIBAhZPZmZlciBvZiAwIG5vdCBhbGxvd2VkAwkBASEBCQEPdmFsaWRhdGVNaW5TZWxsAQUGYW1vdW50CQACAQIYV3JvbmcgbWluaW11bSBzZWxsIHByaWNlBAlzYWxlT3duZXIJARVnZXRTYWxlT3duZXJBbmRTdGF0dXMBBQVuZnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAQlnZXRCaWRLZXkEBQpvZmZlck93bmVyBQVuZnRJZAUJc2FsZU93bmVyBQJpZAIFX09QRU4JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKQDAQUEZGF0ZQIBXwkApAMBBQZhbW91bnQCAV8FB2Fzc2V0SWQCAV8FBW5mdElkAgFfCQClCAEFBmlzc3VlcgIBXwUKb2ZmZXJPd25lcgIBXwUCaWQFA25pbAFpAQthY2NlcHRPZmZlcgMFbmZ0SWQHb2ZmZXJJZApvZmZlck93bmVyBA0kdDAxMjE5NzEyMjY3CQEPcHJvdmlkZUJhc2VEYXRhAgUBaQUFbmZ0SWQEAmlkCAUNJHQwMTIxOTcxMjI2NwJfMQQGY2FsbGVyCAUNJHQwMTIxOTcxMjI2NwJfMgQEZGF0ZQgFDSR0MDEyMTk3MTIyNjcCXzMECmlzVmFsaWRORlQIBQ0kdDAxMjE5NzEyMjY3Al80BAZpc3N1ZXIIBQ0kdDAxMjE5NzEyMjY3Al81AwkBASEBBQppc1ZhbGlkTkZUCQACAQIPTm90IGEgdmFsaWQgbmZ0BAlzYWxlT3duZXIJARVnZXRTYWxlT3duZXJBbmRTdGF0dXMBBQVuZnRJZAMJAQIhPQIFBmNhbGxlcgUJc2FsZU93bmVyCQACAQIgT25seSBzYWxlIG93bmVyIGNhbiBhY2NlcHQgb2ZmZXIEBmJpZEtleQkBCWdldEJpZEtleQQFCm9mZmVyT3duZXIFBW5mdElkBQlzYWxlT3duZXIFB29mZmVySWQEDSR0MDEyNTIxMTI1NzYJAQpnZXRCaWREYXRhAQUGYmlkS2V5BApiaWREYXRhQXJyCAUNJHQwMTI1MjExMjU3NgJfMQQHYXNzZXRJZAgFDSR0MDEyNTIxMTI1NzYCXzIEB2JpZERhdGEIBQ0kdDAxMjUyMTEyNTc2Al8zBAdzYWxlS2V5CQEKZ2V0U2FsZUtleQMFCXNhbGVPd25lcgUFbmZ0SWQJAKUIAQUGaXNzdWVyBAhzYWxlSW5mbwkBCWdldFN0ckJ5SwEJAKwCAgUHc2FsZUtleQIFX09QRU4DCQAAAgkAsQIBBQhzYWxlSW5mbwAACQACAQIPU2FsZSBOb3QgZm91bmQhBAZhbW91bnQJAQV2YWx1ZQEJALYJAQkAkQMCBQpiaWREYXRhQXJyAAEEDSR0MDEyODEyMTI5MTgJAQxzZXRUcmFuc2ZlcnMFBQZhbW91bnQFB2Fzc2V0SWQFBW5mdElkBQlzYWxlT3duZXIJAJEDAgUKYmlkRGF0YUFycgAGBAtjb21taXNzaW9ucwgFDSR0MDEyODEyMTI5MTgCXzEECG93bmVyRmVlCAUNJHQwMTI4MTIxMjkxOAJfMgQMY29sbGVjdG9yTkZUCAUNJHQwMTI4MTIxMjkxOAJfMwQKYXNzZXRJZFN0cgMJAQlpc0RlZmluZWQBBQdhc3NldElkCQDYBAEJAQV2YWx1ZQEFB2Fzc2V0SWQCBVdBVkVTCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUHc2FsZUtleQIFX09QRU4JAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQZiaWRLZXkCBV9PUEVOCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICCQCsAgICD3NhbGUybmRfc3RhdHVzXwUJc2FsZU93bmVyAgFfBQVuZnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgICFmN1cnJlbnRfb3duZXJfb25fZGFwcF8FBW5mdElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGYmlkS2V5AgdfQ0xPU0VECQCsAgIJAKwCAgkArAICCQCsAgIFB2JpZERhdGECCF9DTE9TRURfCQCkAwEFBGRhdGUCAV8FAmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFB3NhbGVLZXkCAV8FAmlkAgdfQ0xPU0VECQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFCHNhbGVJbmZvAg5fQ0xPU0VELU9GRkVSXwkApAMBBQRkYXRlAgFfBQJpZAIBXwUKb2ZmZXJPd25lcgIBXwkApAMBBQZhbW91bnQCAV8FCmFzc2V0SWRTdHIJAMwIAgkBDnVwZGF0ZU51bVNhbGVzAAkAzAgCBQhvd25lckZlZQkAzAgCBQxjb2xsZWN0b3JORlQJAMwIAgULY29tbWlzc2lvbnMFA25pbAFpAQtjYW5jZWxPZmZlcgQFbmZ0SWQHb2ZmZXJJZApvZmZlck93bmVyCXNhbGVPd25lcgQNJHQwMTM3MDYxMzc4MAkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTM3MDYxMzc4MAJfMQQGY2FsbGVyCAUNJHQwMTM3MDYxMzc4MAJfMgQEZGF0ZQgFDSR0MDEzNzA2MTM3ODACXzMDAwkBAiE9AgUGY2FsbGVyBQpvZmZlck93bmVyCQECIT0CBQZjYWxsZXIFCXNhbGVPd25lcgcJAAIBAh1Zb3UgY2Fubm90IGNhbmNlbCB0aGlzIG9mZmVyLgQGYmlkS2V5CQEJZ2V0QmlkS2V5BAUKb2ZmZXJPd25lcgUFbmZ0SWQFCXNhbGVPd25lcgUHb2ZmZXJJZAQNJHQwMTM5NTIxNDAwNwkBCmdldEJpZERhdGEBBQZiaWRLZXkECmJpZERhdGFBcnIIBQ0kdDAxMzk1MjE0MDA3Al8xBAdhc3NldElkCAUNJHQwMTM5NTIxNDAwNwJfMgQHYmlkRGF0YQgFDSR0MDEzOTUyMTQwMDcCXzMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICBQZiaWRLZXkCBV9PUEVOCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGYmlkS2V5AgpfQ0FOQ0VMTEVECQCsAgIJAKwCAgkArAICCQCsAgIFB2JpZERhdGECC19DQU5DRUxMRURfCQCkAwEFBGRhdGUCAV8FAmlkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZjYWxsZXIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpiaWREYXRhQXJyAAEFB2Fzc2V0SWQFA25pbAAqi2/z", "height": 2842734, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: pcPJvaGRsfGkPBQ7DZGoNXSecoMZFnexh6ayTHzVKqu Next: 6x6BFzVViP7SrVmLsgNstymLW2yUySjaygCz1366RHTc Diff:
OldNewDifferences
185185
186186
187187 func haveSTD (issuer,ndftId) = {
188- let data = valueOrElse(getStringValue(Address(fromBase58String(issuer)), (("std_nft_" + ndftId) + "_metadata")), "")
188+ let data = valueOrElse(getString(Address(fromBase58String(issuer)), (("std_nft_" + ndftId) + "_metadata")), "")
189189 (data != "")
190190 }
191191
215215
216216 @Callable(i)
217217 func sellNFT (price,asset) = {
218- let $t064606496 = isPayment(i)
219- let payment = $t064606496._1
220- let amount = $t064606496._2
218+ let $t064546490 = isPayment(i)
219+ let payment = $t064546490._1
220+ let amount = $t064546490._2
221221 if ((amount != 1))
222222 then throw("No NFT attached")
223223 else {
224224 let nftId = if (isDefined(payment.assetId))
225225 then toBase58String(value(payment.assetId))
226226 else throw("Waves is not a NFT.")
227- let $t066826752 = provideBaseData(i, nftId)
228- let id = $t066826752._1
229- let caller = $t066826752._2
230- let date = $t066826752._3
231- let isValidNFT = $t066826752._4
232- let issuer = $t066826752._5
227+ let $t066766746 = provideBaseData(i, nftId)
228+ let id = $t066766746._1
229+ let caller = $t066766746._2
230+ let date = $t066766746._3
231+ let isValidNFT = $t066766746._4
232+ let issuer = $t066766746._5
233233 if (!(isValidNFT))
234234 then throw("Not a valid nft")
235- else if (!(haveSTD(nftId, toString(issuer))))
235+ else if (!(haveSTD(toString(issuer), nftId)))
236236 then throw("No nft standard found on issuer account")
237237 else if (!(acceptedAssetIds(asset)))
238238 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
246246
247247 @Callable(i)
248248 func updateSalePrice (nftId,price,asset) = {
249- let $t075477617 = provideBaseData(i, nftId)
250- let id = $t075477617._1
251- let caller = $t075477617._2
252- let date = $t075477617._3
253- let isValidNFT = $t075477617._4
254- let issuer = $t075477617._5
249+ let $t075417611 = provideBaseData(i, nftId)
250+ let id = $t075417611._1
251+ let caller = $t075417611._2
252+ let date = $t075417611._3
253+ let isValidNFT = $t075417611._4
254+ let issuer = $t075417611._5
255255 if (!(isValidNFT))
256256 then throw("Not a valid nft")
257257 else {
279279
280280 @Callable(i)
281281 func cancelSale (nftId) = {
282- let $t086698887 = provideBaseData(i, nftId)
283- let id = $t086698887._1
284- let caller = $t086698887._2
285- let date = $t086698887._3
286- let isValidNFT = $t086698887._4
287- let issuer = $t086698887._5
282+ let $t086638881 = provideBaseData(i, nftId)
283+ let id = $t086638881._1
284+ let caller = $t086638881._2
285+ let date = $t086638881._3
286+ let isValidNFT = $t086638881._4
287+ let issuer = $t086638881._5
288288 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
289289 if ((saleOwner != caller))
290290 then throw("You don't own this NFT")
304304
305305 @Callable(i)
306306 func buyNFT (nftId) = {
307- let $t097189788 = provideBaseData(i, nftId)
308- let id = $t097189788._1
309- let caller = $t097189788._2
310- let date = $t097189788._3
311- let isValidNFT = $t097189788._4
312- let issuer = $t097189788._5
307+ let $t097129782 = provideBaseData(i, nftId)
308+ let id = $t097129782._1
309+ let caller = $t097129782._2
310+ let date = $t097129782._3
311+ let isValidNFT = $t097129782._4
312+ let issuer = $t097129782._5
313313 if (!(isValidNFT))
314314 then throw("Not a valid nft")
315315 else {
323323 if ((parseInt(saleInfoArray[1]) == 0))
324324 then throw("Offer only")
325325 else {
326- let $t01018710223 = isPayment(i)
327- let payment = $t01018710223._1
328- let amount = $t01018710223._2
326+ let $t01018110217 = isPayment(i)
327+ let payment = $t01018110217._1
328+ let amount = $t01018110217._2
329329 let paymentAssetStr = if (isDefined(payment.assetId))
330330 then toBase58String(value(payment.assetId))
331331 else ""
334334 else (saleInfoArray[2] != paymentAssetStr))
335335 then throw("Payment infos don't match.")
336336 else {
337- let $t01073710844 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
338- let commissions = $t01073710844._1
339- let ownerFee = $t01073710844._2
340- let collectorNFT = $t01073710844._3
337+ let $t01073110838 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
338+ let commissions = $t01073110838._1
339+ let ownerFee = $t01073110838._2
340+ let collectorNFT = $t01073110838._3
341341 [DeleteEntry((saleKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((saleInfo + "_CLOSED_") + toString(date)) + "_") + id) + "_") + caller)), updateNumSales(), ownerFee, collectorNFT, commissions]
342342 }
343343 }
349349
350350 @Callable(i)
351351 func setOffer (nftId) = {
352- let $t01124311317 = provideBaseData(i, nftId)
353- let id = $t01124311317._1
354- let offerOwner = $t01124311317._2
355- let date = $t01124311317._3
356- let isValidNFT = $t01124311317._4
357- let issuer = $t01124311317._5
352+ let $t01123711311 = provideBaseData(i, nftId)
353+ let id = $t01123711311._1
354+ let offerOwner = $t01123711311._2
355+ let date = $t01123711311._3
356+ let isValidNFT = $t01123711311._4
357+ let issuer = $t01123711311._5
358358 if (!(isValidNFT))
359359 then throw("Not a valid nft")
360360 else {
361- let $t01137811414 = isPayment(i)
362- let payment = $t01137811414._1
363- let amount = $t01137811414._2
361+ let $t01137211408 = isPayment(i)
362+ let payment = $t01137211408._1
363+ let amount = $t01137211408._2
364364 let assetId = if (!(isDefined(payment.assetId)))
365365 then "WAVES"
366366 else toBase58String(value(payment.assetId))
381381
382382 @Callable(i)
383383 func acceptOffer (nftId,offerId,offerOwner) = {
384- let $t01220312273 = provideBaseData(i, nftId)
385- let id = $t01220312273._1
386- let caller = $t01220312273._2
387- let date = $t01220312273._3
388- let isValidNFT = $t01220312273._4
389- let issuer = $t01220312273._5
384+ let $t01219712267 = provideBaseData(i, nftId)
385+ let id = $t01219712267._1
386+ let caller = $t01219712267._2
387+ let date = $t01219712267._3
388+ let isValidNFT = $t01219712267._4
389+ let issuer = $t01219712267._5
390390 if (!(isValidNFT))
391391 then throw("Not a valid nft")
392392 else {
395395 then throw("Only sale owner can accept offer")
396396 else {
397397 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
398- let $t01252712582 = getBidData(bidKey)
399- let bidDataArr = $t01252712582._1
400- let assetId = $t01252712582._2
401- let bidData = $t01252712582._3
398+ let $t01252112576 = getBidData(bidKey)
399+ let bidDataArr = $t01252112576._1
400+ let assetId = $t01252112576._2
401+ let bidData = $t01252112576._3
402402 let saleKey = getSaleKey(saleOwner, nftId, toString(issuer))
403403 let saleInfo = getStrByK((saleKey + "_OPEN"))
404404 if ((size(saleInfo) == 0))
405405 then throw("Sale Not found!")
406406 else {
407407 let amount = value(parseInt(bidDataArr[1]))
408- let $t01281812924 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
409- let commissions = $t01281812924._1
410- let ownerFee = $t01281812924._2
411- let collectorNFT = $t01281812924._3
408+ let $t01281212918 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
409+ let commissions = $t01281212918._1
410+ let ownerFee = $t01281212918._2
411+ let collectorNFT = $t01281212918._3
412412 let assetIdStr = if (isDefined(assetId))
413413 then toBase58String(value(assetId))
414414 else "WAVES"
422422
423423 @Callable(i)
424424 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
425- let $t01371213786 = idCallerDate(i)
426- let id = $t01371213786._1
427- let caller = $t01371213786._2
428- let date = $t01371213786._3
425+ let $t01370613780 = idCallerDate(i)
426+ let id = $t01370613780._1
427+ let caller = $t01370613780._2
428+ let date = $t01370613780._3
429429 if (if ((caller != offerOwner))
430430 then (caller != saleOwner)
431431 else false)
432432 then throw("You cannot cancel this offer.")
433433 else {
434434 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
435- let $t01395814013 = getBidData(bidKey)
436- let bidDataArr = $t01395814013._1
437- let assetId = $t01395814013._2
438- let bidData = $t01395814013._3
435+ let $t01395214007 = getBidData(bidKey)
436+ let bidDataArr = $t01395214007._1
437+ let assetId = $t01395214007._2
438+ let bidData = $t01395214007._3
439439 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
440440 }
441441 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let VERSION = "1.0.0"
55
66 func getStrByK (key) = valueOrElse(getString(this, key), "")
77
88
99 let oracleFee = value(addressFromString(getStrByK("conf_oracle_fee")))
1010
1111 let feeReceiver = getStrByK("conf_fee_receiver")
1212
1313 let puzzle_art_pool = getStrByK("conf_puzzle_art_pool")
1414
1515 let usdtPPAssetId_str = getStrByK("conf_accepted_asset_USDT_PP")
1616
1717 let artAssetId_str = getStrByK("conf_accepted_asset_ART")
1818
1919 let usdcPPAssetId_str = getStrByK("conf_accepted_asset_USDC_PP")
2020
2121 let eastAssetId_str = getStrByK("conf_accepted_asset_EAST")
2222
2323 let puzzleAssetId_str = getStrByK("conf_accepted_asset_PUZZLE")
2424
2525 let ethPPAssetId_str = getStrByK("conf_accepted_asset_ETH_PP")
2626
2727 let wavesAssetId_str = "WAVES"
2828
2929 let usdtPPAssetId = fromBase58String(usdtPPAssetId_str)
3030
3131 let artAssetId = fromBase58String(artAssetId_str)
3232
3333 let usdcPPAssetId = fromBase58String(usdcPPAssetId_str)
3434
3535 let eastAssetId = fromBase58String(eastAssetId_str)
3636
3737 let puzzleAssetId = fromBase58String(puzzleAssetId_str)
3838
3939 let ethPPAssetId = fromBase58String(ethPPAssetId_str)
4040
4141 let wavesAssetId = base58''
4242
4343 let all_accepted_assets = [usdtPPAssetId_str, artAssetId_str, usdcPPAssetId_str, eastAssetId_str, puzzleAssetId_str, wavesAssetId_str, ethPPAssetId_str]
4444
4545 let chris = getStrByK("conf_admin_1")
4646
4747 let commission_fee = 3
4848
4949 let dappRunningKey = "conf_dapp_is_running"
5050
5151 let maintenanceMSGKey = "conf_maintenance_msg"
5252
5353 let dappRunning = valueOrElse(getBoolean(this, dappRunningKey), true)
5454
5555 let maintenanceMSG = valueOrElse(getString(this, maintenanceMSGKey), "")
5656
5757 let numSalesK = "num_sales"
5858
5959 func getIntByK (key) = valueOrElse(getInteger(this, key), 0)
6060
6161
6262 func getSaleKey (caller,nftId,issuer) = ((((("sale2nd_info_" + caller) + "_") + nftId) + "_") + issuer)
6363
6464
6565 func getBidKey (offerOwner,nftId,saleOwner,offerId) = ((((((("offer2nd_" + offerOwner) + "_") + nftId) + "_") + saleOwner) + "_") + offerId)
6666
6767
6868 func getIntByKFromOracle (key) = valueOrErrorMessage(getInteger(oracleFee, key), "Integer undefine or 0 in oracle")
6969
7070
7171 func idCallerDate (i) = if (!(dappRunning))
7272 then throw(maintenanceMSG)
7373 else $Tuple3(toBase58String(i.transactionId), toBase58String(i.caller.bytes), lastBlock.timestamp)
7474
7575
7676 func isPayment (i) = if ((size(i.payments) == 0))
7777 then throw("No payment attached")
7878 else {
7979 let payment = value(i.payments[0])
8080 let amount = value(payment.amount)
8181 $Tuple2(payment, amount)
8282 }
8383
8484
8585 func NFTIsValid (assetDetails) = if (if ((assetDetails.quantity == 1))
8686 then (assetDetails.decimals == 0)
8787 else false)
8888 then (assetDetails.reissuable == false)
8989 else false
9090
9191
9292 func acceptedAssetIds (assetId) = if (!(containsElement(all_accepted_assets, assetId)))
9393 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
9494 else true
9595
9696
9797 func getBidAssetId (assetId) = if ((assetId == "WAVES"))
9898 then unit
9999 else fromBase58String(assetId)
100100
101101
102102 func getSaleOwnerAndStatus (nftid) = {
103103 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftid))
104104 if ((size(saleOwner) == 0))
105105 then throw("NFT not found")
106106 else {
107107 let saleStatus = getStrByK(((("sale2nd_status_" + saleOwner) + "_") + nftid))
108108 if ((saleStatus != "OPEN"))
109109 then throw("NFT not for sale")
110110 else saleOwner
111111 }
112112 }
113113
114114
115115 func getBidData (key) = {
116116 let bidData = getStrByK((key + "_OPEN"))
117117 if ((bidData == ""))
118118 then throw("Offer not found")
119119 else {
120120 let bidDataArr = split(bidData, "_")
121121 let assetId = getBidAssetId(bidDataArr[2])
122122 $Tuple3(bidDataArr, assetId, bidData)
123123 }
124124 }
125125
126126
127127 func getBalance (assetId) = match assetId {
128128 case b: ByteVector =>
129129 assetBalance(this, b)
130130 case _ =>
131131 wavesBalance(this).available
132132 }
133133
134134
135135 func setTransfers (amount,assetId,nftid,saleOwner,caller) = {
136136 let amountForSign = fraction(amount, commission_fee, 100)
137137 let amountForOwner = (amount - amountForSign)
138138 let amount_commission_for_sign_to_swap = amountForSign
139139 let amount_art_before = getBalance(artAssetId)
140140 if ((amount_art_before == amount_art_before))
141141 then {
142142 let swap_fee_to_art = if ((assetId != artAssetId))
143143 then invoke(Address(fromBase58String(puzzle_art_pool)), "swap", [artAssetId_str, 1], [AttachedPayment(assetId, amount_commission_for_sign_to_swap)])
144144 else unit
145145 if ((swap_fee_to_art == swap_fee_to_art))
146146 then {
147147 let amount_art_after = getBalance(artAssetId)
148148 if ((amount_art_after == amount_art_after))
149149 then {
150150 let commissions = ScriptTransfer(Address(fromBase58String(feeReceiver)), if ((assetId == artAssetId))
151151 then amountForSign
152152 else (amount_art_after - amount_art_before), artAssetId)
153153 let ownerFee = ScriptTransfer(Address(fromBase58String(saleOwner)), amountForOwner, assetId)
154154 let collectorNFT = ScriptTransfer(Address(fromBase58String(caller)), 1, fromBase58String(nftid))
155155 $Tuple3(commissions, ownerFee, collectorNFT)
156156 }
157157 else throw("Strict value is not equal to itself.")
158158 }
159159 else throw("Strict value is not equal to itself.")
160160 }
161161 else throw("Strict value is not equal to itself.")
162162 }
163163
164164
165165 func validateMinSell (price) = if ((0 >= price))
166166 then throw("Wrong minimum sell price")
167167 else true
168168
169169
170170 func provideBaseData (i,nftId) = {
171171 let $t050795119 = idCallerDate(i)
172172 let id = $t050795119._1
173173 let caller = $t050795119._2
174174 let date = $t050795119._3
175175 let assetDetails = value(assetInfo(fromBase58String(nftId)))
176176 let isValidNFT = NFTIsValid(assetDetails)
177177 $Tuple5(id, caller, date, isValidNFT, assetDetails.issuer)
178178 }
179179
180180
181181 func updateNumSales () = {
182182 let numSales = getIntByK(numSalesK)
183183 IntegerEntry(numSalesK, (numSales + 1))
184184 }
185185
186186
187187 func haveSTD (issuer,ndftId) = {
188- let data = valueOrElse(getStringValue(Address(fromBase58String(issuer)), (("std_nft_" + ndftId) + "_metadata")), "")
188+ let data = valueOrElse(getString(Address(fromBase58String(issuer)), (("std_nft_" + ndftId) + "_metadata")), "")
189189 (data != "")
190190 }
191191
192192
193193 @Callable(invoke)
194194 func setConf (key,val) = {
195195 let caller = toString(invoke.caller)
196196 if (containsElement([chris, toString(this)], caller))
197197 then if (contains(key, "conf_"))
198198 then [StringEntry(key, val)]
199199 else throw("Entries starting with conf_ only")
200200 else throw("You are not allowed to change this")
201201 }
202202
203203
204204
205205 @Callable(invoke)
206206 func appRunning (isLive,message) = {
207207 let caller = toString(invoke.caller)
208208 let id = toBase58String(invoke.transactionId)
209209 if (containsElement([chris, toString(this)], caller))
210210 then [BooleanEntry(dappRunningKey, isLive), StringEntry(maintenanceMSGKey, message)]
211211 else throw("You are not allowed to change this")
212212 }
213213
214214
215215
216216 @Callable(i)
217217 func sellNFT (price,asset) = {
218- let $t064606496 = isPayment(i)
219- let payment = $t064606496._1
220- let amount = $t064606496._2
218+ let $t064546490 = isPayment(i)
219+ let payment = $t064546490._1
220+ let amount = $t064546490._2
221221 if ((amount != 1))
222222 then throw("No NFT attached")
223223 else {
224224 let nftId = if (isDefined(payment.assetId))
225225 then toBase58String(value(payment.assetId))
226226 else throw("Waves is not a NFT.")
227- let $t066826752 = provideBaseData(i, nftId)
228- let id = $t066826752._1
229- let caller = $t066826752._2
230- let date = $t066826752._3
231- let isValidNFT = $t066826752._4
232- let issuer = $t066826752._5
227+ let $t066766746 = provideBaseData(i, nftId)
228+ let id = $t066766746._1
229+ let caller = $t066766746._2
230+ let date = $t066766746._3
231+ let isValidNFT = $t066766746._4
232+ let issuer = $t066766746._5
233233 if (!(isValidNFT))
234234 then throw("Not a valid nft")
235- else if (!(haveSTD(nftId, toString(issuer))))
235+ else if (!(haveSTD(toString(issuer), nftId)))
236236 then throw("No nft standard found on issuer account")
237237 else if (!(acceptedAssetIds(asset)))
238238 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
239239 else if (!(validateMinSell(price)))
240240 then throw("Wrong minimum sell price")
241241 else [StringEntry((getSaleKey(caller, nftId, toString(issuer)) + "_OPEN"), ((((((((((toString(date) + "_") + toString(price)) + "_") + asset) + "_") + nftId) + "_") + toString(issuer)) + "_") + id)), StringEntry(((("sale2nd_status_" + caller) + "_") + nftId), "OPEN"), StringEntry(("current_owner_on_dapp_" + nftId), caller)]
242242 }
243243 }
244244
245245
246246
247247 @Callable(i)
248248 func updateSalePrice (nftId,price,asset) = {
249- let $t075477617 = provideBaseData(i, nftId)
250- let id = $t075477617._1
251- let caller = $t075477617._2
252- let date = $t075477617._3
253- let isValidNFT = $t075477617._4
254- let issuer = $t075477617._5
249+ let $t075417611 = provideBaseData(i, nftId)
250+ let id = $t075417611._1
251+ let caller = $t075417611._2
252+ let date = $t075417611._3
253+ let isValidNFT = $t075417611._4
254+ let issuer = $t075417611._5
255255 if (!(isValidNFT))
256256 then throw("Not a valid nft")
257257 else {
258258 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
259259 if ((saleOwner != caller))
260260 then throw("You don't own this NFT")
261261 else {
262262 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
263263 if ((saleStatus != "OPEN"))
264264 then throw("Sale not active")
265265 else if (!(acceptedAssetIds(asset)))
266266 then throw("Only $ART, USDT-PP, USDC-PP, EAST, PUZZLE, ETH or WAVES accepted")
267267 else if (!(validateMinSell(price)))
268268 then throw("Wrong minimum sell price")
269269 else {
270270 let saleKey = getSaleKey(caller, nftId, toString(issuer))
271271 let saleInfo = split(getStrByK((saleKey + "_OPEN")), "_")
272272 [StringEntry((saleKey + "_OPEN"), ((((((((((saleInfo[0] + "_") + toString(price)) + "_") + asset) + "_") + saleInfo[3]) + "_") + saleInfo[4]) + "_") + saleInfo[5]))]
273273 }
274274 }
275275 }
276276 }
277277
278278
279279
280280 @Callable(i)
281281 func cancelSale (nftId) = {
282- let $t086698887 = provideBaseData(i, nftId)
283- let id = $t086698887._1
284- let caller = $t086698887._2
285- let date = $t086698887._3
286- let isValidNFT = $t086698887._4
287- let issuer = $t086698887._5
282+ let $t086638881 = provideBaseData(i, nftId)
283+ let id = $t086638881._1
284+ let caller = $t086638881._2
285+ let date = $t086638881._3
286+ let isValidNFT = $t086638881._4
287+ let issuer = $t086638881._5
288288 let saleOwner = getStrByK(("current_owner_on_dapp_" + nftId))
289289 if ((saleOwner != caller))
290290 then throw("You don't own this NFT")
291291 else {
292292 let saleStatus = getStrByK(((("sale2nd_status_" + caller) + "_") + nftId))
293293 if ((saleStatus != "OPEN"))
294294 then throw("Sale not active")
295295 else {
296296 let saleKey = getSaleKey(caller, nftId, toString(issuer))
297297 let saleInfo = getStrByK((saleKey + "_OPEN"))
298298 [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))]
299299 }
300300 }
301301 }
302302
303303
304304
305305 @Callable(i)
306306 func buyNFT (nftId) = {
307- let $t097189788 = provideBaseData(i, nftId)
308- let id = $t097189788._1
309- let caller = $t097189788._2
310- let date = $t097189788._3
311- let isValidNFT = $t097189788._4
312- let issuer = $t097189788._5
307+ let $t097129782 = provideBaseData(i, nftId)
308+ let id = $t097129782._1
309+ let caller = $t097129782._2
310+ let date = $t097129782._3
311+ let isValidNFT = $t097129782._4
312+ let issuer = $t097129782._5
313313 if (!(isValidNFT))
314314 then throw("Not a valid nft")
315315 else {
316316 let saleOwner = getSaleOwnerAndStatus(nftId)
317317 let saleKey = getSaleKey(saleOwner, nftId, toString(issuer))
318318 let saleInfo = getStrByK((saleKey + "_OPEN"))
319319 if ((size(saleInfo) == 0))
320320 then throw("Sale Not found!")
321321 else {
322322 let saleInfoArray = split(saleInfo, "_")
323323 if ((parseInt(saleInfoArray[1]) == 0))
324324 then throw("Offer only")
325325 else {
326- let $t01018710223 = isPayment(i)
327- let payment = $t01018710223._1
328- let amount = $t01018710223._2
326+ let $t01018110217 = isPayment(i)
327+ let payment = $t01018110217._1
328+ let amount = $t01018110217._2
329329 let paymentAssetStr = if (isDefined(payment.assetId))
330330 then toBase58String(value(payment.assetId))
331331 else ""
332332 if (if ((saleInfoArray[1] != toString(amount)))
333333 then true
334334 else (saleInfoArray[2] != paymentAssetStr))
335335 then throw("Payment infos don't match.")
336336 else {
337- let $t01073710844 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
338- let commissions = $t01073710844._1
339- let ownerFee = $t01073710844._2
340- let collectorNFT = $t01073710844._3
337+ let $t01073110838 = setTransfers(amount, payment.assetId, nftId, saleOwner, caller)
338+ let commissions = $t01073110838._1
339+ let ownerFee = $t01073110838._2
340+ let collectorNFT = $t01073110838._3
341341 [DeleteEntry((saleKey + "_OPEN")), DeleteEntry(((("sale2nd_status_" + saleOwner) + "_") + nftId)), DeleteEntry(("current_owner_on_dapp_" + nftId)), StringEntry((((saleKey + "_") + id) + "_CLOSED"), ((((((saleInfo + "_CLOSED_") + toString(date)) + "_") + id) + "_") + caller)), updateNumSales(), ownerFee, collectorNFT, commissions]
342342 }
343343 }
344344 }
345345 }
346346 }
347347
348348
349349
350350 @Callable(i)
351351 func setOffer (nftId) = {
352- let $t01124311317 = provideBaseData(i, nftId)
353- let id = $t01124311317._1
354- let offerOwner = $t01124311317._2
355- let date = $t01124311317._3
356- let isValidNFT = $t01124311317._4
357- let issuer = $t01124311317._5
352+ let $t01123711311 = provideBaseData(i, nftId)
353+ let id = $t01123711311._1
354+ let offerOwner = $t01123711311._2
355+ let date = $t01123711311._3
356+ let isValidNFT = $t01123711311._4
357+ let issuer = $t01123711311._5
358358 if (!(isValidNFT))
359359 then throw("Not a valid nft")
360360 else {
361- let $t01137811414 = isPayment(i)
362- let payment = $t01137811414._1
363- let amount = $t01137811414._2
361+ let $t01137211408 = isPayment(i)
362+ let payment = $t01137211408._1
363+ let amount = $t01137211408._2
364364 let assetId = if (!(isDefined(payment.assetId)))
365365 then "WAVES"
366366 else toBase58String(value(payment.assetId))
367367 if (!(acceptedAssetIds(assetId)))
368368 then throw("asset not accepted")
369369 else if ((amount == 0))
370370 then throw("Offer of 0 not allowed")
371371 else if (!(validateMinSell(amount)))
372372 then throw("Wrong minimum sell price")
373373 else {
374374 let saleOwner = getSaleOwnerAndStatus(nftId)
375375 [StringEntry((getBidKey(offerOwner, nftId, saleOwner, id) + "_OPEN"), ((((((((((((toString(date) + "_") + toString(amount)) + "_") + assetId) + "_") + nftId) + "_") + toString(issuer)) + "_") + offerOwner) + "_") + id))]
376376 }
377377 }
378378 }
379379
380380
381381
382382 @Callable(i)
383383 func acceptOffer (nftId,offerId,offerOwner) = {
384- let $t01220312273 = provideBaseData(i, nftId)
385- let id = $t01220312273._1
386- let caller = $t01220312273._2
387- let date = $t01220312273._3
388- let isValidNFT = $t01220312273._4
389- let issuer = $t01220312273._5
384+ let $t01219712267 = provideBaseData(i, nftId)
385+ let id = $t01219712267._1
386+ let caller = $t01219712267._2
387+ let date = $t01219712267._3
388+ let isValidNFT = $t01219712267._4
389+ let issuer = $t01219712267._5
390390 if (!(isValidNFT))
391391 then throw("Not a valid nft")
392392 else {
393393 let saleOwner = getSaleOwnerAndStatus(nftId)
394394 if ((caller != saleOwner))
395395 then throw("Only sale owner can accept offer")
396396 else {
397397 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
398- let $t01252712582 = getBidData(bidKey)
399- let bidDataArr = $t01252712582._1
400- let assetId = $t01252712582._2
401- let bidData = $t01252712582._3
398+ let $t01252112576 = getBidData(bidKey)
399+ let bidDataArr = $t01252112576._1
400+ let assetId = $t01252112576._2
401+ let bidData = $t01252112576._3
402402 let saleKey = getSaleKey(saleOwner, nftId, toString(issuer))
403403 let saleInfo = getStrByK((saleKey + "_OPEN"))
404404 if ((size(saleInfo) == 0))
405405 then throw("Sale Not found!")
406406 else {
407407 let amount = value(parseInt(bidDataArr[1]))
408- let $t01281812924 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
409- let commissions = $t01281812924._1
410- let ownerFee = $t01281812924._2
411- let collectorNFT = $t01281812924._3
408+ let $t01281212918 = setTransfers(amount, assetId, nftId, saleOwner, bidDataArr[6])
409+ let commissions = $t01281212918._1
410+ let ownerFee = $t01281212918._2
411+ let collectorNFT = $t01281212918._3
412412 let assetIdStr = if (isDefined(assetId))
413413 then toBase58String(value(assetId))
414414 else "WAVES"
415415 [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(), ownerFee, collectorNFT, commissions]
416416 }
417417 }
418418 }
419419 }
420420
421421
422422
423423 @Callable(i)
424424 func cancelOffer (nftId,offerId,offerOwner,saleOwner) = {
425- let $t01371213786 = idCallerDate(i)
426- let id = $t01371213786._1
427- let caller = $t01371213786._2
428- let date = $t01371213786._3
425+ let $t01370613780 = idCallerDate(i)
426+ let id = $t01370613780._1
427+ let caller = $t01370613780._2
428+ let date = $t01370613780._3
429429 if (if ((caller != offerOwner))
430430 then (caller != saleOwner)
431431 else false)
432432 then throw("You cannot cancel this offer.")
433433 else {
434434 let bidKey = getBidKey(offerOwner, nftId, saleOwner, offerId)
435- let $t01395814013 = getBidData(bidKey)
436- let bidDataArr = $t01395814013._1
437- let assetId = $t01395814013._2
438- let bidData = $t01395814013._3
435+ let $t01395214007 = getBidData(bidKey)
436+ let bidDataArr = $t01395214007._1
437+ let assetId = $t01395214007._2
438+ let bidData = $t01395214007._3
439439 [DeleteEntry((bidKey + "_OPEN")), StringEntry((bidKey + "_CANCELLED"), ((((bidData + "_CANCELLED_") + toString(date)) + "_") + id)), ScriptTransfer(Address(fromBase58String(caller)), parseIntValue(bidDataArr[1]), assetId)]
440440 }
441441 }
442442
443443

github/deemru/w8io/169f3d6 
78.37 ms