tx · 4MnYe91jp6gPxSSBp9xtJXK9gRavLWPKpLBnK5kD3dSi

3NBYw8rxLmTvyEdsvaYor8nHG6GJ4NjB2Aw:  -0.01200000 Waves

2023.02.11 11:57 [2444746] smart account 3NBYw8rxLmTvyEdsvaYor8nHG6GJ4NjB2Aw > SELF 0.00000000 Waves

{ "type": 13, "id": "4MnYe91jp6gPxSSBp9xtJXK9gRavLWPKpLBnK5kD3dSi", "fee": 1200000, "feeAssetId": null, "timestamp": 1676105944532, "version": 2, "chainId": 84, "sender": "3NBYw8rxLmTvyEdsvaYor8nHG6GJ4NjB2Aw", "senderPublicKey": "4NDsd3dGKXuKLCoSbYvcWCX276K9ShP75cs9HTBMLJEN", "proofs": [ "67gbQMitXYGLf3wpWygmXWJbkCn1FHtPVnTNDWCENsTkeEYCXvhZKcS7uZwB7ZhRo2pBfnH6DTzHtnh63mkt7EWc" ], "script": "base64:BgJLCAISCwoJCAgICAgBCAgIEgQKAggIEgQKAggIEgMKAQgSBwoFCAgIAQISBwoFCAgICAISBgoECAgIAhIECgIIAhIECgIICBIDCgEICwAJc2VwYXJhdG9yAgFfAARrQnV5AgNidXkABmtQcmljZQIFcHJpY2UABWtTZWxsAgRzZWxsABJtYXhBdWN0aW9uRHVyYXRpb24AHgAFdGVhbXMBIIVjlaPziI6w3gwXjghOv5o/krsm2zrodo4W3BQiKkh+AAVXQVZFUwEAAARrQmlkAgNiaWQADHN0YXR1c0Zvck5GVAkAlgoEAgRPUEVOAgZDTE9TRUQCCFJFV0FSREVEAghDQU5DRUxFRAALZEFwcEFkZHJlc3MBGgFUSrhPbN7C2pPt9I7pSjb41U9/ldVVW12gAQVpc05mdAEHYXNzZXRJZAQHJG1hdGNoMAkA7AcBBQdhc3NldElkAwkAAQIFByRtYXRjaDACBUFzc2V0BAV0b2tlbgUHJG1hdGNoMAMDCQAAAggFBXRva2VuCGRlY2ltYWxzAAAJAAACCAUFdG9rZW4IcXVhbnRpdHkAAQcJAAACCAUFdG9rZW4KcmVpc3N1YWJsZQcHBwoBaQEJY3JlYXRlTmZ0CQhuZnRfbmFtZQluZnRfb3duZXIPbmZ0X2RBcHBBZGRyZXNzCG5mdF90eXBlCG5mdF90YWdzEW5mdF9zZWxsaW5nX3ByaWNlD25mdF9kZXNjcmlwdGlvbgpuZnRfb25TZWxsCG5mdF9kYXRhBAhuZXdUb2tlbgkAwggFBQhuZnRfbmFtZQUPbmZ0X2Rlc2NyaXB0aW9uAAEAAAcEB2lzc3VlSWQJALgIAQUIbmV3VG9rZW4EBHR4SWQIBQFpDXRyYW5zYWN0aW9uSWQJAMwIAgUIbmV3VG9rZW4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2lzc3VlSWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAgVPd25lcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAghuZnRfdHlwZQUIbmZ0X3R5cGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAghuZnRfdGFncwUIbmZ0X3RhZ3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAg9uZnRfZEFwcEFkZHJlc3MFD25mdF9kQXBwQWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAhFuZnRfc2VsbGluZ19wcmljZQURbmZ0X3NlbGxpbmdfcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAgpuZnRfb25TZWxsBQpuZnRfb25TZWxsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIIbmZ0X2RhdGEFCG5mdF9kYXRhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFBHR4SWQFCXNlcGFyYXRvcgIJaXNzdWVfbmZ0CQDYBAEFB2lzc3VlSWQFA25pbAFpAQdzZWxsTkZUAgVwcmljZRBwYXltZW50X2N1cnJlbmN5BAR0eElkCAUBaQ10cmFuc2FjdGlvbklkBAZzZWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMECyR0MDE5MDExOTg2CQCUCgIJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEBnRva2VuMAgFCyR0MDE5MDExOTg2Al8xBAdhbW91bnQwCAULJHQwMTkwMTE5ODYCXzIDCQEBIQEJAQVpc05mdAEFBnRva2VuMAkAAgECEFRva2VuIGlzIG5vdCBORlQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBmtQcmljZQUJc2VwYXJhdG9yCQDYBAEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQlzZXBhcmF0b3IFBWtTZWxsCQCsAgIJAKwCAgkArAICCQDYBAEFBnRva2VuMAUJc2VwYXJhdG9yCQCkAwEFB2Ftb3VudDAFEHBheW1lbnRfY3VycmVuY3kFA25pbAFpAQZidXlORlQCBW5mdElEEWN1cnJlbnRfbmZ0X293bmVyBAdhc3NldElkCQDZBAEFBW5mdElEBAZhbW91bnQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BBBjaGVja093bmVySXNTYW1lBAckbWF0Y2gwCQCdCAIFBHRoaXMJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQcEBXByaWNlCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAKwCAgkArAICCQCsAgIFBmtQcmljZQUJc2VwYXJhdG9yBQVuZnRJRAIBXwURY3VycmVudF9uZnRfb3duZXIEDXNlbGxlcl9hbW91bnQJAGgCCQBpAgUGYW1vdW50AOgHAM8HBAxwbGF0Zm9ybV9mZWUJAGgCCQBpAgUGYW1vdW50AOgHABkDCQAAAgURY3VycmVudF9uZnRfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQACAQIpY3VycmVudCBPd25lciBvZiBORlQgbm90IGFibGUgdG8gcHVyY2hhc2UDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQV0ZWFtcwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQURY3VycmVudF9uZnRfb3duZXIFDXNlbGxlcl9hbW91bnQFBXRlYW1zCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBQVuZnRJRAIMcGxhdGZvcm1fZmVlCQCkAwEFDHBsYXRmb3JtX2ZlZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUEa0J1eQkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3IJAKQDAQUGYW1vdW50CQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRuZnRfBRFjdXJyZW50X25mdF9vd25lcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgIGX293bmVyCQClCAEIBQFpBmNhbGxlcgUDbmlsAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQURY3VycmVudF9uZnRfb3duZXIFDXNlbGxlcl9hbW91bnQFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FBW5mdElEAgxwbGF0Zm9ybV9mZWUJAKQDAQUMcGxhdGZvcm1fZmVlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwFA25pbAFpAQpjYW5jZWxTZWxsAQVuZnRJZAQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAZzZWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQFBW5mdElkAgtfbmZ0X3N0YXR1cwIIQ0FOQ0VMRUQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQZzZWxsZXIAAQkA2QQBBQVuZnRJZAUDbmlsAWkBCmFkZEF1Y3Rpb24FBXN0YXJ0A2VuZApzdGFydFByaWNlCGR1cmF0aW9uEHBheW1lbnRfY3VycmVuY3kEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQFbmZ0SWQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQFcHJpY2UJAQV2YWx1ZQEFCnN0YXJ0UHJpY2UECWVuZEhlaWdodAkAZAIIBQlsYXN0QmxvY2sGaGVpZ2h0BQhkdXJhdGlvbgQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBBFjaGVja05mdEF1Y3Rpb25lZAQHJG1hdGNoMAkAnQgCBQR0aGlzCQCsAgIJAKwCAgkArAICCQDYBAEFBW5mdElkBQlzZXBhcmF0b3ICC25mdF9zdGF0dXNfCQDYBAEFBmNhbGxlcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAGBwMJAAACBRFjaGVja05mdEF1Y3Rpb25lZAYJAAIBAhdBbHJlYWR5IGluIGF1Y3Rpb24gbGlzdAMJAGYCBQhkdXJhdGlvbgUSbWF4QXVjdGlvbkR1cmF0aW9uCQACAQkArAICAjZEdXJhdGlvbiBpcyB0b28gbG9uZy4gTXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNyAJAKQDAQUSbWF4QXVjdGlvbkR1cmF0aW9uAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkAAgECEE5GVCBub3QgYXR0YWNoZWQDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQV0ZWFtcwkAAgECEE5GVCBub3QgYXR0YWNoZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBHR4SWQCFm5mdF9zdGFydF9hdWN0aW9uX2RhdGUJANgEAQUGY2FsbGVyBQVzdGFydAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUEdHhJZAIUbmZ0X2VuZF9hdWN0aW9uX2RhdGUJANgEAQUGY2FsbGVyBQNlbmQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfbmZ0X3N0YXJ0X3ByaWNlBQpzdGFydFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIKX25mdF9vd25lcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAg9fbmZ0X29uX2F1Y3Rpb24JANgEAQUFbmZ0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhBfcHJldmlvdXNfYmlkZGVyAgRub25lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIMX2hpZ2hlc3RfYmlkAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIOX3dpbm5lcl9vZl9uZnQCATAJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAg1fYmlkZGVyX2NvdW50AgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAILX25mdF9zdGF0dXMCBE9QRU4FA25pbAFpAQhwbGFjZUJpZAUJYXVjdGlvbklkBW5mdElkCW5mdF9vd25lcgliaWRfcHJpY2UQY3VycmVudF9jdXJyZW5jeQQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAZjYWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMEB2Fzc2V0SWQJANkEAQUFbmZ0SWQED2N1cnJlbnRCaWRQcmljZQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEFWdldExhc3RXaW5uZXJCaWRQcmljZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAQYZ2V0UHJldmlvdXNCaWRkZXJBZGRyZXNzCQCdCAIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAhBfcHJldmlvdXNfYmlkZGVyBA9jdXJyZW50QmlkQ291bnQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50BBRnZXRMYXN0V2lubmVyQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDl93aW5uZXJfb2ZfbmZ0BBFjaGVja05mdEF1Y3Rpb25lZAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAwkBAiE9AgURY2hlY2tOZnRBdWN0aW9uZWQCBE9QRU4JAAIBAhROb3Qgb3BlbiBmb3IgYXVjdGlvbgMJAGcCCQENcGFyc2VJbnRWYWx1ZQEFFWdldExhc3RXaW5uZXJCaWRQcmljZQkBDXBhcnNlSW50VmFsdWUBCQCkAwEFD2N1cnJlbnRCaWRQcmljZQkAAgECJUJpZCBpcyBsZXNzIHRoZW4gc3RhcnRpbmcvaGlnaGVzdCBCaWQDCQAAAgUVZ2V0TGFzdFdpbm5lckJpZFByaWNlAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkCQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAkApAMBBQ9jdXJyZW50QmlkUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgdfd2lubmVyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIKX25mdF9vd25lcgUJbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX2JpZF9mb3JfbmZ0X2J5CQDYBAEFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9iaWRfcHJpY2VfcGxhY2UFCWJpZF9wcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCJl9wcmV2aW91c19iaWRfYW1vdW50X3JlZnVuZF90b19hZGRyZXNzBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCG19wcmV2b2l1c19iaWRfYW1vdW50X3JlZnVuZAUVZ2V0TGFzdFdpbm5lckJpZFByaWNlBQNuaWwDCQECIT0CBRVnZXRMYXN0V2lubmVyQmlkUHJpY2UCATAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFFGdldExhc3RXaW5uZXJBZGRyZXNzCQENcGFyc2VJbnRWYWx1ZQEFFWdldExhc3RXaW5uZXJCaWRQcmljZQUQY3VycmVudF9jdXJyZW5jeQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCJl9wcmV2aW91c19iaWRfYW1vdW50X3JlZnVuZF90b19hZGRyZXNzBRRnZXRMYXN0V2lubmVyQWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCG19wcmV2b2l1c19iaWRfYW1vdW50X3JlZnVuZAUVZ2V0TGFzdFdpbm5lckJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgxfaGlnaGVzdF9iaWQJAKQDAQUPY3VycmVudEJpZFByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAg5fd2lubmVyX29mX25mdAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgdfbmZ0X2lkCQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCCl9uZnRfb3duZXIFCW5mdF9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQR0eElkAgFfBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAkApAMBBQ9jdXJyZW50QmlkUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAgdfd2lubmVyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUEdHhJZAIBXwUJYXVjdGlvbklkAg1fYmlkZGVyX2NvdW50CQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEFD2N1cnJlbnRCaWRDb3VudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIHX25mdF9pZAkA2AQBBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFBHR4SWQCAV8FCWF1Y3Rpb25JZAIKX25mdF9vd25lcgUJbmZ0X293bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIPX2JpZF9mb3JfbmZ0X2J5CQDYBAEFBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9iaWRfcHJpY2VfcGxhY2UFCWJpZF9wcmljZQUDbmlsBQNuaWwBaQEOYWNjZXB0QmlkT2ZmZXIECWF1Y3Rpb25JZAVuZnRJZBRiaWRfYW1vdW50X2Zyb21fdXNlchBjdXJyZW50X2N1cnJlbmN5BAR0eElkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwQHYXNzZXRJZAkA2QQBBQVuZnRJZAQSZ2V0TmZ0V2lubmluZ1ByaWNlCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIMX2hpZ2hlc3RfYmlkBBNnZXROZnRXaW5uaW5nYW1vdW50CQBoAgkAaQIJAQ1wYXJzZUludFZhbHVlAQUSZ2V0TmZ0V2lubmluZ1ByaWNlAOgHAM8HBAxwbGF0Zm9ybV9mZWUJAGgCCQBpAgkBDXBhcnNlSW50VmFsdWUBBRJnZXROZnRXaW5uaW5nUHJpY2UA6AcAGQQQZ2V0QXVjdGlvbldpbm5lcgkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDl93aW5uZXJfb2ZfbmZ0AwkAAAIFEGN1cnJlbnRfY3VycmVuY3kFBVdBVkVTCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUGY2FsbGVyBRNnZXROZnRXaW5uaW5nYW1vdW50BQR1bml0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBRBnZXRBdWN0aW9uV2lubmVyAAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgIMcGxhdGZvcm1fZmVlCQCkAwEFDHBsYXRmb3JtX2ZlZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIQX25mdF90cmFuc2Zlcl90bwUQZ2V0QXVjdGlvbldpbm5lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFCWF1Y3Rpb25JZAIVX2Ftb3VudF9wYWlkX3RvX293bmVyBRJnZXROZnRXaW5uaW5nUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghSRVdBUkRFRAUDbmlsAwkAAAIFEGN1cnJlbnRfY3VycmVuY3kFBXRlYW1zCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUGY2FsbGVyBRNnZXROZnRXaW5uaW5nYW1vdW50BQV0ZWFtcwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUQZ2V0QXVjdGlvbldpbm5lcgABBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQICDHBsYXRmb3JtX2ZlZQkApAMBBQxwbGF0Zm9ybV9mZWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAhVfYW1vdW50X3BhaWRfdG9fb3duZXIFEmdldE5mdFdpbm5pbmdQcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCEF9uZnRfdHJhbnNmZXJfdG8FEGdldEF1Y3Rpb25XaW5uZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQR0eElkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQlhdWN0aW9uSWQCFV9hbW91bnRfcGFpZF90b19vd25lcgUSZ2V0TmZ0V2lubmluZ1ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAhBfbmZ0X3RyYW5zZmVyX3RvBRBnZXRBdWN0aW9uV2lubmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJYXVjdGlvbklkAgtfbmZ0X3N0YXR1cwIIUkVXQVJERUQFA25pbAUDbmlsAWkBDWNhbmNlbEF1Y3Rpb24CCWF1Y3Rpb25JZBBjdXJyZW50X2N1cnJlbmN5BAR0eElkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBmNhbGxlcggIBQFpBmNhbGxlcgVieXRlcwQNYXVjdGlvblN0YXR1cwkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzBA1iaWRkaW5nV2lubmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIOX3dpbm5lcl9vZl9uZnQECG5mdE93bmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzCQCsAgIFCWF1Y3Rpb25JZAIKX25mdF9vd25lcgQFbmZ0SWQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAKwCAgUJYXVjdGlvbklkAg9fbmZ0X29uX2F1Y3Rpb24EDGJpZGRpbmdQcmljZQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkArAICBQlhdWN0aW9uSWQCDF9oaWdoZXN0X2JpZAMJAAACBQ1iaWRkaW5nV2lubmVyAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQR0eElkBQlhdWN0aW9uSWQCC19uZnRfc3RhdHVzAghDQU5DRUxFRAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUIbmZ0T3duZXIAAQkA2QQBBQVuZnRJZAUDbmlsAwkBAiE9AgUNYmlkZGluZ1dpbm5lcgIBMAkAAgECQ3Nvb3J5IHlvdSBjYW4ndCBjYW5jZWwgaXQgYmVjYXVzZSBhbHJlYWR5IGF1Y3Rpb24gcGxhY2VkIGJ5IHNvbWVvbmUFA25pbAFpARJtYW51YWxGdW5kVHJhbnNmZXICDXJlY2VwaWVudEFkZHIHbWVzc2FnZQQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAdyZWNpdmVyCQDZBAEFDXJlY2VwaWVudEFkZHIEBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEEXJlY2VwaWVudF9wYXltZW50CQBoAgkAaQIFBmFtb3VudADoBwDPBwQMcGxhdGZvcm1fZmVlCQBoAgkAaQIFBmFtb3VudADoBwAZAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQDYBAEFBmNhbGxlcgIJX3RyYW5zZmVyBQZhbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgIMcGxhdGZvcm1fZmVlCQCkAwEFDHBsYXRmb3JtX2ZlZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJANgEAQUGY2FsbGVyAgxfdHJhbnNmZXJfdG8FDXJlY2VwaWVudEFkZHIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQdyZWNpdmVyBRFyZWNlcGllbnRfcGF5bWVudAUEdW5pdAUDbmlsAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFdGVhbXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkA2AQBBQZjYWxsZXICCV90cmFuc2ZlcgUGYW1vdW50CQDMCAIJAQtTdHJpbmdFbnRyeQICDHBsYXRmb3JtX2ZlZQkApAMBBQxwbGF0Zm9ybV9mZWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQDYBAEFBmNhbGxlcgIMX3RyYW5zZmVyX3RvBQ1yZWNlcGllbnRBZGRyCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUHcmVjaXZlcgURcmVjZXBpZW50X3BheW1lbnQFBXRlYW1zBQNuaWwFA25pbAFpAQd0ZXN0QmlkAQRkYXRhCQDMCAIJAQtTdHJpbmdFbnRyeQICOEU4a2tGQllDeTQ0SkphcTZwQVo2S2l6c3VSZXNpNVVLTmhiRDFXTlp3aGhZX2hpZ2hlc3RfYmlkAgEwBQNuaWwAgKud8w==", "height": 2444746, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 47HTnNuN18hEVXqcFTaFjKkn7wkBfkTe1cMo7uSBTJN6 Next: 99X981Af3HggXGrnLPSfC6vS7KsLtrN9fUco3GUcwuQ3 Diff:
OldNewDifferences
99
1010 let d = "sell"
1111
12-let e = 7
12+let e = 30
1313
1414 let f = base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'
1515
7575 }
7676 let B = getStringValue(((((c + a) + H) + "_") + I))
7777 let M = ((J / 1000) * 975)
78+ let N = ((J / 1000) * 25)
7879 if ((I == toString(o.caller)))
7980 then throw("current Owner of NFT not able to purchase")
8081 else if ((o.payments[0].assetId == f))
81- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), M, 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))]
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))]
8283 else if ((o.payments[0].assetId == unit))
83- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), M, 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))]
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))]
8485 else nil
8586 }
87+
88+
89+
90+@Callable(o)
91+func cancelSell (O) = {
92+ let A = toBase58String(o.transactionId)
93+ let D = o.caller.bytes
94+[StringEntry(((A + O) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(D), 1, fromBase58String(O))]
95+ }
96+
97+
98+
99+@Callable(o)
100+func addAuction (P,Q,R,S,C) = {
101+ 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)))
108+ if ($isInstanceOf(m, "String"))
109+ then {
110+ let L = m
111+ true
112+ }
113+ else false
114+ }
115+ if ((V == true))
116+ then throw("Already in auction list")
117+ else if ((S > e))
118+ then throw(("Duration is too long. Must be less than or equal to 7 " + toString(e)))
119+ else if ((o.payments[0].assetId == unit))
120+ then throw("NFT not attached")
121+ else if ((o.payments[0].assetId == f))
122+ 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")]
124+ }
125+
126+
127+
128+@Callable(o)
129+func placeBid (W,O,q,X,Y) = {
130+ 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"))
140+ then throw("Not open for auction")
141+ else if ((parseIntValue(aa) >= parseIntValue(toString(Z))))
142+ 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
148+ }
149+
150+
151+
152+@Callable(o)
153+func acceptBidOffer (W,O,ae,Y) = {
154+ 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")]
165+ else nil
166+ }
167+
168+
169+
170+@Callable(o)
171+func cancelAuction (W,Y) = {
172+ 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")
183+ else nil
184+ }
185+
186+
187+
188+@Callable(o)
189+func manualFundTransfer (am,an) = {
190+ let U = o.caller.bytes
191+ let ao = fromBase58String(am)
192+ let J = o.payments[0].amount
193+ let ap = ((J / 1000) * 975)
194+ let N = ((J / 1000) * 25)
195+ 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)]
197+ 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)]
199+ else nil
200+ }
201+
202+
203+
204+@Callable(o)
205+func testBid (aq) = [StringEntry("E8kkFBYCy44JJaq6pAZ6KizsuResi5UKNhbD1WNZwhhY_highest_bid", "0")]
86206
87207
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 = 7
12+let e = 30
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))
7777 let M = ((J / 1000) * 975)
78+ let N = ((J / 1000) * 25)
7879 if ((I == toString(o.caller)))
7980 then throw("current Owner of NFT not able to purchase")
8081 else if ((o.payments[0].assetId == f))
81- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), M, 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))]
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))]
8283 else if ((o.payments[0].assetId == unit))
83- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), M, 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))]
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))]
8485 else nil
8586 }
87+
88+
89+
90+@Callable(o)
91+func cancelSell (O) = {
92+ let A = toBase58String(o.transactionId)
93+ let D = o.caller.bytes
94+[StringEntry(((A + O) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(D), 1, fromBase58String(O))]
95+ }
96+
97+
98+
99+@Callable(o)
100+func addAuction (P,Q,R,S,C) = {
101+ 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)))
108+ if ($isInstanceOf(m, "String"))
109+ then {
110+ let L = m
111+ true
112+ }
113+ else false
114+ }
115+ if ((V == true))
116+ then throw("Already in auction list")
117+ else if ((S > e))
118+ then throw(("Duration is too long. Must be less than or equal to 7 " + toString(e)))
119+ else if ((o.payments[0].assetId == unit))
120+ then throw("NFT not attached")
121+ else if ((o.payments[0].assetId == f))
122+ 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")]
124+ }
125+
126+
127+
128+@Callable(o)
129+func placeBid (W,O,q,X,Y) = {
130+ 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"))
140+ then throw("Not open for auction")
141+ else if ((parseIntValue(aa) >= parseIntValue(toString(Z))))
142+ 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
148+ }
149+
150+
151+
152+@Callable(o)
153+func acceptBidOffer (W,O,ae,Y) = {
154+ 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")]
165+ else nil
166+ }
167+
168+
169+
170+@Callable(o)
171+func cancelAuction (W,Y) = {
172+ 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")
183+ else nil
184+ }
185+
186+
187+
188+@Callable(o)
189+func manualFundTransfer (am,an) = {
190+ let U = o.caller.bytes
191+ let ao = fromBase58String(am)
192+ let J = o.payments[0].amount
193+ let ap = ((J / 1000) * 975)
194+ let N = ((J / 1000) * 25)
195+ 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)]
197+ 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)]
199+ else nil
200+ }
201+
202+
203+
204+@Callable(o)
205+func testBid (aq) = [StringEntry("E8kkFBYCy44JJaq6pAZ6KizsuResi5UKNhbD1WNZwhhY_highest_bid", "0")]
86206
87207

github/deemru/w8io/026f985 
44.25 ms