tx · F8RX5Zpt8cunT3oTunQW2BRu4FP5HzAYaNHdYHfa1MU4

3N2iycpXC7Fomf1vYLmz9uUWwLR2ZvxRCyw:  -0.00700000 Waves

2023.03.22 19:45 [2501477] smart account 3N2iycpXC7Fomf1vYLmz9uUWwLR2ZvxRCyw > SELF 0.00000000 Waves

{ "type": 13, "id": "F8RX5Zpt8cunT3oTunQW2BRu4FP5HzAYaNHdYHfa1MU4", "fee": 700000, "feeAssetId": null, "timestamp": 1679503567822, "version": 2, "chainId": 84, "sender": "3N2iycpXC7Fomf1vYLmz9uUWwLR2ZvxRCyw", "senderPublicKey": "3TJ91ZMX9cHrPAcqCiYodSdxYs8AiLNHyvRJNK1PDc6i", "proofs": [ "3sfontfmrzLddg8HD2VovkTD6gLUrtLiGT6Hh9RSCzXWG6GfycazBo2hTtZZnNp7YFEfNQ5Frsx9eg8GxPCkPSsk" ], "script": "base64:BgIcCAISABIDCgEIEgUKAwEBCBIDCgEBEgASAwoBCAUABkF1cnVlcwEgOYDtDd1mVUaSfSlX4MdFqsCgGC27Z5CEtJGKkGOZYFwBCW9ubHlPd25lcgEBaQMJAAACCAUEdGhpcwVieXRlcwgIBQFpBmNhbGxlcgVieXRlcwUEdW5pdAkAAgECKU9ubHkgZGFwcCBhY2NvdW50IGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24hARBnZXRBdXJ1ZXNQYXltZW50AQFpAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFFBheW1lbnQgbm90IGF0dGFjaGVkBAFwCQCRAwIIBQFpCHBheW1lbnRzAAAEByRtYXRjaDAIBQFwB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQHYXNzZXRJZAUHJG1hdGNoMAMJAAACBQdhc3NldElkBQZBdXJ1ZXMIBQFwBmFtb3VudAkAAgECIE9ubHkgYXVydWVzIGFjY2VwdGVkIGFzIHBheW1lbnQhCQACAQIgT25seSBhdXJ1ZXMgYWNjZXB0ZWQgYXMgcGF5bWVudCEBDGdldEFzc2V0RGF0YQEHYXNzZXRJZAMJAAACBQdhc3NldElkAAAJAJYKBAIFTWluZXICR1V0aWxpdHkgYnVpbGRpbmcgdGhhdCBoZWxwcyB5b3UgdG8gbWluZSBhdXJ1ZXMgYXQgY2VydGFpbiBibG92ayBoZWlnaHQuALDqAQIHX19taW5lcgMJAAACBQdhc3NldElkAAEJAJYKBAIFQ2Fub24CR1V0aWxpdHkgYnVpbGRpbmcgdGhhdCBoZWxwcyB5b3UgdG8gbWluZSBhdXJ1ZXMgYXQgY2VydGFpbiBibG92ayBoZWlnaHQuAKjDAQIGX2Nhbm9uAwkAAAIFB2Fzc2V0SWQAAgkAlgoEAgRYYm93AkdVdGlsaXR5IGJ1aWxkaW5nIHRoYXQgaGVscHMgeW91IHRvIG1pbmUgYXVydWVzIGF0IGNlcnRhaW4gYmxvdmsgaGVpZ2h0LgCYdQIFX3hib3cDCQAAAgUHYXNzZXRJZAADCQCWCgQCBVRlc2xhAkdVdGlsaXR5IGJ1aWxkaW5nIHRoYXQgaGVscHMgeW91IHRvIG1pbmUgYXVydWVzIGF0IGNlcnRhaW4gYmxvdmsgaGVpZ2h0LgCgnAECBl90ZXNsYQMJAAACBQdhc3NldElkAAQJAAIBAhdZb3UgY2FuJ3QgYnV5IHRvd25oYWxsIQMJAAACBQdhc3NldElkAAUJAJYKBAIGQXJjaGVyAkdVdGlsaXR5IGJ1aWxkaW5nIHRoYXQgaGVscHMgeW91IHRvIG1pbmUgYXVydWVzIGF0IGNlcnRhaW4gYmxvdmsgaGVpZ2h0LgCUIwIHX2FyY2hlcgMJAAACBQdhc3NldElkAAYJAJYKBAIFUm9ib3QCR1V0aWxpdHkgYnVpbGRpbmcgdGhhdCBoZWxwcyB5b3UgdG8gbWluZSBhdXJ1ZXMgYXQgY2VydGFpbiBibG92ayBoZWlnaHQuAPwqAgVfcm9ibwMJAAACBQdhc3NldElkAAcJAJYKBAIJVmFsa3lyaWVlAkdVdGlsaXR5IGJ1aWxkaW5nIHRoYXQgaGVscHMgeW91IHRvIG1pbmUgYXVydWVzIGF0IGNlcnRhaW4gYmxvdmsgaGVpZ2h0LgDwLgIKX3ZhbGt5cmllZQkAAgECD1Vua293biBhc3NldElkIQELZ2V0QXNzZXRLZXkBBG5hbWUDCQAAAgUEbmFtZQIFTWluZXICB19fbWluZXIDCQAAAgUEbmFtZQIFQ2Fub24CBl9jYW5vbgMJAAACBQRuYW1lAgRYYm93AgVfeGJvdwMJAAACBQRuYW1lAgVUZXNsYQIGX3Rlc2xhAwkAAAIFBG5hbWUCCFRvd25oYWxsCQACAQIhWW91IGNhbid0IGFkZCBvciByZW1vdmUgdG93bmhhbGwhAwkAAAIFBG5hbWUCBkFyY2hlcgIHX2FyY2hlcgMJAAACBQRuYW1lAgVSb2JvdAIFX3JvYm8DCQAAAgUEbmFtZQIJVmFsa3lyaWVlAgpfdmFsa3lyaWVlCQACAQINVW5rb3duIEFzc2V0IQYBaQEJc3RhcnRHYW1lAAQHYWRkcmVzcwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBAxnYW1lU3RhdGVLZXkJAKwCAgUHYWRkcmVzcwIJX2lzU3RydGVkAwkAAAIJAJsIAgUEdGhpcwUMZ2FtZVN0YXRlS2V5BQR1bml0BAZ1c2VySWQEByRtYXRjaDAJAJoIAgUEdGhpcwIGdXNlcklkAwkAAQIFByRtYXRjaDACA0ludAQBeAUHJG1hdGNoMAkAZAIFAXgAAQAABAd0aElzc3VlCQDCCAUCCFRvd25oYWxsAhFIUSBvZiB5b3VyIGVtcGlyZQABAAAHBAl0aEFzc2V0SWQJANgEAQkAuAgBBQd0aElzc3VlCQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIFDGdhbWVTdGF0ZUtleQYJAMwIAgkBB1JlaXNzdWUDBQZBdXJ1ZXMAoI0GBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAoI0GBQZBdXJ1ZXMJAMwIAgUHdGhJc3N1ZQkAzAgCCQELU3RyaW5nRW50cnkCBQl0aEFzc2V0SWQFB2FkZHJlc3MJAMwIAgkBDEludGVnZXJFbnRyeQICBnVzZXJJZAUGdXNlcklkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKQDAQUGdXNlcklkBQdhZGRyZXNzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCCV90b3duaGFsbAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCEF90b3duaGFsbF9wbGFjZWQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgZfbWluZXIAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAg1fbWluZXJfcGxhY2VkAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIGX2Nhbm9uAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwINX2Nhbm9uX3BsYWNlZAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCBV94Ym93AAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIMX3hib3dfcGxhY2VkAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIGX3Rlc2xhAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwINX3Rlc2xhX3BsYWNlZAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCB19hcmNoZXIAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgVfcm9ibwAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCCl92YWxreXJpZWUAAAUDbmlsBQR1bml0CQACAQIVR2FtZSBhbHJlYWR5IHN0YXJ0ZWQhAWkBCHNhdmVHYW1lAQRkYXRhBAV0aENudAkAZQIJAJADAQkAvQkCBQRkYXRhAhBidWlsZGluZ0luZGV4Jzo0AAEECG1pbmVyQ250CQBlAgkAkAMBCQC9CQIFBGRhdGECEGJ1aWxkaW5nSW5kZXgnOjAAAQQIY2Fub25DbnQJAGUCCQCQAwEJAL0JAgUEZGF0YQIQYnVpbGRpbmdJbmRleCc6MQABBAd4Ym93Q250CQBlAgkAkAMBCQC9CQIFBGRhdGECEGJ1aWxkaW5nSW5kZXgnOjIAAQQIdGVzbGFDbnQJAGUCCQCQAwEJAL0JAgUEZGF0YQIQYnVpbGRpbmdJbmRleCc6MwABBAdhZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEBXRoQXZhCQBkAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICBQdhZGRyZXNzAglfdG93bmhhbGwJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgUHYWRkcmVzcwIQX3Rvd25oYWxsX3BsYWNlZAQIbWluZXJBdmEJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MCBl9taW5lcgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICBQdhZGRyZXNzAg1fbWluZXJfcGxhY2VkBAhjYW5vbkF2YQkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgUHYWRkcmVzcwIGX2Nhbm9uCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MCDV9jYW5vbl9wbGFjZWQEB3hib3dBdmEJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MCBV94Ym93CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MCDF94Ym93X3BsYWNlZAQIdGVzbGFBdmEJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MCBl90ZXNsYQkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICBQdhZGRyZXNzAg1fdGVzbGFfcGxhY2VkAwMDAwMJAGcCBQV0aEF2YQUFdGhDbnQJAGcCBQhtaW5lckF2YQUIbWluZXJDbnQHCQBnAgUIY2Fub25BdmEFCGNhbm9uQ250BwkAZwIFB3hib3dBdmEFB3hib3dDbnQHCQBnAgUIdGVzbGFBdmEFCHRlc2xhQ250BwkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUHYWRkcmVzcwIFX2RhdGEFBGRhdGEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIJX3Rvd25oYWxsCQBlAgUFdGhBdmEFBXRoQ250CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCEF90b3duaGFsbF9wbGFjZWQFBXRoQ250CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCBl9taW5lcgkAZQIFCG1pbmVyQXZhBQhtaW5lckNudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAg1fbWluZXJfcGxhY2VkBQhtaW5lckNudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgZfY2Fub24JAGUCBQhjYW5vbkF2YQUIY2Fub25DbnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwINX2Nhbm9uX3BsYWNlZAUIY2Fub25DbnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIFX3hib3cJAGUCBQd4Ym93QXZhBQd4Ym93Q250CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCDF94Ym93X3BsYWNlZAUHeGJvd0NudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgZfdGVzbGEJAGUCBQh0ZXNsYUF2YQUIdGVzbGFDbnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwINX3Rlc2xhX3BsYWNlZAUIdGVzbGFDbnQFA25pbAUEdW5pdAkAAgECJFBsYWNlZCBtb3JlIGJ1aWxkaW5nIHRoZW4geW91IG93bmVkIQFpAQlyZXdhcmRXYXIDCGJ1aWxkaW5nBnRyb29wcwhvcHBvbmVudAkAlAoCCQDMCAIJAQdSZWlzc3VlAwUGQXVydWVzCQBkAgkAaAIFCGJ1aWxkaW5nAIgnCQBoAgUGdHJvb3BzANAPBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGgCBQhidWlsZGluZwCIJwUGQXVydWVzCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQhvcHBvbmVudAkAaAIFBnRyb29wcwDQDwUGQXVydWVzBQNuaWwFBHVuaXQBaQEDYnV5AQdhc3NldElkBAdhZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEDGF1cnVlc0Ftb3VudAkBEGdldEF1cnVlc1BheW1lbnQBBQFpBAskdDA3MTQwNzE5OQkBDGdldEFzc2V0RGF0YQEFB2Fzc2V0SWQEBG5hbWUIBQskdDA3MTQwNzE5OQJfMQQLZGVzY3JpcHRpb24IBQskdDA3MTQwNzE5OQJfMgQFcHJpY2UIBQskdDA3MTQwNzE5OQJfMwQDa2V5CAULJHQwNzE0MDcxOTkCXzQDCQBnAgUMYXVydWVzQW1vdW50BQVwcmljZQQKY3VycmVudENudAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICBQdhZGRyZXNzBQNrZXkEBWlzc3VlCQDCCAUFBG5hbWUFC2Rlc2NyaXB0aW9uAAEAAAcEDWlzc3VlZEFzc2V0SWQJANgEAQkAuAgBBQVpc3N1ZQkAlAoCCQDMCAIFBWlzc3VlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCQC4CAEFBWlzc3VlCQDMCAIJAQRCdXJuAgUGQXVydWVzBQxhdXJ1ZXNBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwUDa2V5CQBkAgUKY3VycmVudENudAABCQDMCAIJAQtTdHJpbmdFbnRyeQIFDWlzc3VlZEFzc2V0SWQFB2FkZHJlc3MFA25pbAUEdW5pdAkAAgEJAKwCAgIaTm90IGVub3VnaCBwYXltZW50IHRvIGJ1eSAFBG5hbWUBaQEIYWRkQXNzZXQAAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECHU5vIE5GVCBhdHRhY2hlZCB0byB0aGlzIGNhbGwhBANuZnQJAJEDAggFAWkIcGF5bWVudHMAAAQHJG1hdGNoMAgFA25mdAdhc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEB2Fzc2V0SWQFByRtYXRjaDAEByRtYXRjaDEJAOwHAQUHYXNzZXRJZAMJAAECBQckbWF0Y2gxAgVBc3NldAQFYXNzZXQFByRtYXRjaDEDCQAAAggFBWFzc2V0Bmlzc3VlcgUEdGhpcwMJAAACCQCdCAIFBHRoaXMJANgEAQUHYXNzZXRJZAUEdW5pdAQHYWRkcmVzcwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBANrZXkJAQtnZXRBc3NldEtleQEIBQVhc3NldARuYW1lBAhhc3NldENudAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICBQdhZGRyZXNzBQNrZXkJAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEICAUBaQZjYWxsZXIFYnl0ZXMAAQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQDYBAEFB2Fzc2V0SWQFB2FkZHJlc3MJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwUDa2V5CQBkAgUIYXNzZXRDbnQAAQUDbmlsBQR1bml0CQACAQIcQXNzZXQgYWxyZWFkeSBhZGRlZCB0byBnYW1lIQkAAgECD1dyb25nIE5GVCBzZW50IQkAAgECEENhbid0IGZpbmQgYXNzZXQJAAIBAhtOb3QgYWJsZSB0byBmaW5kIGFzc2V0IGlkISEBaQELcmVtb3ZlQXNzZXQBB2Fzc2V0SWQEBW93bmVyCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBQdhc3NldElkAwkAAAIJANkEAQUFb3duZXIICAUBaQZjYWxsZXIFYnl0ZXMEByRtYXRjaDAJAOwHAQkA2QQBBQdhc3NldElkAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAQDa2V5CQELZ2V0QXNzZXRLZXkBCAUFYXNzZXQEbmFtZQQHYWRkcmVzcwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBAhhc3NldENudAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICBQdhZGRyZXNzBQNrZXkDCQBmAgUIYXNzZXRDbnQAAAkAlAoCCQDMCAIJAQtEZWxldGVFbnRyeQEFB2Fzc2V0SWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwUDa2V5CQBlAgUIYXNzZXRDbnQAAQUDbmlsBQR1bml0CQACAQkArAICCQCsAgICBEFsbCAIBQVhc3NldARuYW1lAhUgYXJlIGxvY2sgaW5zaWRlIGdhbWUJAAIBAhBDYW4ndCBmaW5kIGFzc2V0CQACAQIgWW91IGFyZSBub3Qgb3duZXIgb2YgdGhpcyBhc3NldCEAAdaxNA==", "height": 2501477, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 85chFtf9RwJkFyWCunzsnnEP61TNpVh2WHyMGstNDoto Next: CJxBMuAL2KQRwrwrGw3W9AA6PpppM6jmtUv6GeUp1iwa Diff:
OldNewDifferences
133133 let J = getIntegerValue(this, (k + I))
134134 let K = Issue(j, G, 1, 0, false)
135135 let L = toBase58String(calculateAssetId(K))
136- $Tuple2([K, ScriptTransfer(c.caller, 1, toBytes(L)), Burn(a, E), IntegerEntry((k + I), (J + 1)), StringEntry(L, k)], unit)
136+ $Tuple2([K, ScriptTransfer(c.caller, 1, calculateAssetId(K)), Burn(a, E), IntegerEntry((k + I), (J + 1)), StringEntry(L, k)], unit)
137137 }
138138 else throw(("Not enough payment to buy " + j))
139139 }
174174 @Callable(c)
175175 func removeAsset (g) = {
176176 let Q = getStringValue(this, g)
177- if ((toBytes(Q) == c.caller.bytes))
177+ if ((fromBase58String(Q) == c.caller.bytes))
178178 then {
179179 let f = assetInfo(fromBase58String(g))
180180 if ($isInstanceOf(f, "Asset"))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'4sUGAwEDLVm6Z3sNbLapWXtEtMkhRU8fypam9dLT4UjM'
55
66 func b (c) = if ((this.bytes == c.caller.bytes))
77 then unit
88 else throw("Only dapp account can call this function!")
99
1010
1111 func d (c) = if ((size(c.payments) == 0))
1212 then throw("Payment not attached")
1313 else {
1414 let e = c.payments[0]
1515 let f = e.assetId
1616 if ($isInstanceOf(f, "ByteVector"))
1717 then {
1818 let g = f
1919 if ((g == a))
2020 then e.amount
2121 else throw("Only aurues accepted as payment!")
2222 }
2323 else throw("Only aurues accepted as payment!")
2424 }
2525
2626
2727 func h (g) = if ((g == 0))
2828 then $Tuple4("Miner", "Utility building that helps you to mine aurues at certain blovk height.", 30000, "__miner")
2929 else if ((g == 1))
3030 then $Tuple4("Canon", "Utility building that helps you to mine aurues at certain blovk height.", 25000, "_canon")
3131 else if ((g == 2))
3232 then $Tuple4("Xbow", "Utility building that helps you to mine aurues at certain blovk height.", 15000, "_xbow")
3333 else if ((g == 3))
3434 then $Tuple4("Tesla", "Utility building that helps you to mine aurues at certain blovk height.", 20000, "_tesla")
3535 else if ((g == 4))
3636 then throw("You can't buy townhall!")
3737 else if ((g == 5))
3838 then $Tuple4("Archer", "Utility building that helps you to mine aurues at certain blovk height.", 4500, "_archer")
3939 else if ((g == 6))
4040 then $Tuple4("Robot", "Utility building that helps you to mine aurues at certain blovk height.", 5500, "_robo")
4141 else if ((g == 7))
4242 then $Tuple4("Valkyriee", "Utility building that helps you to mine aurues at certain blovk height.", 6000, "_valkyriee")
4343 else throw("Unkown assetId!")
4444
4545
4646 func i (j) = if ((j == "Miner"))
4747 then "__miner"
4848 else if ((j == "Canon"))
4949 then "_canon"
5050 else if ((j == "Xbow"))
5151 then "_xbow"
5252 else if ((j == "Tesla"))
5353 then "_tesla"
5454 else if ((j == "Townhall"))
5555 then throw("You can't add or remove townhall!")
5656 else if ((j == "Archer"))
5757 then "_archer"
5858 else if ((j == "Robot"))
5959 then "_robo"
6060 else if ((j == "Valkyriee"))
6161 then "_valkyriee"
6262 else throw("Unkown Asset!")
6363
6464
6565 @Callable(c)
6666 func startGame () = {
6767 let k = toBase58String(c.caller.bytes)
6868 let l = (k + "_isStrted")
6969 if ((getBoolean(this, l) == unit))
7070 then {
7171 let m = {
7272 let f = getInteger(this, "userId")
7373 if ($isInstanceOf(f, "Int"))
7474 then {
7575 let n = f
7676 (n + 1)
7777 }
7878 else 0
7979 }
8080 let o = Issue("Townhall", "HQ of your empire", 1, 0, false)
8181 let p = toBase58String(calculateAssetId(o))
8282 $Tuple2([BooleanEntry(l, true), Reissue(a, 100000, true), ScriptTransfer(c.caller, 100000, a), o, StringEntry(p, k), IntegerEntry("userId", m), StringEntry(toString(m), k), IntegerEntry((k + "_townhall"), 1), IntegerEntry((k + "_townhall_placed"), 0), IntegerEntry((k + "_miner"), 0), IntegerEntry((k + "_miner_placed"), 0), IntegerEntry((k + "_canon"), 0), IntegerEntry((k + "_canon_placed"), 0), IntegerEntry((k + "_xbow"), 0), IntegerEntry((k + "_xbow_placed"), 0), IntegerEntry((k + "_tesla"), 0), IntegerEntry((k + "_tesla_placed"), 0), IntegerEntry((k + "_archer"), 0), IntegerEntry((k + "_robo"), 0), IntegerEntry((k + "_valkyriee"), 0)], unit)
8383 }
8484 else throw("Game already started!")
8585 }
8686
8787
8888
8989 @Callable(c)
9090 func saveGame (q) = {
9191 let r = (size(split_51C(q, "buildingIndex':4")) - 1)
9292 let s = (size(split_51C(q, "buildingIndex':0")) - 1)
9393 let t = (size(split_51C(q, "buildingIndex':1")) - 1)
9494 let u = (size(split_51C(q, "buildingIndex':2")) - 1)
9595 let v = (size(split_51C(q, "buildingIndex':3")) - 1)
9696 let k = toBase58String(c.caller.bytes)
9797 let w = (getIntegerValue(this, (k + "_townhall")) + getIntegerValue(this, (k + "_townhall_placed")))
9898 let x = (getIntegerValue(this, (k + "_miner")) + getIntegerValue(this, (k + "_miner_placed")))
9999 let y = (getIntegerValue(this, (k + "_canon")) + getIntegerValue(this, (k + "_canon_placed")))
100100 let z = (getIntegerValue(this, (k + "_xbow")) + getIntegerValue(this, (k + "_xbow_placed")))
101101 let A = (getIntegerValue(this, (k + "_tesla")) + getIntegerValue(this, (k + "_tesla_placed")))
102102 if (if (if (if (if ((w >= r))
103103 then (x >= s)
104104 else false)
105105 then (y >= t)
106106 else false)
107107 then (z >= u)
108108 else false)
109109 then (A >= v)
110110 else false)
111111 then $Tuple2([StringEntry((k + "_data"), q), IntegerEntry((k + "_townhall"), (w - r)), IntegerEntry((k + "_townhall_placed"), r), IntegerEntry((k + "_miner"), (x - s)), IntegerEntry((k + "_miner_placed"), s), IntegerEntry((k + "_canon"), (y - t)), IntegerEntry((k + "_canon_placed"), t), IntegerEntry((k + "_xbow"), (z - u)), IntegerEntry((k + "_xbow_placed"), u), IntegerEntry((k + "_tesla"), (A - v)), IntegerEntry((k + "_tesla_placed"), v)], unit)
112112 else throw("Placed more building then you owned!")
113113 }
114114
115115
116116
117117 @Callable(c)
118118 func rewardWar (B,C,D) = $Tuple2([Reissue(a, ((B * 5000) + (C * 2000)), true), ScriptTransfer(c.caller, (B * 5000), a), ScriptTransfer(Address(fromBase58String(D)), (C * 2000), a)], unit)
119119
120120
121121
122122 @Callable(c)
123123 func buy (g) = {
124124 let k = toBase58String(c.caller.bytes)
125125 let E = d(c)
126126 let F = h(g)
127127 let j = F._1
128128 let G = F._2
129129 let H = F._3
130130 let I = F._4
131131 if ((E >= H))
132132 then {
133133 let J = getIntegerValue(this, (k + I))
134134 let K = Issue(j, G, 1, 0, false)
135135 let L = toBase58String(calculateAssetId(K))
136- $Tuple2([K, ScriptTransfer(c.caller, 1, toBytes(L)), Burn(a, E), IntegerEntry((k + I), (J + 1)), StringEntry(L, k)], unit)
136+ $Tuple2([K, ScriptTransfer(c.caller, 1, calculateAssetId(K)), Burn(a, E), IntegerEntry((k + I), (J + 1)), StringEntry(L, k)], unit)
137137 }
138138 else throw(("Not enough payment to buy " + j))
139139 }
140140
141141
142142
143143 @Callable(c)
144144 func addAsset () = if ((size(c.payments) == 0))
145145 then throw("No NFT attached to this call!")
146146 else {
147147 let M = c.payments[0]
148148 let f = M.assetId
149149 if ($isInstanceOf(f, "ByteVector"))
150150 then {
151151 let g = f
152152 let N = assetInfo(g)
153153 if ($isInstanceOf(N, "Asset"))
154154 then {
155155 let O = N
156156 if ((O.issuer == this))
157157 then if ((getString(this, toBase58String(g)) == unit))
158158 then {
159159 let k = toBase58String(c.caller.bytes)
160160 let I = i(O.name)
161161 let P = getIntegerValue(this, (k + I))
162162 $Tuple2([ScriptTransfer(Address(c.caller.bytes), 1, g), StringEntry(toBase58String(g), k), IntegerEntry((k + I), (P + 1))], unit)
163163 }
164164 else throw("Asset already added to game!")
165165 else throw("Wrong NFT sent!")
166166 }
167167 else throw("Can't find asset")
168168 }
169169 else throw("Not able to find asset id!!")
170170 }
171171
172172
173173
174174 @Callable(c)
175175 func removeAsset (g) = {
176176 let Q = getStringValue(this, g)
177- if ((toBytes(Q) == c.caller.bytes))
177+ if ((fromBase58String(Q) == c.caller.bytes))
178178 then {
179179 let f = assetInfo(fromBase58String(g))
180180 if ($isInstanceOf(f, "Asset"))
181181 then {
182182 let O = f
183183 let I = i(O.name)
184184 let k = toBase58String(c.caller.bytes)
185185 let P = getIntegerValue(this, (k + I))
186186 if ((P > 0))
187187 then $Tuple2([DeleteEntry(g), IntegerEntry((k + I), (P - 1))], unit)
188188 else throw((("All " + O.name) + " are lock inside game"))
189189 }
190190 else throw("Can't find asset")
191191 }
192192 else throw("You are not owner of this asset!")
193193 }
194194
195195

github/deemru/w8io/026f985 
31.70 ms