tx · 5ipCQ88gn1Nt4ER4E9F3WbwF22sciXMeQUVypni9sZKX

3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx:  -0.01200000 Waves

2023.02.14 09:07 [2448911] smart account 3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx > SELF 0.00000000 Waves

{ "type": 13, "id": "5ipCQ88gn1Nt4ER4E9F3WbwF22sciXMeQUVypni9sZKX", "fee": 1200000, "feeAssetId": null, "timestamp": 1676355000681, "version": 2, "chainId": 84, "sender": "3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx", "senderPublicKey": "EKZmHJ5bK3qKKgRdq8rAamt9qrDbVMLARzRqXoQW258v", "proofs": [ "3UjBntCqkCBZpVNg8fKmKAg3a1kztQDjNdc5HcGiu8Mi3yHn8EAXQnrkpkdb5B51Jxwd98di8TZfvrTiSGG3aVap" ], "script": "base64:BgJQCAISCwoJCAgICAgBCAgIEgQKAggIEgQKAggIEgMKAQgSBwoFCAgIAQISBwoFCAgICAISBgoECAgIAhIECgIIAhIDCgEIEgQKAggIEgMKAQgLAAlzZXBhcmF0b3ICAV8ABGtCdXkCA2J1eQAGa1ByaWNlAgVwcmljZQAFa1NlbGwCBHNlbGwAEm1heEF1Y3Rpb25EdXJhdGlvbgAHAAV0ZWFtcwEghWOVo/OIjrDeDBeOCE6/mj+SuybbOuh2jhbcFCIqSH4ABVdBVkVTAQAABGtCaWQCA2JpZAAMc3RhdHVzRm9yTkZUCQCWCgQCBE9QRU4CBkNMT1NFRAIIUkVXQVJERUQCCENBTkNFTEVEAAtkQXBwQWRkcmVzcwEaAVRKuE9s3sLak+30julKNvjVT3+V1VVbXaABBWlzTmZ0AQdhc3NldElkBAckbWF0Y2gwCQDsBwEFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBXRva2VuBQckbWF0Y2gwAwMJAAACCAUFdG9rZW4IZGVjaW1hbHMAAAkAAAIIBQV0b2tlbghxdWFudGl0eQABBwkAAAIIBQV0b2tlbgpyZWlzc3VhYmxlBwcHCwFpAQljcmVhdGVOZnQJCG5mdF9uYW1lCW5mdF9vd25lcg9uZnRfZEFwcEFkZHJlc3MIbmZ0X3R5cGUIbmZ0X3RhZ3MRbmZ0X3NlbGxpbmdfcHJpY2UPbmZ0X2Rlc2NyaXB0aW9uCm5mdF9vblNlbGwIbmZ0X2RhdGEECG5ld1Rva2VuCQDCCAUFCG5mdF9uYW1lBQ9uZnRfZGVzY3JpcHRpb24AAQAABwQHaXNzdWVJZAkAuAgBBQhuZXdUb2tlbgQEdHhJZAgFAWkNdHJhbnNhY3Rpb25JZAkAzAgCBQhuZXdUb2tlbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHaXNzdWVJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICBU93bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF90eXBlBQhuZnRfdHlwZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF90YWdzBQhuZnRfdGFncwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICD25mdF9kQXBwQWRkcmVzcwUPbmZ0X2RBcHBBZGRyZXNzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICEW5mdF9zZWxsaW5nX3ByaWNlBRFuZnRfc2VsbGluZ19wcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCm5mdF9vblNlbGwFCm5mdF9vblNlbGwJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAghuZnRfZGF0YQUIbmZ0X2RhdGEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUEdHhJZAUJc2VwYXJhdG9yAglpc3N1ZV9uZnQJANgEAQUHaXNzdWVJZAUDbmlsAWkBB3NlbGxORlQCBXByaWNlEHBheW1lbnRfY3VycmVuY3kEBHR4SWQIBQFpDXRyYW5zYWN0aW9uSWQEBnNlbGxlcggIBQFpBmNhbGxlcgVieXRlcwQLJHQwMTkwMTE5ODYJAJQKAgkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQGdG9rZW4wCAULJHQwMTkwMTE5ODYCXzEEB2Ftb3VudDAIBQskdDAxOTAxMTk4NgJfMgMJAQEhAQkBBWlzTmZ0AQUGdG9rZW4wCQACAQIQVG9rZW4gaXMgbm90IE5GVAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUGa1ByaWNlBQlzZXBhcmF0b3IJANgEAQkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQVwcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUFa1NlbGwJAKwCAgkArAICCQCsAgIJANgEAQUGdG9rZW4wBQlzZXBhcmF0b3IJAKQDAQUHYW1vdW50MAUQcGF5bWVudF9jdXJyZW5jeQUDbmlsAWkBBmJ1eU5GVAIFbmZ0SUQRY3VycmVudF9uZnRfb3duZXIEB2Fzc2V0SWQJANkEAQUFbmZ0SUQEBmFtb3VudAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEEGNoZWNrT3duZXJJc1NhbWUEByRtYXRjaDAJAJ0IAgUEdGhpcwkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhBwQFcHJpY2UJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkArAICCQCsAgIJAKwCAgUGa1ByaWNlBQlzZXBhcmF0b3IFBW5mdElEAgFfBRFjdXJyZW50X25mdF9vd25lcgMJAAACBRFjdXJyZW50X25mdF9vd25lcgkApQgBCAUBaQZjYWxsZXIJAAIBAiljdXJyZW50IE93bmVyIG9mIE5GVCBub3QgYWJsZSB0byBwdXJjaGFzZQMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBXRlYW1zCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRFjdXJyZW50X25mdF9vd25lcgUGYW1vdW50BQV0ZWFtcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUEa0J1eQkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3IJAKQDAQUGYW1vdW50CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgUDbmlsAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQURY3VycmVudF9uZnRfb3duZXIFBmFtb3VudAUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUEa0J1eQkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3IJAKQDAQUGYW1vdW50CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgUDbmlsBQNuaWwBaQEKY2FuY2VsU2VsbAEFbmZ0SWQEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGc2VsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQR0eElkBQVuZnRJZAILX25mdF9zdGF0dXMCCENBTkNFTEVECQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUGc2VsbGVyAAEJANkEAQUFbmZ0SWQFA25pbAFpAQphZGRBdWN0aW9uBQVzdGFydANlbmQKc3RhcnRQcmljZQhkdXJhdGlvbhBwYXltZW50X2N1cnJlbmN5BAR0eElkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBW5mdElkCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQEBXByaWNlCQEFdmFsdWUBBQpzdGFydFByaWNlBAllbmRIZWlnaHQJAGQCCAUJbGFzdEJsb2NrBmhlaWdodAUIZHVyYXRpb24EBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwQRY2hlY2tOZnRBdWN0aW9uZWQEByRtYXRjaDAJAJ0IAgUEdGhpcwkArAICCQCsAgIJAKwCAgkA2AQBBQVuZnRJZAUJc2VwYXJhdG9yAgtuZnRfc3RhdHVzXwkA2AQBBQZjYWxsZXIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBgcDCQAAAgURY2hlY2tOZnRBdWN0aW9uZWQGCQACAQIXQWxyZWFkeSBpbiBhdWN0aW9uIGxpc3QDCQBmAgUIZHVyYXRpb24FEm1heEF1Y3Rpb25EdXJhdGlvbgkAAgEJAKwCAgI2RHVyYXRpb24gaXMgdG9vIGxvbmcuIE11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDcgCQCkAwEFEm1heEF1Y3Rpb25EdXJhdGlvbgMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAAIBAhBORlQgbm90IGF0dGFjaGVkAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFdGVhbXMJAAIBAhBORlQgbm90IGF0dGFjaGVkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQR0eElkAhZuZnRfc3RhcnRfYXVjdGlvbl9kYXRlCQDYBAEFBmNhbGxlcgUFc3RhcnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQCFG5mdF9lbmRfYXVjdGlvbl9kYXRlCQDYBAEFBmNhbGxlcgUDZW5kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF9zdGFydF9wcmljZQUKc3RhcnRQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCCl9uZnRfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX25mdF9vbl9hdWN0aW9uCQDYBAEFBW5mdElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX3ByZXZpb3VzX2JpZGRlcgIEbm9uZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCDF9oaWdoZXN0X2JpZAIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCDl93aW5uZXJfb2ZfbmZ0AgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAINX2JpZGRlcl9jb3VudAIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAgRPUEVOBQNuaWwBaQEIcGxhY2VCaWQFCWF1Y3Rpb25JZAVuZnRJZAluZnRfb3duZXIJYmlkX3ByaWNlEGN1cnJlbnRfY3VycmVuY3kEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAdhc3NldElkCQDZBAEFBW5mdElkBA9jdXJyZW50QmlkUHJpY2UICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BBVnZXRMYXN0V2lubmVyQmlkUHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQEGGdldFByZXZpb3VzQmlkZGVyQWRkcmVzcwkAnQgCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIQX3ByZXZpb3VzX2JpZGRlcgQPY3VycmVudEJpZENvdW50CQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAINX2JpZGRlcl9jb3VudAQUZ2V0TGFzdFdpbm5lckFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAQRY2hlY2tOZnRBdWN0aW9uZWQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwMJAQIhPQIFEWNoZWNrTmZ0QXVjdGlvbmVkAgRPUEVOCQACAQIUTm90IG9wZW4gZm9yIGF1Y3Rpb24DCQBnAgkBDXBhcnNlSW50VmFsdWUBBRVnZXRMYXN0V2lubmVyQmlkUHJpY2UJAQ1wYXJzZUludFZhbHVlAQkApAMBBQ9jdXJyZW50QmlkUHJpY2UJAAIBAiVCaWQgaXMgbGVzcyB0aGVuIHN0YXJ0aW5nL2hpZ2hlc3QgQmlkAwkAAAIFFWdldExhc3RXaW5uZXJCaWRQcmljZQIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkCQCkAwEFD2N1cnJlbnRCaWRQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAINX2JpZGRlcl9jb3VudAkApAMBCQBkAgkBDXBhcnNlSW50VmFsdWUBBQ9jdXJyZW50QmlkQ291bnQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgpfbmZ0X293bmVyBQluZnRfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX3dpbm5lcgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAINX2JpZGRlcl9jb3VudAkApAMBCQBkAgkBDXBhcnNlSW50VmFsdWUBBQ9jdXJyZW50QmlkQ291bnQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCB19uZnRfaWQJANgEAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCD19iaWRfZm9yX25mdF9ieQkA2AQBBQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfYmlkX3ByaWNlX3BsYWNlBQliaWRfcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAiZfcHJldmlvdXNfYmlkX2Ftb3VudF9yZWZ1bmRfdG9fYWRkcmVzcwUUZ2V0TGFzdFdpbm5lckFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhtfcHJldm9pdXNfYmlkX2Ftb3VudF9yZWZ1bmQFFWdldExhc3RXaW5uZXJCaWRQcmljZQUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkCQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAkApAMBBQ9jdXJyZW50QmlkUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgdfd2lubmVyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIKX25mdF9vd25lcgUJbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX2JpZF9mb3JfbmZ0X2J5CQDYBAEFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9iaWRfcHJpY2VfcGxhY2UFCWJpZF9wcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCJl9wcmV2aW91c19iaWRfYW1vdW50X3JlZnVuZF90b19hZGRyZXNzBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCG19wcmV2b2l1c19iaWRfYW1vdW50X3JlZnVuZAUVZ2V0TGFzdFdpbm5lckJpZFByaWNlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkBDXBhcnNlSW50VmFsdWUBBRVnZXRMYXN0V2lubmVyQmlkUHJpY2UFEGN1cnJlbnRfY3VycmVuY3kFA25pbAFpAQ5hY2NlcHRCaWRPZmZlcgQJYXVjdGlvbklkBW5mdElkFGJpZF9hbW91bnRfZnJvbV91c2VyEGN1cnJlbnRfY3VycmVuY3kEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAdhc3NldElkCQDZBAEFBW5mdElkBBJnZXROZnRXaW5uaW5nUHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQEEGdldEF1Y3Rpb25XaW5uZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAMJAAACBRBjdXJyZW50X2N1cnJlbmN5BQVXQVZFUwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFBmNhbGxlcgkBDXBhcnNlSW50VmFsdWUBBRJnZXROZnRXaW5uaW5nUHJpY2UFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsAwkAAAIFEGN1cnJlbnRfY3VycmVuY3kFBXRlYW1zCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUGY2FsbGVyCQENcGFyc2VJbnRWYWx1ZQEFEmdldE5mdFdpbm5pbmdQcmljZQUFdGVhbXMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsBQNuaWwBaQENY2FuY2VsQXVjdGlvbgIJYXVjdGlvbklkEGN1cnJlbnRfY3VycmVuY3kEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBA1hdWN0aW9uU3RhdHVzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAILX25mdF9zdGF0dXMEDWJpZGRpbmdXaW5uZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAQIbmZ0T3duZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgpfbmZ0X293bmVyBAVuZnRJZAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCD19uZnRfb25fYXVjdGlvbgQMYmlkZGluZ1ByaWNlCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkAwkAAAIFDWJpZGRpbmdXaW5uZXICATAJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQFCWF1Y3Rpb25JZAILX25mdF9zdGF0dXMCCENBTkNFTEVECQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQhuZnRPd25lcgABCQDZBAEFBW5mdElkBQNuaWwDCQECIT0CBQ1iaWRkaW5nV2lubmVyAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwIIQ0FOQ0VMRUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCJl9wcmV2aW91c19iaWRfYW1vdW50X3JlZnVuZF90b19hZGRyZXNzBQ1iaWRkaW5nV2lubmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhtfcHJldm9pdXNfYmlkX2Ftb3VudF9yZWZ1bmQFDGJpZGRpbmdQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghDQU5DRUxFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCJl9wcmV2aW91c19iaWRfYW1vdW50X3JlZnVuZF90b19hZGRyZXNzBQ1iaWRkaW5nV2lubmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIbX3ByZXZvaXVzX2JpZF9hbW91bnRfcmVmdW5kBQxiaWRkaW5nUHJpY2UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFCG5mdE93bmVyAAEJANkEAQUFbmZ0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFDWJpZGRpbmdXaW5uZXIJAQ1wYXJzZUludFZhbHVlAQUMYmlkZGluZ1ByaWNlBRBjdXJyZW50X2N1cnJlbmN5BQNuaWwFA25pbAFpAQt3aXRoZHJhd0JpZAEHYmlkVHhJZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAhiaWRQcmljZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQdiaWRUeElkAgxfaGlnaGVzdF9iaWQECGFzQmlkZGVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFB2JpZFR4SWQCB193aW5uZXIECWJpZEZvck5GVAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQdiaWRUeElkAgdfbmZ0X2lkAwkBAiE9AgkA2AQBBQZjYWxsZXIFCGFzQmlkZGVyCQACAQIGTm8gYmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUHYmlkVHhJZAIIX25mdF9iaWQCCFdJVEhEUkFXCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUHYmlkVHhJZAIHX25mdF9pZAUJYmlkRm9yTkZUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUHYmlkVHhJZAIcX2JpZGRpbmdfcHJpY2VfcmVmdW5kX2Ftb3VudAUIYmlkUHJpY2UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQENcGFyc2VJbnRWYWx1ZQEFCGJpZFByaWNlBQR1bml0BQNuaWwBaQESbWFudWFsRnVuZFRyYW5zZmVyAg1yZWNlcGllbnRBZGRyB21lc3NhZ2UEBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwQHcmVjaXZlcgkA2QQBBQ1yZWNlcGllbnRBZGRyBAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQDYBAEFBmNhbGxlcgIJX3RyYW5zZmVyBQZhbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQDYBAEFBmNhbGxlcgIMX3RyYW5zZmVyX3RvBQ1yZWNlcGllbnRBZGRyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUHcmVjaXZlcgUGYW1vdW50BQR1bml0BQNuaWwDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQV0ZWFtcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQDYBAEFBmNhbGxlcgIJX3RyYW5zZmVyBQZhbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQDYBAEFBmNhbGxlcgIMX3RyYW5zZmVyX3RvBQ1yZWNlcGllbnRBZGRyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUHcmVjaXZlcgUGYW1vdW50BQV0ZWFtcwUDbmlsBQNuaWwBaQEHdGVzdEJpZAEEZGF0YQkAzAgCCQELU3RyaW5nRW50cnkCAjhFOGtrRkJZQ3k0NEpKYXE2cEFaNktpenN1UmVzaTVVS05oYkQxV05ad2hoWV9oaWdoZXN0X2JpZAIBMAUDbmlsAJUWE70=", "height": 2448911, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FoUStM7iHfhj7WxrEp36bfWyawMRXeUk8PxQFe1Sy2D9 Next: R6uXN3NdfiekEgrvq6LWk5NiCfBJYnTNxfFmKGpXLtj Diff:
OldNewDifferences
99
1010 let d = "sell"
1111
12-let e = 30
12+let e = 7
1313
1414 let f = base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'
1515
7474 else false
7575 }
7676 let B = getStringValue(((((c + a) + H) + "_") + I))
77- let M = ((J / 1000) * 975)
78- let N = ((J / 1000) * 25)
7977 if ((I == toString(o.caller)))
8078 then throw("current Owner of NFT not able to purchase")
8179 else if ((o.payments[0].assetId == f))
82- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), M, f), StringEntry((("nft_" + H) + "platform_fee"), toString(N)), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
80+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), J, f), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
8381 else if ((o.payments[0].assetId == unit))
84- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), M, unit), StringEntry((("nft_" + H) + "platform_fee"), toString(N)), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
82+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), J, unit), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
8583 else nil
8684 }
8785
8886
8987
9088 @Callable(o)
91-func cancelSell (O) = {
89+func cancelSell (M) = {
9290 let A = toBase58String(o.transactionId)
9391 let D = o.caller.bytes
94-[StringEntry(((A + O) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(D), 1, fromBase58String(O))]
92+[StringEntry(((A + M) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(D), 1, fromBase58String(M))]
9593 }
9694
9795
9896
9997 @Callable(o)
100-func addAuction (P,Q,R,S,C) = {
98+func addAuction (N,O,P,Q,C) = {
10199 let A = toBase58String(o.transactionId)
102- let O = value(o.payments[0].assetId)
103- let B = value(R)
104- let T = (lastBlock.height + S)
105- let U = o.caller.bytes
106- let V = {
107- let m = getString(this, (((toBase58String(O) + a) + "nft_status_") + toBase58String(U)))
100+ let M = value(o.payments[0].assetId)
101+ let B = value(P)
102+ let R = (lastBlock.height + Q)
103+ let S = o.caller.bytes
104+ let T = {
105+ let m = getString(this, (((toBase58String(M) + a) + "nft_status_") + toBase58String(S)))
108106 if ($isInstanceOf(m, "String"))
109107 then {
110108 let L = m
112110 }
113111 else false
114112 }
115- if ((V == true))
113+ if ((T == true))
116114 then throw("Already in auction list")
117- else if ((S > e))
115+ else if ((Q > e))
118116 then throw(("Duration is too long. Must be less than or equal to 7 " + toString(e)))
119117 else if ((o.payments[0].assetId == unit))
120118 then throw("NFT not attached")
121119 else if ((o.payments[0].assetId == f))
122120 then throw("NFT not attached")
123- else [StringEntry(((A + "nft_start_auction_date") + toBase58String(U)), P), StringEntry(((A + "nft_end_auction_date") + toBase58String(U)), Q), StringEntry((A + "_nft_start_price"), R), StringEntry((A + "_nft_owner"), toString(o.caller)), StringEntry((A + "_nft_on_auction"), toBase58String(O)), StringEntry((A + "_previous_bidder"), "none"), StringEntry((A + "_highest_bid"), "0"), StringEntry((A + "_winner_of_nft"), "0"), StringEntry((A + "_bidder_count"), "0"), StringEntry((A + "_nft_status"), "OPEN")]
121+ else [StringEntry(((A + "nft_start_auction_date") + toBase58String(S)), N), StringEntry(((A + "nft_end_auction_date") + toBase58String(S)), O), StringEntry((A + "_nft_start_price"), P), StringEntry((A + "_nft_owner"), toString(o.caller)), StringEntry((A + "_nft_on_auction"), toBase58String(M)), StringEntry((A + "_previous_bidder"), "none"), StringEntry((A + "_highest_bid"), "0"), StringEntry((A + "_winner_of_nft"), "0"), StringEntry((A + "_bidder_count"), "0"), StringEntry((A + "_nft_status"), "OPEN")]
124122 }
125123
126124
127125
128126 @Callable(o)
129-func placeBid (W,O,q,X,Y) = {
127+func placeBid (U,M,q,V,W) = {
130128 let A = toBase58String(o.transactionId)
131- let U = o.caller.bytes
132- let l = fromBase58String(O)
133- let Z = o.payments[0].amount
134- let aa = getStringValue(this, (W + "_highest_bid"))
135- let ab = getString(this, (W + "_previous_bidder"))
136- let ac = getStringValue(this, (W + "_bidder_count"))
137- let ad = getStringValue(this, (W + "_winner_of_nft"))
138- let V = getStringValue(this, (W + "_nft_status"))
139- if ((V != "OPEN"))
129+ let S = o.caller.bytes
130+ let l = fromBase58String(M)
131+ let X = o.payments[0].amount
132+ let Y = getStringValue(this, (U + "_highest_bid"))
133+ let Z = getString(this, (U + "_previous_bidder"))
134+ let aa = getStringValue(this, (U + "_bidder_count"))
135+ let ab = getStringValue(this, (U + "_winner_of_nft"))
136+ let T = getStringValue(this, (U + "_nft_status"))
137+ if ((T != "OPEN"))
140138 then throw("Not open for auction")
141- else if ((parseIntValue(aa) >= parseIntValue(toString(Z))))
139+ else if ((parseIntValue(Y) >= parseIntValue(toString(X))))
142140 then throw("Bid is less then starting/highest Bid")
143- else if ((aa == "0"))
144- then [StringEntry((W + "_highest_bid"), toString(Z)), StringEntry((W + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((W + "_bidder_count"), toString((parseIntValue(ac) + 1))), StringEntry((W + "_nft_id"), toBase58String(l)), StringEntry((W + "_nft_owner"), q), StringEntry((((A + "_") + W) + "_highest_bid"), toString(Z)), StringEntry((((A + "_") + W) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + W) + "_bidder_count"), toString((parseIntValue(ac) + 1))), StringEntry((((A + "_") + W) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + W) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(U)), StringEntry((A + "_bid_price_place"), X), StringEntry((A + "_previous_bid_amount_refund_to_address"), ad), StringEntry((A + "_prevoius_bid_amount_refund"), aa)]
145- else if ((aa != "0"))
146- then [ScriptTransfer(Address(fromBase58String(ad)), parseIntValue(aa), Y), StringEntry((A + "_previous_bid_amount_refund_to_address"), ad), StringEntry((A + "_prevoius_bid_amount_refund"), aa), StringEntry((W + "_bidder_count"), toString((parseIntValue(ac) + 1))), StringEntry((W + "_highest_bid"), toString(Z)), StringEntry((W + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((W + "_nft_id"), toBase58String(l)), StringEntry((W + "_nft_owner"), q), StringEntry((((A + "_") + W) + "_highest_bid"), toString(Z)), StringEntry((((A + "_") + W) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + W) + "_bidder_count"), toString((parseIntValue(ac) + 1))), StringEntry((((A + "_") + W) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + W) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(U)), StringEntry((A + "_bid_price_place"), X)]
147- else nil
141+ else if ((Y == "0"))
142+ then [StringEntry((U + "_highest_bid"), toString(X)), StringEntry((U + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((U + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((U + "_nft_id"), toBase58String(l)), StringEntry((U + "_nft_owner"), q), StringEntry((((A + "_") + U) + "_highest_bid"), toString(X)), StringEntry((((A + "_") + U) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + U) + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((((A + "_") + U) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + U) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(S)), StringEntry((A + "_bid_price_place"), V), StringEntry((A + "_previous_bid_amount_refund_to_address"), ab), StringEntry((A + "_prevoius_bid_amount_refund"), Y)]
143+ else [StringEntry((U + "_highest_bid"), toString(X)), StringEntry((U + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((U + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((U + "_nft_id"), toBase58String(l)), StringEntry((U + "_nft_owner"), q), StringEntry((((A + "_") + U) + "_highest_bid"), toString(X)), StringEntry((((A + "_") + U) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + U) + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((((A + "_") + U) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + U) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(S)), StringEntry((A + "_bid_price_place"), V), StringEntry((A + "_previous_bid_amount_refund_to_address"), ab), StringEntry((A + "_prevoius_bid_amount_refund"), Y), ScriptTransfer(Address(fromBase58String(ab)), parseIntValue(Y), W)]
148144 }
149145
150146
151147
152148 @Callable(o)
153-func acceptBidOffer (W,O,ae,Y) = {
149+func acceptBidOffer (U,M,ac,W) = {
154150 let A = toBase58String(o.transactionId)
155- let U = o.caller.bytes
156- let l = fromBase58String(O)
157- let af = getStringValue(this, (W + "_highest_bid"))
158- let ag = ((parseIntValue(af) / 1000) * 975)
159- let N = ((parseIntValue(af) / 1000) * 25)
160- let ah = getStringValue(this, (W + "_winner_of_nft"))
161- if ((Y == g))
162- then [ScriptTransfer(Address(U), ag, unit), ScriptTransfer(Address(fromBase58String(ah)), 1, l), StringEntry("platform_fee", toString(N)), StringEntry((A + "_amount_paid_to_owner"), af), StringEntry((A + "_nft_transfer_to"), ah), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((W + "_amount_paid_to_owner"), af), StringEntry((W + "_nft_transfer_to"), ah), StringEntry((W + "_nft_status"), "REWARDED")]
163- else if ((Y == f))
164- then [ScriptTransfer(Address(U), ag, f), ScriptTransfer(Address(fromBase58String(ah)), 1, l), StringEntry("platform_fee", toString(N)), StringEntry((A + "_amount_paid_to_owner"), af), StringEntry((A + "_nft_transfer_to"), ah), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((W + "_amount_paid_to_owner"), af), StringEntry((W + "_nft_transfer_to"), ah), StringEntry((W + "_nft_status"), "REWARDED")]
151+ let S = o.caller.bytes
152+ let l = fromBase58String(M)
153+ let ad = getStringValue(this, (U + "_highest_bid"))
154+ let ae = getStringValue(this, (U + "_winner_of_nft"))
155+ if ((W == g))
156+ then [ScriptTransfer(Address(S), parseIntValue(ad), unit), ScriptTransfer(Address(fromBase58String(ae)), 1, l), StringEntry((A + "_amount_paid_to_owner"), ad), StringEntry((A + "_nft_transfer_to"), ae), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((U + "_amount_paid_to_owner"), ad), StringEntry((U + "_nft_transfer_to"), ae), StringEntry((U + "_nft_status"), "REWARDED")]
157+ else if ((W == f))
158+ then [ScriptTransfer(Address(S), parseIntValue(ad), f), ScriptTransfer(Address(fromBase58String(ae)), 1, l), StringEntry((A + "_amount_paid_to_owner"), ad), StringEntry((A + "_nft_transfer_to"), ae), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((U + "_amount_paid_to_owner"), ad), StringEntry((U + "_nft_transfer_to"), ae), StringEntry((U + "_nft_status"), "REWARDED")]
165159 else nil
166160 }
167161
168162
169163
170164 @Callable(o)
171-func cancelAuction (W,Y) = {
165+func cancelAuction (U,W) = {
172166 let A = toBase58String(o.transactionId)
173- let U = o.caller.bytes
174- let ai = getStringValue(this, (W + "_nft_status"))
175- let aj = getStringValue(this, (W + "_winner_of_nft"))
176- let ak = getStringValue(this, (W + "_nft_owner"))
177- let O = getStringValue(this, (W + "_nft_on_auction"))
178- let al = getStringValue(this, (W + "_highest_bid"))
179- if ((aj == "0"))
180- then [StringEntry(((A + W) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ak)), 1, fromBase58String(O))]
181- else if ((aj != "0"))
182- then throw("soory you can't cancel it because already auction placed by someone")
167+ let S = o.caller.bytes
168+ let af = getStringValue(this, (U + "_nft_status"))
169+ let ag = getStringValue(this, (U + "_winner_of_nft"))
170+ let ah = getStringValue(this, (U + "_nft_owner"))
171+ let M = getStringValue(this, (U + "_nft_on_auction"))
172+ let ai = getStringValue(this, (U + "_highest_bid"))
173+ if ((ag == "0"))
174+ then [StringEntry(((A + U) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ah)), 1, fromBase58String(M))]
175+ else if ((ag != "0"))
176+ then [StringEntry((U + "_nft_status"), "CANCELED"), StringEntry((U + "_previous_bid_amount_refund_to_address"), ag), StringEntry((U + "_prevoius_bid_amount_refund"), ai), StringEntry((A + "_nft_status"), "CANCELED"), StringEntry((A + "_previous_bid_amount_refund_to_address"), ag), StringEntry((A + "_prevoius_bid_amount_refund"), ai), ScriptTransfer(Address(fromBase58String(ah)), 1, fromBase58String(M)), ScriptTransfer(Address(fromBase58String(ag)), parseIntValue(ai), W)]
183177 else nil
184178 }
185179
186180
187181
188182 @Callable(o)
189-func manualFundTransfer (am,an) = {
190- let U = o.caller.bytes
191- let ao = fromBase58String(am)
183+func withdrawBid (aj) = {
184+ let S = o.caller.bytes
185+ let ak = getStringValue(this, (aj + "_highest_bid"))
186+ let al = getStringValue(this, (aj + "_winner"))
187+ let am = getStringValue(this, (aj + "_nft_id"))
188+ if ((toBase58String(S) != al))
189+ then throw("No bid")
190+ else [StringEntry((aj + "_nft_bid"), "WITHDRAW"), StringEntry((aj + "_nft_id"), am), StringEntry((aj + "_bidding_price_refund_amount"), ak), ScriptTransfer(o.caller, parseIntValue(ak), unit)]
191+ }
192+
193+
194+
195+@Callable(o)
196+func manualFundTransfer (an,ao) = {
197+ let S = o.caller.bytes
198+ let ap = fromBase58String(an)
192199 let J = o.payments[0].amount
193- let ap = ((J / 1000) * 975)
194- let N = ((J / 1000) * 25)
195200 if ((o.payments[0].assetId == unit))
196- then [IntegerEntry((toBase58String(U) + "_transfer"), J), StringEntry("platform_fee", toString(N)), StringEntry((toBase58String(U) + "_transfer_to"), am), ScriptTransfer(Address(ao), ap, unit)]
201+ then [IntegerEntry((toBase58String(S) + "_transfer"), J), StringEntry((toBase58String(S) + "_transfer_to"), an), ScriptTransfer(Address(ap), J, unit)]
197202 else if ((o.payments[0].assetId == f))
198- then [IntegerEntry((toBase58String(U) + "_transfer"), J), StringEntry("platform_fee", toString(N)), StringEntry((toBase58String(U) + "_transfer_to"), am), ScriptTransfer(Address(ao), ap, f)]
203+ then [IntegerEntry((toBase58String(S) + "_transfer"), J), StringEntry((toBase58String(S) + "_transfer_to"), an), ScriptTransfer(Address(ap), J, f)]
199204 else nil
200205 }
201206
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "_"
55
66 let b = "buy"
77
88 let c = "price"
99
1010 let d = "sell"
1111
12-let e = 30
12+let e = 7
1313
1414 let f = base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'
1515
1616 let g = base58''
1717
1818 let h = "bid"
1919
2020 let i = $Tuple4("OPEN", "CLOSED", "REWARDED", "CANCELED")
2121
2222 let j = base58'3MvjAaDYHpS4A5K4CV3kZMMEH9m9JdBSvbq'
2323
2424 func k (l) = {
2525 let m = assetInfo(l)
2626 if ($isInstanceOf(m, "Asset"))
2727 then {
2828 let n = m
2929 if (if ((n.decimals == 0))
3030 then (n.quantity == 1)
3131 else false)
3232 then (n.reissuable == false)
3333 else false
3434 }
3535 else false
3636 }
3737
3838
3939 @Callable(o)
4040 func createNft (p,q,r,s,t,u,v,w,x) = {
4141 let y = Issue(p, v, 1, 0, false)
4242 let z = calculateAssetId(y)
4343 let A = o.transactionId
4444 [y, ScriptTransfer(o.caller, 1, z), StringEntry(((toBase58String(z) + a) + "Owner"), toString(o.caller)), StringEntry(((toBase58String(z) + a) + "nft_type"), s), StringEntry(((toBase58String(z) + a) + "nft_tags"), t), StringEntry(((toBase58String(z) + a) + "nft_dAppAddress"), r), IntegerEntry(((toBase58String(z) + a) + "nft_selling_price"), u), StringEntry(((toBase58String(z) + a) + "nft_onSell"), w), StringEntry(((toBase58String(z) + a) + "nft_data"), x), StringEntry(((toBase58String(A) + a) + "issue_nft"), toBase58String(z))]
4545 }
4646
4747
4848
4949 @Callable(o)
5050 func sellNFT (B,C) = {
5151 let A = o.transactionId
5252 let D = o.caller.bytes
5353 let E = $Tuple2(value(o.payments[0].assetId), value(o.payments[0].amount))
5454 let F = E._1
5555 let G = E._2
5656 if (!(k(F)))
5757 then throw("Token is not NFT")
5858 else [StringEntry(((c + a) + toBase58String(value(o.payments[0].assetId))), B), StringEntry(((toString(o.caller) + a) + d), (((toBase58String(F) + a) + toString(G)) + C))]
5959 }
6060
6161
6262
6363 @Callable(o)
6464 func buyNFT (H,I) = {
6565 let l = fromBase58String(H)
6666 let J = value(o.payments[0].amount)
6767 let K = {
6868 let m = getString(this, (("nft_" + I) + "_owner"))
6969 if ($isInstanceOf(m, "String"))
7070 then {
7171 let L = m
7272 L
7373 }
7474 else false
7575 }
7676 let B = getStringValue(((((c + a) + H) + "_") + I))
77- let M = ((J / 1000) * 975)
78- let N = ((J / 1000) * 25)
7977 if ((I == toString(o.caller)))
8078 then throw("current Owner of NFT not able to purchase")
8179 else if ((o.payments[0].assetId == f))
82- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), M, f), StringEntry((("nft_" + H) + "platform_fee"), toString(N)), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
80+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), J, f), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
8381 else if ((o.payments[0].assetId == unit))
84- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), M, unit), StringEntry((("nft_" + H) + "platform_fee"), toString(N)), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
82+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), J, unit), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
8583 else nil
8684 }
8785
8886
8987
9088 @Callable(o)
91-func cancelSell (O) = {
89+func cancelSell (M) = {
9290 let A = toBase58String(o.transactionId)
9391 let D = o.caller.bytes
94-[StringEntry(((A + O) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(D), 1, fromBase58String(O))]
92+[StringEntry(((A + M) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(D), 1, fromBase58String(M))]
9593 }
9694
9795
9896
9997 @Callable(o)
100-func addAuction (P,Q,R,S,C) = {
98+func addAuction (N,O,P,Q,C) = {
10199 let A = toBase58String(o.transactionId)
102- let O = value(o.payments[0].assetId)
103- let B = value(R)
104- let T = (lastBlock.height + S)
105- let U = o.caller.bytes
106- let V = {
107- let m = getString(this, (((toBase58String(O) + a) + "nft_status_") + toBase58String(U)))
100+ let M = value(o.payments[0].assetId)
101+ let B = value(P)
102+ let R = (lastBlock.height + Q)
103+ let S = o.caller.bytes
104+ let T = {
105+ let m = getString(this, (((toBase58String(M) + a) + "nft_status_") + toBase58String(S)))
108106 if ($isInstanceOf(m, "String"))
109107 then {
110108 let L = m
111109 true
112110 }
113111 else false
114112 }
115- if ((V == true))
113+ if ((T == true))
116114 then throw("Already in auction list")
117- else if ((S > e))
115+ else if ((Q > e))
118116 then throw(("Duration is too long. Must be less than or equal to 7 " + toString(e)))
119117 else if ((o.payments[0].assetId == unit))
120118 then throw("NFT not attached")
121119 else if ((o.payments[0].assetId == f))
122120 then throw("NFT not attached")
123- else [StringEntry(((A + "nft_start_auction_date") + toBase58String(U)), P), StringEntry(((A + "nft_end_auction_date") + toBase58String(U)), Q), StringEntry((A + "_nft_start_price"), R), StringEntry((A + "_nft_owner"), toString(o.caller)), StringEntry((A + "_nft_on_auction"), toBase58String(O)), StringEntry((A + "_previous_bidder"), "none"), StringEntry((A + "_highest_bid"), "0"), StringEntry((A + "_winner_of_nft"), "0"), StringEntry((A + "_bidder_count"), "0"), StringEntry((A + "_nft_status"), "OPEN")]
121+ else [StringEntry(((A + "nft_start_auction_date") + toBase58String(S)), N), StringEntry(((A + "nft_end_auction_date") + toBase58String(S)), O), StringEntry((A + "_nft_start_price"), P), StringEntry((A + "_nft_owner"), toString(o.caller)), StringEntry((A + "_nft_on_auction"), toBase58String(M)), StringEntry((A + "_previous_bidder"), "none"), StringEntry((A + "_highest_bid"), "0"), StringEntry((A + "_winner_of_nft"), "0"), StringEntry((A + "_bidder_count"), "0"), StringEntry((A + "_nft_status"), "OPEN")]
124122 }
125123
126124
127125
128126 @Callable(o)
129-func placeBid (W,O,q,X,Y) = {
127+func placeBid (U,M,q,V,W) = {
130128 let A = toBase58String(o.transactionId)
131- let U = o.caller.bytes
132- let l = fromBase58String(O)
133- let Z = o.payments[0].amount
134- let aa = getStringValue(this, (W + "_highest_bid"))
135- let ab = getString(this, (W + "_previous_bidder"))
136- let ac = getStringValue(this, (W + "_bidder_count"))
137- let ad = getStringValue(this, (W + "_winner_of_nft"))
138- let V = getStringValue(this, (W + "_nft_status"))
139- if ((V != "OPEN"))
129+ let S = o.caller.bytes
130+ let l = fromBase58String(M)
131+ let X = o.payments[0].amount
132+ let Y = getStringValue(this, (U + "_highest_bid"))
133+ let Z = getString(this, (U + "_previous_bidder"))
134+ let aa = getStringValue(this, (U + "_bidder_count"))
135+ let ab = getStringValue(this, (U + "_winner_of_nft"))
136+ let T = getStringValue(this, (U + "_nft_status"))
137+ if ((T != "OPEN"))
140138 then throw("Not open for auction")
141- else if ((parseIntValue(aa) >= parseIntValue(toString(Z))))
139+ else if ((parseIntValue(Y) >= parseIntValue(toString(X))))
142140 then throw("Bid is less then starting/highest Bid")
143- else if ((aa == "0"))
144- then [StringEntry((W + "_highest_bid"), toString(Z)), StringEntry((W + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((W + "_bidder_count"), toString((parseIntValue(ac) + 1))), StringEntry((W + "_nft_id"), toBase58String(l)), StringEntry((W + "_nft_owner"), q), StringEntry((((A + "_") + W) + "_highest_bid"), toString(Z)), StringEntry((((A + "_") + W) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + W) + "_bidder_count"), toString((parseIntValue(ac) + 1))), StringEntry((((A + "_") + W) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + W) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(U)), StringEntry((A + "_bid_price_place"), X), StringEntry((A + "_previous_bid_amount_refund_to_address"), ad), StringEntry((A + "_prevoius_bid_amount_refund"), aa)]
145- else if ((aa != "0"))
146- then [ScriptTransfer(Address(fromBase58String(ad)), parseIntValue(aa), Y), StringEntry((A + "_previous_bid_amount_refund_to_address"), ad), StringEntry((A + "_prevoius_bid_amount_refund"), aa), StringEntry((W + "_bidder_count"), toString((parseIntValue(ac) + 1))), StringEntry((W + "_highest_bid"), toString(Z)), StringEntry((W + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((W + "_nft_id"), toBase58String(l)), StringEntry((W + "_nft_owner"), q), StringEntry((((A + "_") + W) + "_highest_bid"), toString(Z)), StringEntry((((A + "_") + W) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + W) + "_bidder_count"), toString((parseIntValue(ac) + 1))), StringEntry((((A + "_") + W) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + W) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(U)), StringEntry((A + "_bid_price_place"), X)]
147- else nil
141+ else if ((Y == "0"))
142+ then [StringEntry((U + "_highest_bid"), toString(X)), StringEntry((U + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((U + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((U + "_nft_id"), toBase58String(l)), StringEntry((U + "_nft_owner"), q), StringEntry((((A + "_") + U) + "_highest_bid"), toString(X)), StringEntry((((A + "_") + U) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + U) + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((((A + "_") + U) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + U) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(S)), StringEntry((A + "_bid_price_place"), V), StringEntry((A + "_previous_bid_amount_refund_to_address"), ab), StringEntry((A + "_prevoius_bid_amount_refund"), Y)]
143+ else [StringEntry((U + "_highest_bid"), toString(X)), StringEntry((U + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((U + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((U + "_nft_id"), toBase58String(l)), StringEntry((U + "_nft_owner"), q), StringEntry((((A + "_") + U) + "_highest_bid"), toString(X)), StringEntry((((A + "_") + U) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + U) + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((((A + "_") + U) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + U) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(S)), StringEntry((A + "_bid_price_place"), V), StringEntry((A + "_previous_bid_amount_refund_to_address"), ab), StringEntry((A + "_prevoius_bid_amount_refund"), Y), ScriptTransfer(Address(fromBase58String(ab)), parseIntValue(Y), W)]
148144 }
149145
150146
151147
152148 @Callable(o)
153-func acceptBidOffer (W,O,ae,Y) = {
149+func acceptBidOffer (U,M,ac,W) = {
154150 let A = toBase58String(o.transactionId)
155- let U = o.caller.bytes
156- let l = fromBase58String(O)
157- let af = getStringValue(this, (W + "_highest_bid"))
158- let ag = ((parseIntValue(af) / 1000) * 975)
159- let N = ((parseIntValue(af) / 1000) * 25)
160- let ah = getStringValue(this, (W + "_winner_of_nft"))
161- if ((Y == g))
162- then [ScriptTransfer(Address(U), ag, unit), ScriptTransfer(Address(fromBase58String(ah)), 1, l), StringEntry("platform_fee", toString(N)), StringEntry((A + "_amount_paid_to_owner"), af), StringEntry((A + "_nft_transfer_to"), ah), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((W + "_amount_paid_to_owner"), af), StringEntry((W + "_nft_transfer_to"), ah), StringEntry((W + "_nft_status"), "REWARDED")]
163- else if ((Y == f))
164- then [ScriptTransfer(Address(U), ag, f), ScriptTransfer(Address(fromBase58String(ah)), 1, l), StringEntry("platform_fee", toString(N)), StringEntry((A + "_amount_paid_to_owner"), af), StringEntry((A + "_nft_transfer_to"), ah), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((W + "_amount_paid_to_owner"), af), StringEntry((W + "_nft_transfer_to"), ah), StringEntry((W + "_nft_status"), "REWARDED")]
151+ let S = o.caller.bytes
152+ let l = fromBase58String(M)
153+ let ad = getStringValue(this, (U + "_highest_bid"))
154+ let ae = getStringValue(this, (U + "_winner_of_nft"))
155+ if ((W == g))
156+ then [ScriptTransfer(Address(S), parseIntValue(ad), unit), ScriptTransfer(Address(fromBase58String(ae)), 1, l), StringEntry((A + "_amount_paid_to_owner"), ad), StringEntry((A + "_nft_transfer_to"), ae), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((U + "_amount_paid_to_owner"), ad), StringEntry((U + "_nft_transfer_to"), ae), StringEntry((U + "_nft_status"), "REWARDED")]
157+ else if ((W == f))
158+ then [ScriptTransfer(Address(S), parseIntValue(ad), f), ScriptTransfer(Address(fromBase58String(ae)), 1, l), StringEntry((A + "_amount_paid_to_owner"), ad), StringEntry((A + "_nft_transfer_to"), ae), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((U + "_amount_paid_to_owner"), ad), StringEntry((U + "_nft_transfer_to"), ae), StringEntry((U + "_nft_status"), "REWARDED")]
165159 else nil
166160 }
167161
168162
169163
170164 @Callable(o)
171-func cancelAuction (W,Y) = {
165+func cancelAuction (U,W) = {
172166 let A = toBase58String(o.transactionId)
173- let U = o.caller.bytes
174- let ai = getStringValue(this, (W + "_nft_status"))
175- let aj = getStringValue(this, (W + "_winner_of_nft"))
176- let ak = getStringValue(this, (W + "_nft_owner"))
177- let O = getStringValue(this, (W + "_nft_on_auction"))
178- let al = getStringValue(this, (W + "_highest_bid"))
179- if ((aj == "0"))
180- then [StringEntry(((A + W) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ak)), 1, fromBase58String(O))]
181- else if ((aj != "0"))
182- then throw("soory you can't cancel it because already auction placed by someone")
167+ let S = o.caller.bytes
168+ let af = getStringValue(this, (U + "_nft_status"))
169+ let ag = getStringValue(this, (U + "_winner_of_nft"))
170+ let ah = getStringValue(this, (U + "_nft_owner"))
171+ let M = getStringValue(this, (U + "_nft_on_auction"))
172+ let ai = getStringValue(this, (U + "_highest_bid"))
173+ if ((ag == "0"))
174+ then [StringEntry(((A + U) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ah)), 1, fromBase58String(M))]
175+ else if ((ag != "0"))
176+ then [StringEntry((U + "_nft_status"), "CANCELED"), StringEntry((U + "_previous_bid_amount_refund_to_address"), ag), StringEntry((U + "_prevoius_bid_amount_refund"), ai), StringEntry((A + "_nft_status"), "CANCELED"), StringEntry((A + "_previous_bid_amount_refund_to_address"), ag), StringEntry((A + "_prevoius_bid_amount_refund"), ai), ScriptTransfer(Address(fromBase58String(ah)), 1, fromBase58String(M)), ScriptTransfer(Address(fromBase58String(ag)), parseIntValue(ai), W)]
183177 else nil
184178 }
185179
186180
187181
188182 @Callable(o)
189-func manualFundTransfer (am,an) = {
190- let U = o.caller.bytes
191- let ao = fromBase58String(am)
183+func withdrawBid (aj) = {
184+ let S = o.caller.bytes
185+ let ak = getStringValue(this, (aj + "_highest_bid"))
186+ let al = getStringValue(this, (aj + "_winner"))
187+ let am = getStringValue(this, (aj + "_nft_id"))
188+ if ((toBase58String(S) != al))
189+ then throw("No bid")
190+ else [StringEntry((aj + "_nft_bid"), "WITHDRAW"), StringEntry((aj + "_nft_id"), am), StringEntry((aj + "_bidding_price_refund_amount"), ak), ScriptTransfer(o.caller, parseIntValue(ak), unit)]
191+ }
192+
193+
194+
195+@Callable(o)
196+func manualFundTransfer (an,ao) = {
197+ let S = o.caller.bytes
198+ let ap = fromBase58String(an)
192199 let J = o.payments[0].amount
193- let ap = ((J / 1000) * 975)
194- let N = ((J / 1000) * 25)
195200 if ((o.payments[0].assetId == unit))
196- then [IntegerEntry((toBase58String(U) + "_transfer"), J), StringEntry("platform_fee", toString(N)), StringEntry((toBase58String(U) + "_transfer_to"), am), ScriptTransfer(Address(ao), ap, unit)]
201+ then [IntegerEntry((toBase58String(S) + "_transfer"), J), StringEntry((toBase58String(S) + "_transfer_to"), an), ScriptTransfer(Address(ap), J, unit)]
197202 else if ((o.payments[0].assetId == f))
198- then [IntegerEntry((toBase58String(U) + "_transfer"), J), StringEntry("platform_fee", toString(N)), StringEntry((toBase58String(U) + "_transfer_to"), am), ScriptTransfer(Address(ao), ap, f)]
203+ then [IntegerEntry((toBase58String(S) + "_transfer"), J), StringEntry((toBase58String(S) + "_transfer_to"), an), ScriptTransfer(Address(ap), J, f)]
199204 else nil
200205 }
201206
202207
203208
204209 @Callable(o)
205210 func testBid (aq) = [StringEntry("E8kkFBYCy44JJaq6pAZ6KizsuResi5UKNhbD1WNZwhhY_highest_bid", "0")]
206211
207212

github/deemru/w8io/169f3d6 
78.04 ms