tx · HwApShjNL2og9EHbpYHEUfQS4aXPjkzvm1YQnfoRWDhh

3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx:  -0.01100000 Waves

2023.01.25 09:11 [2420126] smart account 3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx > SELF 0.00000000 Waves

{ "type": 13, "id": "HwApShjNL2og9EHbpYHEUfQS4aXPjkzvm1YQnfoRWDhh", "fee": 1100000, "feeAssetId": null, "timestamp": 1674627176640, "version": 2, "chainId": 84, "sender": "3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx", "senderPublicKey": "EKZmHJ5bK3qKKgRdq8rAamt9qrDbVMLARzRqXoQW258v", "proofs": [ "5ey7k3j9JJouk6Qo1qvxfNzYL2CCE8cr1UWCvQAYnqowKA21JLdJak79AudSZH5nEW8MVqgFoRZgry2YiyuDJT35" ], "script": "base64:BgJLCAISCwoJCAgICAgBCAgIEgMKAQgSBAoCCAgSAwoBCBIGCgQICAgBEgYKBAgICAgSBQoDCAgBEgMKAQgSAwoBCBIECgIICBIDCgEICwAJc2VwYXJhdG9yAgFfAARrQnV5AgNidXkABmtQcmljZQIFcHJpY2UABWtTZWxsAgRzZWxsABJtYXhBdWN0aW9uRHVyYXRpb24ABwAFdGVhbXMBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+AAV3YXZlcwEAAARrQmlkAgNiaWQADHN0YXR1c0Zvck5GVAkAlgoEAgRPUEVOAgZDTE9TRUQCCFJFV0FSREVEAghDQU5DRUxFRAALZEFwcEFkZHJlc3MBGgFUSrhPbN7C2pPt9I7pSjb41U9/ldVVW12gAQVpc05mdAEHYXNzZXRJZAQHJG1hdGNoMAkA7AcBBQdhc3NldElkAwkAAQIFByRtYXRjaDACBUFzc2V0BAV0b2tlbgUHJG1hdGNoMAMDCQAAAggFBXRva2VuCGRlY2ltYWxzAAAJAAACCAUFdG9rZW4IcXVhbnRpdHkAAQcJAAACCAUFdG9rZW4KcmVpc3N1YWJsZQcHBwsBaQEJY3JlYXRlTmZ0CQhuZnRfbmFtZQluZnRfb3duZXIPbmZ0X2RBcHBBZGRyZXNzCG5mdF90eXBlCG5mdF90YWdzEW5mdF9zZWxsaW5nX3ByaWNlD25mdF9kZXNjcmlwdGlvbgpuZnRfb25TZWxsCG5mdF9kYXRhBAhuZXdUb2tlbgkAwggFBQhuZnRfbmFtZQUPbmZ0X2Rlc2NyaXB0aW9uAAEAAAcEB2lzc3VlSWQJALgIAQUIbmV3VG9rZW4EBHR4SWQIBQFpDXRyYW5zYWN0aW9uSWQJAMwIAgUIbmV3VG9rZW4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2lzc3VlSWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAgVPd25lcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAghuZnRfdHlwZQUIbmZ0X3R5cGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAghuZnRfdGFncwUIbmZ0X3RhZ3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAg9uZnRfZEFwcEFkZHJlc3MFD25mdF9kQXBwQWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAhFuZnRfc2VsbGluZ19wcmljZQURbmZ0X3NlbGxpbmdfcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAgpuZnRfb25TZWxsBQpuZnRfb25TZWxsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIIbmZ0X2RhdGEFCG5mdF9kYXRhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFBHR4SWQFCXNlcGFyYXRvcgIJaXNzdWVfbmZ0CQDYBAEFB2lzc3VlSWQFA25pbAFpAQdzZWxsTkZUAQVwcmljZQQEdHhJZAgFAWkNdHJhbnNhY3Rpb25JZAQGc2VsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAskdDAxODc3MTk2MgkAlAoCCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAZ0b2tlbjAIBQskdDAxODc3MTk2MgJfMQQHYW1vdW50MAgFCyR0MDE4NzcxOTYyAl8yAwkBASEBCQEFaXNOZnQBBQZ0b2tlbjAJAAIBAhBUb2tlbiBpcyBub3QgTkZUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQZrUHJpY2UFCXNlcGFyYXRvcgkA2AQBCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBXByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQVrU2VsbAkArAICCQCsAgIJANgEAQUGdG9rZW4wBQlzZXBhcmF0b3IJAKQDAQUHYW1vdW50MAUDbmlsAWkBBmJ1eU5GVAIFbmZ0SUQRY3VycmVudF9uZnRfb3duZXIEB2Fzc2V0SWQJANkEAQUFbmZ0SUQEBmFtb3VudAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEEGNoZWNrT3duZXJJc1NhbWUEByRtYXRjaDAJAJ0IAgUEdGhpcwkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhBwQFcHJpY2UJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkArAICCQCsAgIJAKwCAgUGa1ByaWNlBQlzZXBhcmF0b3IFBW5mdElEAgFfBRFjdXJyZW50X25mdF9vd25lcgMJAAACBRFjdXJyZW50X25mdF9vd25lcgkApQgBCAUBaQZjYWxsZXIJAAIBAiljdXJyZW50IE93bmVyIG9mIE5GVCBub3QgYWJsZSB0byBwdXJjaGFzZQMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBXRlYW1zCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRFjdXJyZW50X25mdF9vd25lcgUGYW1vdW50BQV0ZWFtcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUEa0J1eQkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3IJAKQDAQUGYW1vdW50CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRFjdXJyZW50X25mdF9vd25lcgUGYW1vdW50BQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwBaQEKY2FuY2VsU2VsbAEFbmZ0SWQEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGc2VsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQR0eElkBQVuZnRJZAILX25mdF9zdGF0dXMCCENBTkNFTEVECQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUGc2VsbGVyAAEJANkEAQUFbmZ0SWQFA25pbAFpAQphZGRBdWN0aW9uBAVzdGFydANlbmQKc3RhcnRQcmljZQhkdXJhdGlvbgQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAVuZnRJZAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAVwcmljZQkBBXZhbHVlAQUKc3RhcnRQcmljZQQJZW5kSGVpZ2h0CQBkAggFCWxhc3RCbG9jawZoZWlnaHQFCGR1cmF0aW9uBAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMEEWNoZWNrTmZ0QXVjdGlvbmVkBAckbWF0Y2gwCQCdCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJANgEAQUFbmZ0SWQFCXNlcGFyYXRvcgILbmZ0X3N0YXR1c18JANgEAQUGY2FsbGVyAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAYHAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkAAgECEE5GVCBub3QgYXR0YWNoZWQDCQAAAgURY2hlY2tOZnRBdWN0aW9uZWQGCQACAQIXQWxyZWFkeSBpbiBhdWN0aW9uIGxpc3QDCQBmAgUIZHVyYXRpb24FEm1heEF1Y3Rpb25EdXJhdGlvbgkAAgEJAKwCAgI2RHVyYXRpb24gaXMgdG9vIGxvbmcuIE11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDcgCQCkAwEFEm1heEF1Y3Rpb25EdXJhdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUEdHhJZAIYX25mdF9zdGFydF9hdWN0aW9uX2RhdGVfCQDYBAEFBmNhbGxlcgUFc3RhcnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQCFl9uZnRfZW5kX2F1Y3Rpb25fZGF0ZV8JANgEAQUGY2FsbGVyBQNlbmQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfbmZ0X3N0YXJ0X3ByaWNlBQpzdGFydFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIKX25mdF9vd25lcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAg9fbmZ0X29uX2F1Y3Rpb24JANgEAQUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfcHJldmlvdXNfYmlkZGVyAgRub25lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIMX2hpZ2hlc3RfYmlkAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIOX3dpbm5lcl9vZl9uZnQCATAJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAg1fYmlkZGVyX2NvdW50AgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAILX25mdF9zdGF0dXMCBE9QRU4FA25pbAFpAQhwbGFjZUJpZAQJYXVjdGlvbklkBW5mdElkCW5mdF9vd25lcgliaWRfcHJpY2UEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAdhc3NldElkCQDZBAEFBW5mdElkBA9jdXJyZW50QmlkUHJpY2UICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BBVnZXRMYXN0V2lubmVyQmlkUHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQEGGdldFByZXZpb3VzQmlkZGVyQWRkcmVzcwkAnQgCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIQX3ByZXZpb3VzX2JpZGRlcgQPY3VycmVudEJpZENvdW50CQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAINX2JpZGRlcl9jb3VudAQUZ2V0TGFzdFdpbm5lckFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAQRY2hlY2tOZnRBdWN0aW9uZWQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkAAgECDFBheSBpbiB3YXZlcwMJAQIhPQIFEWNoZWNrTmZ0QXVjdGlvbmVkAgRPUEVOCQACAQIUTm90IG9wZW4gZm9yIGF1Y3Rpb24DCQBnAgkBDXBhcnNlSW50VmFsdWUBBRVnZXRMYXN0V2lubmVyQmlkUHJpY2UFD2N1cnJlbnRCaWRQcmljZQkAAgECJUJpZCBpcyBsZXNzIHRoZW4gc3RhcnRpbmcvaGlnaGVzdCBCaWQDCQAAAgUVZ2V0TGFzdFdpbm5lckJpZFByaWNlAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkCQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAkApAMBBQ9jdXJyZW50QmlkUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgdfd2lubmVyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIKX25mdF9vd25lcgUJbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX2JpZF9mb3JfbmZ0X2J5CQDYBAEFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9iaWRfcHJpY2VfcGxhY2UFCWJpZF9wcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCJl9wcmV2aW91c19iaWRfYW1vdW50X3JlZnVuZF90b19hZGRyZXNzBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCG19wcmV2b2l1c19iaWRfYW1vdW50X3JlZnVuZAUVZ2V0TGFzdFdpbm5lckJpZFByaWNlBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAkApAMBBQ9jdXJyZW50QmlkUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCDl93aW5uZXJfb2ZfbmZ0CQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCDV9iaWRkZXJfY291bnQJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQUPY3VycmVudEJpZENvdW50AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCB19uZnRfaWQJANgEAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIKX25mdF9vd25lcgUJbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkCQCkAwEFD2N1cnJlbnRCaWRQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCB193aW5uZXIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCDV9iaWRkZXJfY291bnQJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQUPY3VycmVudEJpZENvdW50AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgdfbmZ0X2lkCQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgpfbmZ0X293bmVyBQluZnRfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAg9fYmlkX2Zvcl9uZnRfYnkJANgEAQUGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX2JpZF9wcmljZV9wbGFjZQUJYmlkX3ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAImX3ByZXZpb3VzX2JpZF9hbW91bnRfcmVmdW5kX3RvX2FkZHJlc3MFFGdldExhc3RXaW5uZXJBZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIbX3ByZXZvaXVzX2JpZF9hbW91bnRfcmVmdW5kBRVnZXRMYXN0V2lubmVyQmlkUHJpY2UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFFGdldExhc3RXaW5uZXJBZGRyZXNzCQENcGFyc2VJbnRWYWx1ZQEFFWdldExhc3RXaW5uZXJCaWRQcmljZQUEdW5pdAUDbmlsAWkBDmFjY2VwdEJpZE9mZmVyAwlhdWN0aW9uSWQFbmZ0SWQUYmlkX2Ftb3VudF9mcm9tX3VzZXIEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAdhc3NldElkCQDZBAEFBW5mdElkBBJnZXROZnRXaW5uaW5nUHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQEEGdldEF1Y3Rpb25XaW5uZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFBmNhbGxlcgkBDXBhcnNlSW50VmFsdWUBBRJnZXROZnRXaW5uaW5nUHJpY2UFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEGdldEF1Y3Rpb25XaW5uZXIAAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsAWkBDWNhbmNlbEF1Y3Rpb24BCWF1Y3Rpb25JZAQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMEDWF1Y3Rpb25TdGF0dXMJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwQNYmlkZGluZ1dpbm5lcgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDl93aW5uZXJfb2ZfbmZ0BAhuZnRPd25lcgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIEBW5mdElkCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIPX25mdF9vbl9hdWN0aW9uBAxiaWRkaW5nUHJpY2UJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQDCQAAAgUNYmlkZGluZ1dpbm5lcgIBMAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUEdHhJZAUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwIIQ0FOQ0VMRUQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFCG5mdE93bmVyAAEJANkEAQUFbmZ0SWQFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAILX25mdF9zdGF0dXMCCENBTkNFTEVECQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAiZfcHJldmlvdXNfYmlkX2Ftb3VudF9yZWZ1bmRfdG9fYWRkcmVzcwUNYmlkZGluZ1dpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIbX3ByZXZvaXVzX2JpZF9hbW91bnRfcmVmdW5kBQxiaWRkaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAgtfbmZ0X3N0YXR1cwIIQ0FOQ0VMRUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAiZfcHJldmlvdXNfYmlkX2Ftb3VudF9yZWZ1bmRfdG9fYWRkcmVzcwUNYmlkZGluZ1dpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCG19wcmV2b2l1c19iaWRfYW1vdW50X3JlZnVuZAUMYmlkZGluZ1ByaWNlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQhuZnRPd25lcgABCQDZBAEFBW5mdElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQ1iaWRkaW5nV2lubmVyCQENcGFyc2VJbnRWYWx1ZQEFDGJpZGRpbmdQcmljZQUEdW5pdAUDbmlsAWkBC3dpdGhkcmF3QmlkAQdiaWRUeElkBAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMECGJpZFByaWNlCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFB2JpZFR4SWQCDF9oaWdoZXN0X2JpZAQIYXNCaWRkZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUHYmlkVHhJZAIHX3dpbm5lcgQJYmlkRm9yTkZUCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFB2JpZFR4SWQCB19uZnRfaWQDCQECIT0CCQDYBAEFBmNhbGxlcgUIYXNCaWRkZXIJAAIBAgZObyBiaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQdiaWRUeElkAghfbmZ0X2JpZAIIV0lUSERSQVcJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQdiaWRUeElkAgdfbmZ0X2lkBQliaWRGb3JORlQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQdiaWRUeElkAhxfYmlkZGluZ19wcmljZV9yZWZ1bmRfYW1vdW50BQhiaWRQcmljZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAQ1wYXJzZUludFZhbHVlAQUIYmlkUHJpY2UFBHVuaXQFA25pbAFpARJtYW51YWxGdW5kVHJhbnNmZXICDXJlY2VwaWVudEFkZHIHbWVzc2FnZQQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAdyZWNpdmVyCQDZBAEFDXJlY2VwaWVudEFkZHIEBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQDCQAAAgkApAMBBQZhbW91bnQCAAkAAgECIFBheW1lbnQgaXMgbm90IGF0dGFjaGVkIG9yIGVtcHR5CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJANgEAQUGY2FsbGVyAglfdHJhbnNmZXIFBmFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJANgEAQUGY2FsbGVyAgxfdHJhbnNmZXJfdG8FDXJlY2VwaWVudEFkZHIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQdyZWNpdmVyBQZhbW91bnQFBHVuaXQFA25pbAFpAQd0ZXN0QmlkAQRkYXRhCQDMCAIJAQtTdHJpbmdFbnRyeQICOEU4a2tGQllDeTQ0SkphcTZwQVo2S2l6c3VSZXNpNVVLTmhiRDFXTlp3aGhZX2hpZ2hlc3RfYmlkAgEwBQNuaWwAoSyazQ==", "height": 2420126, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GHSLJEhABYJVt87aVw6vbTsnUMSu3WjjWP7kUR5ZvXJm Next: BxzbhzdRXMKrRciUHTL6KmE4mD97jJ5KbnUYU1cheWL3 Diff:
OldNewDifferences
1111
1212 let e = 7
1313
14-let f = "bid"
14+let f = base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'
1515
16-let g = $Tuple4("OPEN", "CLOSED", "REWARDED", "CANCELED")
16+let g = base58''
1717
18-let h = base58'3MvjAaDYHpS4A5K4CV3kZMMEH9m9JdBSvbq'
18+let h = "bid"
1919
20-func i (j) = {
21- let k = assetInfo(j)
22- if ($isInstanceOf(k, "Asset"))
20+let i = $Tuple4("OPEN", "CLOSED", "REWARDED", "CANCELED")
21+
22+let j = base58'3MvjAaDYHpS4A5K4CV3kZMMEH9m9JdBSvbq'
23+
24+func k (l) = {
25+ let m = assetInfo(l)
26+ if ($isInstanceOf(m, "Asset"))
2327 then {
24- let l = k
25- if (if ((l.decimals == 0))
26- then (l.quantity == 1)
28+ let n = m
29+ if (if ((n.decimals == 0))
30+ then (n.quantity == 1)
2731 else false)
28- then (l.reissuable == false)
32+ then (n.reissuable == false)
2933 else false
3034 }
3135 else false
3236 }
3337
3438
35-@Callable(m)
36-func createNft (n,o,p,q,r,s,t,u,v) = {
37- let w = Issue(n, t, 1, 0, false)
38- let x = calculateAssetId(w)
39- let y = m.transactionId
40-[w, ScriptTransfer(m.caller, 1, x), StringEntry(((toBase58String(x) + a) + "Owner"), toString(m.caller)), StringEntry(((toBase58String(x) + a) + "nft_type"), q), StringEntry(((toBase58String(x) + a) + "nft_tags"), r), StringEntry(((toBase58String(x) + a) + "nft_dAppAddress"), p), IntegerEntry(((toBase58String(x) + a) + "nft_selling_price"), s), StringEntry(((toBase58String(x) + a) + "nft_onSell"), u), StringEntry(((toBase58String(x) + a) + "nft_data"), v), StringEntry(((toBase58String(y) + a) + "issue_nft"), toBase58String(x))]
39+@Callable(o)
40+func createNft (p,q,r,s,t,u,v,w,x) = {
41+ let y = Issue(p, v, 1, 0, false)
42+ let z = calculateAssetId(y)
43+ let A = o.transactionId
44+[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))]
4145 }
4246
4347
4448
45-@Callable(m)
46-func sellNFT (z) = {
47- let y = m.transactionId
48- let A = m.caller.bytes
49- let B = $Tuple2(value(m.payments[0].assetId), value(m.payments[0].amount))
50- let C = B._1
51- let D = B._2
52- if (!(i(C)))
49+@Callable(o)
50+func sellNFT (B) = {
51+ let A = o.transactionId
52+ let C = o.caller.bytes
53+ let D = $Tuple2(value(o.payments[0].assetId), value(o.payments[0].amount))
54+ let E = D._1
55+ let F = D._2
56+ if (!(k(E)))
5357 then throw("Token is not NFT")
54- else [StringEntry(((c + a) + toBase58String(value(m.payments[0].assetId))), z), StringEntry(((toString(m.caller) + a) + d), ((toBase58String(C) + a) + toString(D)))]
58+ else [StringEntry(((c + a) + toBase58String(value(o.payments[0].assetId))), B), StringEntry(((toString(o.caller) + a) + d), ((toBase58String(E) + a) + toString(F)))]
5559 }
5660
5761
5862
59-@Callable(m)
60-func buyNFT (E,F) = {
61- let j = fromBase58String(E)
62- let G = value(m.payments[0].amount)
63- let H = {
64- let k = getString(this, (("nft_" + F) + "_owner"))
65- if ($isInstanceOf(k, "String"))
63+@Callable(o)
64+func buyNFT (G,H) = {
65+ let l = fromBase58String(G)
66+ let I = value(o.payments[0].amount)
67+ let J = {
68+ let m = getString(this, (("nft_" + H) + "_owner"))
69+ if ($isInstanceOf(m, "String"))
6670 then {
67- let I = k
68- I
71+ let K = m
72+ K
6973 }
7074 else false
7175 }
72- let z = getStringValue(((((c + a) + E) + "_") + F))
73- if ((m.payments[0].assetId != unit))
74- then throw("Pay in waves")
75- else if ((F == toString(m.caller)))
76- then throw("current Owner of NFT not able to purchase")
77- else [ScriptTransfer(m.caller, 1, j), ScriptTransfer(Address(fromBase58String(F)), G, unit), StringEntry(((toString(m.caller) + a) + b), ((E + a) + toString(G))), DeleteEntry((("nft_" + F) + "_owner")), StringEntry((("nft_" + F) + "_owner"), toString(m.caller)), StringEntry(((E + a) + "_owner"), toString(m.caller))]
76+ let B = getStringValue(((((c + a) + G) + "_") + H))
77+ if ((H == toString(o.caller)))
78+ then throw("current Owner of NFT not able to purchase")
79+ else if ((o.payments[0].assetId == f))
80+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(H)), I, f), StringEntry(((toString(o.caller) + a) + b), ((G + a) + toString(I))), DeleteEntry((("nft_" + H) + "_owner")), StringEntry((("nft_" + H) + "_owner"), toString(o.caller)), StringEntry(((G + a) + "_owner"), toString(o.caller))]
81+ else [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(H)), I, unit), StringEntry(((toString(o.caller) + a) + b), ((G + a) + toString(I))), DeleteEntry((("nft_" + H) + "_owner")), StringEntry((("nft_" + H) + "_owner"), toString(o.caller)), StringEntry(((G + a) + "_owner"), toString(o.caller))]
7882 }
7983
8084
8185
82-@Callable(m)
83-func addAuction (J,K,L,M) = {
84- let y = toBase58String(m.transactionId)
85- let N = value(m.payments[0].assetId)
86- let z = value(L)
87- let O = (lastBlock.height + M)
88- let P = m.caller.bytes
89- let Q = {
90- let k = getString(this, (((toBase58String(N) + a) + "nft_status_") + toBase58String(P)))
91- if ($isInstanceOf(k, "String"))
86+@Callable(o)
87+func cancelSell (L) = {
88+ let A = toBase58String(o.transactionId)
89+ let C = o.caller.bytes
90+[StringEntry(((A + L) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(C), 1, fromBase58String(L))]
91+ }
92+
93+
94+
95+@Callable(o)
96+func addAuction (M,N,O,P) = {
97+ let A = toBase58String(o.transactionId)
98+ let L = value(o.payments[0].assetId)
99+ let B = value(O)
100+ let Q = (lastBlock.height + P)
101+ let R = o.caller.bytes
102+ let S = {
103+ let m = getString(this, (((toBase58String(L) + a) + "nft_status_") + toBase58String(R)))
104+ if ($isInstanceOf(m, "String"))
92105 then {
93- let I = k
106+ let K = m
94107 true
95108 }
96109 else false
97110 }
98- if ((m.payments[0].assetId == unit))
111+ if ((o.payments[0].assetId == unit))
99112 then throw("NFT not attached")
100- else if ((Q == true))
113+ else if ((S == true))
101114 then throw("Already in auction list")
102- else if ((M > e))
115+ else if ((P > e))
103116 then throw(("Duration is too long. Must be less than or equal to 7 " + toString(e)))
104- else [StringEntry(((y + "_nft_start_auction_date_") + toBase58String(P)), J), StringEntry(((y + "_nft_end_auction_date_") + toBase58String(P)), K), StringEntry((y + "_nft_start_price"), L), StringEntry((y + "_nft_owner"), toString(m.caller)), StringEntry((y + "_nft_on_auction"), toBase58String(N)), StringEntry((y + "_previous_bidder"), "none"), StringEntry((y + "_highest_bid"), "0"), StringEntry((y + "_winner_of_nft"), "0"), StringEntry((y + "_bidder_count"), "0"), StringEntry((y + "_nft_status"), "OPEN")]
117+ else [StringEntry(((A + "_nft_start_auction_date_") + toBase58String(R)), M), StringEntry(((A + "_nft_end_auction_date_") + toBase58String(R)), N), StringEntry((A + "_nft_start_price"), O), StringEntry((A + "_nft_owner"), toString(o.caller)), StringEntry((A + "_nft_on_auction"), toBase58String(L)), 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")]
105118 }
106119
107120
108121
109-@Callable(m)
110-func placeBid (R,N,o,S) = {
111- let y = toBase58String(m.transactionId)
112- let P = m.caller.bytes
113- let j = fromBase58String(N)
114- let T = m.payments[0].amount
115- let U = getStringValue(this, (R + "_highest_bid"))
116- let V = getString(this, (R + "_previous_bidder"))
117- let W = getStringValue(this, (R + "_bidder_count"))
118- let X = getStringValue(this, (R + "_winner_of_nft"))
119- let Q = getStringValue(this, (R + "_nft_status"))
120- if ((m.payments[0].assetId != unit))
122+@Callable(o)
123+func placeBid (T,L,q,U) = {
124+ let A = toBase58String(o.transactionId)
125+ let R = o.caller.bytes
126+ let l = fromBase58String(L)
127+ let V = o.payments[0].amount
128+ let W = getStringValue(this, (T + "_highest_bid"))
129+ let X = getString(this, (T + "_previous_bidder"))
130+ let Y = getStringValue(this, (T + "_bidder_count"))
131+ let Z = getStringValue(this, (T + "_winner_of_nft"))
132+ let S = getStringValue(this, (T + "_nft_status"))
133+ if ((o.payments[0].assetId != unit))
121134 then throw("Pay in waves")
122- else if ((Q != "OPEN"))
135+ else if ((S != "OPEN"))
123136 then throw("Not open for auction")
124- else if ((parseIntValue(U) >= T))
137+ else if ((parseIntValue(W) >= V))
125138 then throw("Bid is less then starting/highest Bid")
126- else if ((U == "0"))
127- then [StringEntry((R + "_highest_bid"), toString(T)), StringEntry((R + "_winner_of_nft"), toBase58String(m.caller.bytes)), StringEntry((R + "_bidder_count"), toString((parseIntValue(W) + 1))), StringEntry((R + "_nft_id"), toBase58String(j)), StringEntry((R + "_nft_owner"), o), StringEntry((((y + "_") + R) + "_highest_bid"), toString(T)), StringEntry((((y + "_") + R) + "_winner"), toBase58String(m.caller.bytes)), StringEntry((((y + "_") + R) + "_bidder_count"), toString((parseIntValue(W) + 1))), StringEntry((((y + "_") + R) + "_nft_id"), toBase58String(j)), StringEntry((((y + "_") + R) + "_nft_owner"), o), StringEntry((y + "_bid_for_nft_by"), toBase58String(P)), StringEntry((y + "_bid_price_place"), S), StringEntry((y + "_previous_bid_amount_refund_to_address"), X), StringEntry((y + "_prevoius_bid_amount_refund"), U)]
128- else [StringEntry((R + "_highest_bid"), toString(T)), StringEntry((R + "_winner_of_nft"), toBase58String(m.caller.bytes)), StringEntry((R + "_bidder_count"), toString((parseIntValue(W) + 1))), StringEntry((R + "_nft_id"), toBase58String(j)), StringEntry((R + "_nft_owner"), o), StringEntry((((y + "_") + R) + "_highest_bid"), toString(T)), StringEntry((((y + "_") + R) + "_winner"), toBase58String(m.caller.bytes)), StringEntry((((y + "_") + R) + "_bidder_count"), toString((parseIntValue(W) + 1))), StringEntry((((y + "_") + R) + "_nft_id"), toBase58String(j)), StringEntry((((y + "_") + R) + "_nft_owner"), o), StringEntry((y + "_bid_for_nft_by"), toBase58String(P)), StringEntry((y + "_bid_price_place"), S), StringEntry((y + "_previous_bid_amount_refund_to_address"), X), StringEntry((y + "_prevoius_bid_amount_refund"), U), ScriptTransfer(Address(fromBase58String(X)), parseIntValue(U), unit)]
139+ else if ((W == "0"))
140+ then [StringEntry((T + "_highest_bid"), toString(V)), StringEntry((T + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((T + "_bidder_count"), toString((parseIntValue(Y) + 1))), StringEntry((T + "_nft_id"), toBase58String(l)), StringEntry((T + "_nft_owner"), q), StringEntry((((A + "_") + T) + "_highest_bid"), toString(V)), StringEntry((((A + "_") + T) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + T) + "_bidder_count"), toString((parseIntValue(Y) + 1))), StringEntry((((A + "_") + T) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + T) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(R)), StringEntry((A + "_bid_price_place"), U), StringEntry((A + "_previous_bid_amount_refund_to_address"), Z), StringEntry((A + "_prevoius_bid_amount_refund"), W)]
141+ else [StringEntry((T + "_highest_bid"), toString(V)), StringEntry((T + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((T + "_bidder_count"), toString((parseIntValue(Y) + 1))), StringEntry((T + "_nft_id"), toBase58String(l)), StringEntry((T + "_nft_owner"), q), StringEntry((((A + "_") + T) + "_highest_bid"), toString(V)), StringEntry((((A + "_") + T) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + T) + "_bidder_count"), toString((parseIntValue(Y) + 1))), StringEntry((((A + "_") + T) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + T) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(R)), StringEntry((A + "_bid_price_place"), U), StringEntry((A + "_previous_bid_amount_refund_to_address"), Z), StringEntry((A + "_prevoius_bid_amount_refund"), W), ScriptTransfer(Address(fromBase58String(Z)), parseIntValue(W), unit)]
129142 }
130143
131144
132145
133-@Callable(m)
134-func acceptBidOffer (R,N,Y) = {
135- let y = toBase58String(m.transactionId)
136- let P = m.caller.bytes
137- let j = fromBase58String(N)
138- let Z = getStringValue(this, (R + "_highest_bid"))
139- let aa = getStringValue(this, (R + "_winner_of_nft"))
140-[ScriptTransfer(Address(P), parseIntValue(Z), unit), ScriptTransfer(Address(fromBase58String(aa)), 1, j), StringEntry((y + "_amount_paid_to_owner"), Z), StringEntry((y + "_nft_transfer_to"), aa), StringEntry((y + "_nft_status"), "REWARDED"), StringEntry((R + "_amount_paid_to_owner"), Z), StringEntry((R + "_nft_transfer_to"), aa), StringEntry((R + "_nft_status"), "REWARDED")]
146+@Callable(o)
147+func acceptBidOffer (T,L,aa) = {
148+ let A = toBase58String(o.transactionId)
149+ let R = o.caller.bytes
150+ let l = fromBase58String(L)
151+ let ab = getStringValue(this, (T + "_highest_bid"))
152+ let ac = getStringValue(this, (T + "_winner_of_nft"))
153+[ScriptTransfer(Address(R), parseIntValue(ab), unit), ScriptTransfer(Address(fromBase58String(ac)), 1, l), StringEntry((A + "_amount_paid_to_owner"), ab), StringEntry((A + "_nft_transfer_to"), ac), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((T + "_amount_paid_to_owner"), ab), StringEntry((T + "_nft_transfer_to"), ac), StringEntry((T + "_nft_status"), "REWARDED")]
141154 }
142155
143156
144157
145-@Callable(m)
146-func cancelAuction (R) = {
147- let y = toBase58String(m.transactionId)
148- let P = m.caller.bytes
149- let ab = getStringValue(this, (R + "_nft_status"))
150- let ac = getStringValue(this, (R + "_winner_of_nft"))
151- let ad = getStringValue(this, (R + "_nft_owner"))
152- let N = getStringValue(this, (R + "_nft_on_auction"))
153- let ae = getStringValue(this, (R + "_highest_bid"))
154- if ((ac == "0"))
155- then [StringEntry(((y + R) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ad)), 1, fromBase58String(N))]
156- else [StringEntry((R + "_nft_status"), "CANCELED"), StringEntry((R + "_previous_bid_amount_refund_to_address"), ac), StringEntry((R + "_prevoius_bid_amount_refund"), ae), StringEntry((y + "_nft_status"), "CANCELED"), StringEntry((y + "_previous_bid_amount_refund_to_address"), ac), StringEntry((y + "_prevoius_bid_amount_refund"), ae), ScriptTransfer(Address(fromBase58String(ad)), 1, fromBase58String(N)), ScriptTransfer(Address(fromBase58String(ac)), parseIntValue(ae), unit)]
158+@Callable(o)
159+func cancelAuction (T) = {
160+ let A = toBase58String(o.transactionId)
161+ let R = o.caller.bytes
162+ let ad = getStringValue(this, (T + "_nft_status"))
163+ let ae = getStringValue(this, (T + "_winner_of_nft"))
164+ let af = getStringValue(this, (T + "_nft_owner"))
165+ let L = getStringValue(this, (T + "_nft_on_auction"))
166+ let ag = getStringValue(this, (T + "_highest_bid"))
167+ if ((ae == "0"))
168+ then [StringEntry(((A + T) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(af)), 1, fromBase58String(L))]
169+ else [StringEntry((T + "_nft_status"), "CANCELED"), StringEntry((T + "_previous_bid_amount_refund_to_address"), ae), StringEntry((T + "_prevoius_bid_amount_refund"), ag), StringEntry((A + "_nft_status"), "CANCELED"), StringEntry((A + "_previous_bid_amount_refund_to_address"), ae), StringEntry((A + "_prevoius_bid_amount_refund"), ag), ScriptTransfer(Address(fromBase58String(af)), 1, fromBase58String(L)), ScriptTransfer(Address(fromBase58String(ae)), parseIntValue(ag), unit)]
157170 }
158171
159172
160173
161-@Callable(m)
162-func withdrawBid (af) = {
163- let P = m.caller.bytes
164- let ag = getStringValue(this, (af + "_highest_bid"))
165- let ah = getStringValue(this, (af + "_winner"))
166- let ai = getStringValue(this, (af + "_nft_id"))
167- if ((toBase58String(P) != ah))
174+@Callable(o)
175+func withdrawBid (ah) = {
176+ let R = o.caller.bytes
177+ let ai = getStringValue(this, (ah + "_highest_bid"))
178+ let aj = getStringValue(this, (ah + "_winner"))
179+ let ak = getStringValue(this, (ah + "_nft_id"))
180+ if ((toBase58String(R) != aj))
168181 then throw("No bid")
169- else [StringEntry((af + "_nft_bid"), "WITHDRAW"), StringEntry((af + "_nft_id"), ai), StringEntry((af + "_bidding_price_refund_amount"), ag), ScriptTransfer(m.caller, parseIntValue(ag), unit)]
182+ else [StringEntry((ah + "_nft_bid"), "WITHDRAW"), StringEntry((ah + "_nft_id"), ak), StringEntry((ah + "_bidding_price_refund_amount"), ai), ScriptTransfer(o.caller, parseIntValue(ai), unit)]
170183 }
171184
172185
173186
174-@Callable(m)
175-func manualFundTransfer (aj,ak) = {
176- let P = m.caller.bytes
177- let al = fromBase58String(aj)
178- let G = m.payments[0].amount
179- if ((toString(G) == ""))
187+@Callable(o)
188+func manualFundTransfer (al,am) = {
189+ let R = o.caller.bytes
190+ let an = fromBase58String(al)
191+ let I = o.payments[0].amount
192+ if ((toString(I) == ""))
180193 then throw("Payment is not attached or empty")
181- else [IntegerEntry((toBase58String(P) + "_transfer"), G), StringEntry((toBase58String(P) + "_transfer_to"), aj), ScriptTransfer(Address(al), G, unit)]
194+ else [IntegerEntry((toBase58String(R) + "_transfer"), I), StringEntry((toBase58String(R) + "_transfer_to"), al), ScriptTransfer(Address(an), I, unit)]
182195 }
183196
184197
185198
186-@Callable(m)
187-func testBid (am) = [StringEntry("E8kkFBYCy44JJaq6pAZ6KizsuResi5UKNhbD1WNZwhhY_highest_bid", "0")]
199+@Callable(o)
200+func testBid (ao) = [StringEntry("E8kkFBYCy44JJaq6pAZ6KizsuResi5UKNhbD1WNZwhhY_highest_bid", "0")]
188201
189202
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
1212 let e = 7
1313
14-let f = "bid"
14+let f = base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'
1515
16-let g = $Tuple4("OPEN", "CLOSED", "REWARDED", "CANCELED")
16+let g = base58''
1717
18-let h = base58'3MvjAaDYHpS4A5K4CV3kZMMEH9m9JdBSvbq'
18+let h = "bid"
1919
20-func i (j) = {
21- let k = assetInfo(j)
22- if ($isInstanceOf(k, "Asset"))
20+let i = $Tuple4("OPEN", "CLOSED", "REWARDED", "CANCELED")
21+
22+let j = base58'3MvjAaDYHpS4A5K4CV3kZMMEH9m9JdBSvbq'
23+
24+func k (l) = {
25+ let m = assetInfo(l)
26+ if ($isInstanceOf(m, "Asset"))
2327 then {
24- let l = k
25- if (if ((l.decimals == 0))
26- then (l.quantity == 1)
28+ let n = m
29+ if (if ((n.decimals == 0))
30+ then (n.quantity == 1)
2731 else false)
28- then (l.reissuable == false)
32+ then (n.reissuable == false)
2933 else false
3034 }
3135 else false
3236 }
3337
3438
35-@Callable(m)
36-func createNft (n,o,p,q,r,s,t,u,v) = {
37- let w = Issue(n, t, 1, 0, false)
38- let x = calculateAssetId(w)
39- let y = m.transactionId
40-[w, ScriptTransfer(m.caller, 1, x), StringEntry(((toBase58String(x) + a) + "Owner"), toString(m.caller)), StringEntry(((toBase58String(x) + a) + "nft_type"), q), StringEntry(((toBase58String(x) + a) + "nft_tags"), r), StringEntry(((toBase58String(x) + a) + "nft_dAppAddress"), p), IntegerEntry(((toBase58String(x) + a) + "nft_selling_price"), s), StringEntry(((toBase58String(x) + a) + "nft_onSell"), u), StringEntry(((toBase58String(x) + a) + "nft_data"), v), StringEntry(((toBase58String(y) + a) + "issue_nft"), toBase58String(x))]
39+@Callable(o)
40+func createNft (p,q,r,s,t,u,v,w,x) = {
41+ let y = Issue(p, v, 1, 0, false)
42+ let z = calculateAssetId(y)
43+ let A = o.transactionId
44+[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))]
4145 }
4246
4347
4448
45-@Callable(m)
46-func sellNFT (z) = {
47- let y = m.transactionId
48- let A = m.caller.bytes
49- let B = $Tuple2(value(m.payments[0].assetId), value(m.payments[0].amount))
50- let C = B._1
51- let D = B._2
52- if (!(i(C)))
49+@Callable(o)
50+func sellNFT (B) = {
51+ let A = o.transactionId
52+ let C = o.caller.bytes
53+ let D = $Tuple2(value(o.payments[0].assetId), value(o.payments[0].amount))
54+ let E = D._1
55+ let F = D._2
56+ if (!(k(E)))
5357 then throw("Token is not NFT")
54- else [StringEntry(((c + a) + toBase58String(value(m.payments[0].assetId))), z), StringEntry(((toString(m.caller) + a) + d), ((toBase58String(C) + a) + toString(D)))]
58+ else [StringEntry(((c + a) + toBase58String(value(o.payments[0].assetId))), B), StringEntry(((toString(o.caller) + a) + d), ((toBase58String(E) + a) + toString(F)))]
5559 }
5660
5761
5862
59-@Callable(m)
60-func buyNFT (E,F) = {
61- let j = fromBase58String(E)
62- let G = value(m.payments[0].amount)
63- let H = {
64- let k = getString(this, (("nft_" + F) + "_owner"))
65- if ($isInstanceOf(k, "String"))
63+@Callable(o)
64+func buyNFT (G,H) = {
65+ let l = fromBase58String(G)
66+ let I = value(o.payments[0].amount)
67+ let J = {
68+ let m = getString(this, (("nft_" + H) + "_owner"))
69+ if ($isInstanceOf(m, "String"))
6670 then {
67- let I = k
68- I
71+ let K = m
72+ K
6973 }
7074 else false
7175 }
72- let z = getStringValue(((((c + a) + E) + "_") + F))
73- if ((m.payments[0].assetId != unit))
74- then throw("Pay in waves")
75- else if ((F == toString(m.caller)))
76- then throw("current Owner of NFT not able to purchase")
77- else [ScriptTransfer(m.caller, 1, j), ScriptTransfer(Address(fromBase58String(F)), G, unit), StringEntry(((toString(m.caller) + a) + b), ((E + a) + toString(G))), DeleteEntry((("nft_" + F) + "_owner")), StringEntry((("nft_" + F) + "_owner"), toString(m.caller)), StringEntry(((E + a) + "_owner"), toString(m.caller))]
76+ let B = getStringValue(((((c + a) + G) + "_") + H))
77+ if ((H == toString(o.caller)))
78+ then throw("current Owner of NFT not able to purchase")
79+ else if ((o.payments[0].assetId == f))
80+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(H)), I, f), StringEntry(((toString(o.caller) + a) + b), ((G + a) + toString(I))), DeleteEntry((("nft_" + H) + "_owner")), StringEntry((("nft_" + H) + "_owner"), toString(o.caller)), StringEntry(((G + a) + "_owner"), toString(o.caller))]
81+ else [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(H)), I, unit), StringEntry(((toString(o.caller) + a) + b), ((G + a) + toString(I))), DeleteEntry((("nft_" + H) + "_owner")), StringEntry((("nft_" + H) + "_owner"), toString(o.caller)), StringEntry(((G + a) + "_owner"), toString(o.caller))]
7882 }
7983
8084
8185
82-@Callable(m)
83-func addAuction (J,K,L,M) = {
84- let y = toBase58String(m.transactionId)
85- let N = value(m.payments[0].assetId)
86- let z = value(L)
87- let O = (lastBlock.height + M)
88- let P = m.caller.bytes
89- let Q = {
90- let k = getString(this, (((toBase58String(N) + a) + "nft_status_") + toBase58String(P)))
91- if ($isInstanceOf(k, "String"))
86+@Callable(o)
87+func cancelSell (L) = {
88+ let A = toBase58String(o.transactionId)
89+ let C = o.caller.bytes
90+[StringEntry(((A + L) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(C), 1, fromBase58String(L))]
91+ }
92+
93+
94+
95+@Callable(o)
96+func addAuction (M,N,O,P) = {
97+ let A = toBase58String(o.transactionId)
98+ let L = value(o.payments[0].assetId)
99+ let B = value(O)
100+ let Q = (lastBlock.height + P)
101+ let R = o.caller.bytes
102+ let S = {
103+ let m = getString(this, (((toBase58String(L) + a) + "nft_status_") + toBase58String(R)))
104+ if ($isInstanceOf(m, "String"))
92105 then {
93- let I = k
106+ let K = m
94107 true
95108 }
96109 else false
97110 }
98- if ((m.payments[0].assetId == unit))
111+ if ((o.payments[0].assetId == unit))
99112 then throw("NFT not attached")
100- else if ((Q == true))
113+ else if ((S == true))
101114 then throw("Already in auction list")
102- else if ((M > e))
115+ else if ((P > e))
103116 then throw(("Duration is too long. Must be less than or equal to 7 " + toString(e)))
104- else [StringEntry(((y + "_nft_start_auction_date_") + toBase58String(P)), J), StringEntry(((y + "_nft_end_auction_date_") + toBase58String(P)), K), StringEntry((y + "_nft_start_price"), L), StringEntry((y + "_nft_owner"), toString(m.caller)), StringEntry((y + "_nft_on_auction"), toBase58String(N)), StringEntry((y + "_previous_bidder"), "none"), StringEntry((y + "_highest_bid"), "0"), StringEntry((y + "_winner_of_nft"), "0"), StringEntry((y + "_bidder_count"), "0"), StringEntry((y + "_nft_status"), "OPEN")]
117+ else [StringEntry(((A + "_nft_start_auction_date_") + toBase58String(R)), M), StringEntry(((A + "_nft_end_auction_date_") + toBase58String(R)), N), StringEntry((A + "_nft_start_price"), O), StringEntry((A + "_nft_owner"), toString(o.caller)), StringEntry((A + "_nft_on_auction"), toBase58String(L)), 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")]
105118 }
106119
107120
108121
109-@Callable(m)
110-func placeBid (R,N,o,S) = {
111- let y = toBase58String(m.transactionId)
112- let P = m.caller.bytes
113- let j = fromBase58String(N)
114- let T = m.payments[0].amount
115- let U = getStringValue(this, (R + "_highest_bid"))
116- let V = getString(this, (R + "_previous_bidder"))
117- let W = getStringValue(this, (R + "_bidder_count"))
118- let X = getStringValue(this, (R + "_winner_of_nft"))
119- let Q = getStringValue(this, (R + "_nft_status"))
120- if ((m.payments[0].assetId != unit))
122+@Callable(o)
123+func placeBid (T,L,q,U) = {
124+ let A = toBase58String(o.transactionId)
125+ let R = o.caller.bytes
126+ let l = fromBase58String(L)
127+ let V = o.payments[0].amount
128+ let W = getStringValue(this, (T + "_highest_bid"))
129+ let X = getString(this, (T + "_previous_bidder"))
130+ let Y = getStringValue(this, (T + "_bidder_count"))
131+ let Z = getStringValue(this, (T + "_winner_of_nft"))
132+ let S = getStringValue(this, (T + "_nft_status"))
133+ if ((o.payments[0].assetId != unit))
121134 then throw("Pay in waves")
122- else if ((Q != "OPEN"))
135+ else if ((S != "OPEN"))
123136 then throw("Not open for auction")
124- else if ((parseIntValue(U) >= T))
137+ else if ((parseIntValue(W) >= V))
125138 then throw("Bid is less then starting/highest Bid")
126- else if ((U == "0"))
127- then [StringEntry((R + "_highest_bid"), toString(T)), StringEntry((R + "_winner_of_nft"), toBase58String(m.caller.bytes)), StringEntry((R + "_bidder_count"), toString((parseIntValue(W) + 1))), StringEntry((R + "_nft_id"), toBase58String(j)), StringEntry((R + "_nft_owner"), o), StringEntry((((y + "_") + R) + "_highest_bid"), toString(T)), StringEntry((((y + "_") + R) + "_winner"), toBase58String(m.caller.bytes)), StringEntry((((y + "_") + R) + "_bidder_count"), toString((parseIntValue(W) + 1))), StringEntry((((y + "_") + R) + "_nft_id"), toBase58String(j)), StringEntry((((y + "_") + R) + "_nft_owner"), o), StringEntry((y + "_bid_for_nft_by"), toBase58String(P)), StringEntry((y + "_bid_price_place"), S), StringEntry((y + "_previous_bid_amount_refund_to_address"), X), StringEntry((y + "_prevoius_bid_amount_refund"), U)]
128- else [StringEntry((R + "_highest_bid"), toString(T)), StringEntry((R + "_winner_of_nft"), toBase58String(m.caller.bytes)), StringEntry((R + "_bidder_count"), toString((parseIntValue(W) + 1))), StringEntry((R + "_nft_id"), toBase58String(j)), StringEntry((R + "_nft_owner"), o), StringEntry((((y + "_") + R) + "_highest_bid"), toString(T)), StringEntry((((y + "_") + R) + "_winner"), toBase58String(m.caller.bytes)), StringEntry((((y + "_") + R) + "_bidder_count"), toString((parseIntValue(W) + 1))), StringEntry((((y + "_") + R) + "_nft_id"), toBase58String(j)), StringEntry((((y + "_") + R) + "_nft_owner"), o), StringEntry((y + "_bid_for_nft_by"), toBase58String(P)), StringEntry((y + "_bid_price_place"), S), StringEntry((y + "_previous_bid_amount_refund_to_address"), X), StringEntry((y + "_prevoius_bid_amount_refund"), U), ScriptTransfer(Address(fromBase58String(X)), parseIntValue(U), unit)]
139+ else if ((W == "0"))
140+ then [StringEntry((T + "_highest_bid"), toString(V)), StringEntry((T + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((T + "_bidder_count"), toString((parseIntValue(Y) + 1))), StringEntry((T + "_nft_id"), toBase58String(l)), StringEntry((T + "_nft_owner"), q), StringEntry((((A + "_") + T) + "_highest_bid"), toString(V)), StringEntry((((A + "_") + T) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + T) + "_bidder_count"), toString((parseIntValue(Y) + 1))), StringEntry((((A + "_") + T) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + T) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(R)), StringEntry((A + "_bid_price_place"), U), StringEntry((A + "_previous_bid_amount_refund_to_address"), Z), StringEntry((A + "_prevoius_bid_amount_refund"), W)]
141+ else [StringEntry((T + "_highest_bid"), toString(V)), StringEntry((T + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((T + "_bidder_count"), toString((parseIntValue(Y) + 1))), StringEntry((T + "_nft_id"), toBase58String(l)), StringEntry((T + "_nft_owner"), q), StringEntry((((A + "_") + T) + "_highest_bid"), toString(V)), StringEntry((((A + "_") + T) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + T) + "_bidder_count"), toString((parseIntValue(Y) + 1))), StringEntry((((A + "_") + T) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + T) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(R)), StringEntry((A + "_bid_price_place"), U), StringEntry((A + "_previous_bid_amount_refund_to_address"), Z), StringEntry((A + "_prevoius_bid_amount_refund"), W), ScriptTransfer(Address(fromBase58String(Z)), parseIntValue(W), unit)]
129142 }
130143
131144
132145
133-@Callable(m)
134-func acceptBidOffer (R,N,Y) = {
135- let y = toBase58String(m.transactionId)
136- let P = m.caller.bytes
137- let j = fromBase58String(N)
138- let Z = getStringValue(this, (R + "_highest_bid"))
139- let aa = getStringValue(this, (R + "_winner_of_nft"))
140-[ScriptTransfer(Address(P), parseIntValue(Z), unit), ScriptTransfer(Address(fromBase58String(aa)), 1, j), StringEntry((y + "_amount_paid_to_owner"), Z), StringEntry((y + "_nft_transfer_to"), aa), StringEntry((y + "_nft_status"), "REWARDED"), StringEntry((R + "_amount_paid_to_owner"), Z), StringEntry((R + "_nft_transfer_to"), aa), StringEntry((R + "_nft_status"), "REWARDED")]
146+@Callable(o)
147+func acceptBidOffer (T,L,aa) = {
148+ let A = toBase58String(o.transactionId)
149+ let R = o.caller.bytes
150+ let l = fromBase58String(L)
151+ let ab = getStringValue(this, (T + "_highest_bid"))
152+ let ac = getStringValue(this, (T + "_winner_of_nft"))
153+[ScriptTransfer(Address(R), parseIntValue(ab), unit), ScriptTransfer(Address(fromBase58String(ac)), 1, l), StringEntry((A + "_amount_paid_to_owner"), ab), StringEntry((A + "_nft_transfer_to"), ac), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((T + "_amount_paid_to_owner"), ab), StringEntry((T + "_nft_transfer_to"), ac), StringEntry((T + "_nft_status"), "REWARDED")]
141154 }
142155
143156
144157
145-@Callable(m)
146-func cancelAuction (R) = {
147- let y = toBase58String(m.transactionId)
148- let P = m.caller.bytes
149- let ab = getStringValue(this, (R + "_nft_status"))
150- let ac = getStringValue(this, (R + "_winner_of_nft"))
151- let ad = getStringValue(this, (R + "_nft_owner"))
152- let N = getStringValue(this, (R + "_nft_on_auction"))
153- let ae = getStringValue(this, (R + "_highest_bid"))
154- if ((ac == "0"))
155- then [StringEntry(((y + R) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ad)), 1, fromBase58String(N))]
156- else [StringEntry((R + "_nft_status"), "CANCELED"), StringEntry((R + "_previous_bid_amount_refund_to_address"), ac), StringEntry((R + "_prevoius_bid_amount_refund"), ae), StringEntry((y + "_nft_status"), "CANCELED"), StringEntry((y + "_previous_bid_amount_refund_to_address"), ac), StringEntry((y + "_prevoius_bid_amount_refund"), ae), ScriptTransfer(Address(fromBase58String(ad)), 1, fromBase58String(N)), ScriptTransfer(Address(fromBase58String(ac)), parseIntValue(ae), unit)]
158+@Callable(o)
159+func cancelAuction (T) = {
160+ let A = toBase58String(o.transactionId)
161+ let R = o.caller.bytes
162+ let ad = getStringValue(this, (T + "_nft_status"))
163+ let ae = getStringValue(this, (T + "_winner_of_nft"))
164+ let af = getStringValue(this, (T + "_nft_owner"))
165+ let L = getStringValue(this, (T + "_nft_on_auction"))
166+ let ag = getStringValue(this, (T + "_highest_bid"))
167+ if ((ae == "0"))
168+ then [StringEntry(((A + T) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(af)), 1, fromBase58String(L))]
169+ else [StringEntry((T + "_nft_status"), "CANCELED"), StringEntry((T + "_previous_bid_amount_refund_to_address"), ae), StringEntry((T + "_prevoius_bid_amount_refund"), ag), StringEntry((A + "_nft_status"), "CANCELED"), StringEntry((A + "_previous_bid_amount_refund_to_address"), ae), StringEntry((A + "_prevoius_bid_amount_refund"), ag), ScriptTransfer(Address(fromBase58String(af)), 1, fromBase58String(L)), ScriptTransfer(Address(fromBase58String(ae)), parseIntValue(ag), unit)]
157170 }
158171
159172
160173
161-@Callable(m)
162-func withdrawBid (af) = {
163- let P = m.caller.bytes
164- let ag = getStringValue(this, (af + "_highest_bid"))
165- let ah = getStringValue(this, (af + "_winner"))
166- let ai = getStringValue(this, (af + "_nft_id"))
167- if ((toBase58String(P) != ah))
174+@Callable(o)
175+func withdrawBid (ah) = {
176+ let R = o.caller.bytes
177+ let ai = getStringValue(this, (ah + "_highest_bid"))
178+ let aj = getStringValue(this, (ah + "_winner"))
179+ let ak = getStringValue(this, (ah + "_nft_id"))
180+ if ((toBase58String(R) != aj))
168181 then throw("No bid")
169- else [StringEntry((af + "_nft_bid"), "WITHDRAW"), StringEntry((af + "_nft_id"), ai), StringEntry((af + "_bidding_price_refund_amount"), ag), ScriptTransfer(m.caller, parseIntValue(ag), unit)]
182+ else [StringEntry((ah + "_nft_bid"), "WITHDRAW"), StringEntry((ah + "_nft_id"), ak), StringEntry((ah + "_bidding_price_refund_amount"), ai), ScriptTransfer(o.caller, parseIntValue(ai), unit)]
170183 }
171184
172185
173186
174-@Callable(m)
175-func manualFundTransfer (aj,ak) = {
176- let P = m.caller.bytes
177- let al = fromBase58String(aj)
178- let G = m.payments[0].amount
179- if ((toString(G) == ""))
187+@Callable(o)
188+func manualFundTransfer (al,am) = {
189+ let R = o.caller.bytes
190+ let an = fromBase58String(al)
191+ let I = o.payments[0].amount
192+ if ((toString(I) == ""))
180193 then throw("Payment is not attached or empty")
181- else [IntegerEntry((toBase58String(P) + "_transfer"), G), StringEntry((toBase58String(P) + "_transfer_to"), aj), ScriptTransfer(Address(al), G, unit)]
194+ else [IntegerEntry((toBase58String(R) + "_transfer"), I), StringEntry((toBase58String(R) + "_transfer_to"), al), ScriptTransfer(Address(an), I, unit)]
182195 }
183196
184197
185198
186-@Callable(m)
187-func testBid (am) = [StringEntry("E8kkFBYCy44JJaq6pAZ6KizsuResi5UKNhbD1WNZwhhY_highest_bid", "0")]
199+@Callable(o)
200+func testBid (ao) = [StringEntry("E8kkFBYCy44JJaq6pAZ6KizsuResi5UKNhbD1WNZwhhY_highest_bid", "0")]
188201
189202

github/deemru/w8io/873ac7e 
166.37 ms