tx · 3peFp4UMKNWAxmBkfe7ST71CAYthHZAPeUBV5NXmrhmc

3N2iycpXC7Fomf1vYLmz9uUWwLR2ZvxRCyw:  -0.00700000 Waves

2023.03.20 23:29 [2498816] smart account 3N2iycpXC7Fomf1vYLmz9uUWwLR2ZvxRCyw > SELF 0.00000000 Waves

{ "type": 13, "id": "3peFp4UMKNWAxmBkfe7ST71CAYthHZAPeUBV5NXmrhmc", "fee": 700000, "feeAssetId": null, "timestamp": 1679344196738, "version": 2, "chainId": 84, "sender": "3N2iycpXC7Fomf1vYLmz9uUWwLR2ZvxRCyw", "senderPublicKey": "3TJ91ZMX9cHrPAcqCiYodSdxYs8AiLNHyvRJNK1PDc6i", "proofs": [ "7vB6LjF8Xghof9xWgwobSwJxJf88WyY4bH8kSST4MuX8FPsWZgsR9ZDzukvdetA8PkdFZyCXhUdyFuiCgG3ubdu" ], "script": "base64:BgIcCAISABIDCgEIEgUKAwEBCBIDCgEBEgASAwoBCAUABkF1cnVlcwEgOYDtDd1mVUaSfSlX4MdFqsCgGC27Z5CEtJGKkGOZYFwBCW9ubHlPd25lcgEBaQMJAAACCAUEdGhpcwVieXRlcwgIBQFpBmNhbGxlcgVieXRlcwUEdW5pdAkAAgECKU9ubHkgZGFwcCBhY2NvdW50IGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24hARBnZXRBdXJ1ZXNQYXltZW50AQFpAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFFBheW1lbnQgbm90IGF0dGFjaGVkBAFwCQCRAwIIBQFpCHBheW1lbnRzAAAEByRtYXRjaDAIBQFwB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQHYXNzZXRJZAUHJG1hdGNoMAMJAAACBQdhc3NldElkBQZBdXJ1ZXMIBQFwBmFtb3VudAkAAgECIE9ubHkgYXVydWVzIGFjY2VwdGVkIGFzIHBheW1lbnQhCQACAQIgT25seSBhdXJ1ZXMgYWNjZXB0ZWQgYXMgcGF5bWVudCEBDGdldEFzc2V0RGF0YQEHYXNzZXRJZAMJAAACBQdhc3NldElkAAAJAJYKBAIFTWluZXICR1V0aWxpdHkgYnVpbGRpbmcgdGhhdCBoZWxwcyB5b3UgdG8gbWluZSBhdXJ1ZXMgYXQgY2VydGFpbiBibG92ayBoZWlnaHQuALDqAQIHX19taW5lcgMJAAACBQdhc3NldElkAAEJAJYKBAIFQ2Fub24CR1V0aWxpdHkgYnVpbGRpbmcgdGhhdCBoZWxwcyB5b3UgdG8gbWluZSBhdXJ1ZXMgYXQgY2VydGFpbiBibG92ayBoZWlnaHQuAKjDAQIGX2Nhbm9uAwkAAAIFB2Fzc2V0SWQAAgkAlgoEAgRYYm93AkdVdGlsaXR5IGJ1aWxkaW5nIHRoYXQgaGVscHMgeW91IHRvIG1pbmUgYXVydWVzIGF0IGNlcnRhaW4gYmxvdmsgaGVpZ2h0LgCYdQIFX3hib3cDCQAAAgUHYXNzZXRJZAADCQCWCgQCBVRlc2xhAkdVdGlsaXR5IGJ1aWxkaW5nIHRoYXQgaGVscHMgeW91IHRvIG1pbmUgYXVydWVzIGF0IGNlcnRhaW4gYmxvdmsgaGVpZ2h0LgCgnAECBl90ZXNsYQMJAAACBQdhc3NldElkAAQJAAIBAhdZb3UgY2FuJ3QgYnV5IHRvd25oYWxsIQMJAAACBQdhc3NldElkAAUJAJYKBAIGQXJjaGVyAkdVdGlsaXR5IGJ1aWxkaW5nIHRoYXQgaGVscHMgeW91IHRvIG1pbmUgYXVydWVzIGF0IGNlcnRhaW4gYmxvdmsgaGVpZ2h0LgCUIwIHX2FyY2hlcgMJAAACBQdhc3NldElkAAYJAJYKBAIFUm9ib3QCR1V0aWxpdHkgYnVpbGRpbmcgdGhhdCBoZWxwcyB5b3UgdG8gbWluZSBhdXJ1ZXMgYXQgY2VydGFpbiBibG92ayBoZWlnaHQuAPwqAgVfcm9ibwMJAAACBQdhc3NldElkAAcJAJYKBAIJVmFsa3lyaWVlAkdVdGlsaXR5IGJ1aWxkaW5nIHRoYXQgaGVscHMgeW91IHRvIG1pbmUgYXVydWVzIGF0IGNlcnRhaW4gYmxvdmsgaGVpZ2h0LgDwLgIKX3ZhbGt5cmllZQkAAgECD1Vua293biBhc3NldElkIQELZ2V0QXNzZXRLZXkBBG5hbWUDCQAAAgUEbmFtZQIFTWluZXICB19fbWluZXIDCQAAAgUEbmFtZQIFQ2Fub24CBl9jYW5vbgMJAAACBQRuYW1lAgRYYm93AgVfeGJvdwMJAAACBQRuYW1lAgVUZXNsYQIGX3Rlc2xhAwkAAAIFBG5hbWUCCFRvd25oYWxsCQACAQIhWW91IGNhbid0IGFkZCBvciByZW1vdmUgdG93bmhhbGwhAwkAAAIFBG5hbWUCBkFyY2hlcgIHX2FyY2hlcgMJAAACBQRuYW1lAgVSb2JvdAIFX3JvYm8DCQAAAgUEbmFtZQIJVmFsa3lyaWVlAgpfdmFsa3lyaWVlCQACAQINVW5rb3duIEFzc2V0IQYBaQEJc3RhcnRHYW1lAAQHYWRkcmVzcwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBAxnYW1lU3RhdGVLZXkJAKwCAgUHYWRkcmVzcwIJX2lzU3RydGVkAwkAAAIJAJsIAgUEdGhpcwUMZ2FtZVN0YXRlS2V5BQR1bml0BAZ1c2VySWQEByRtYXRjaDAJAJoIAgUEdGhpcwIGdXNlcklkAwkAAQIFByRtYXRjaDACA0ludAQBeAUHJG1hdGNoMAkAZAIFAXgAAQAABAd0aElzc3VlCQDCCAUCCFRvd25oYWxsAhFIUSBvZiB5b3VyIGVtcGlyZQABAAAHBAl0aEFzc2V0SWQJANgEAQkAuAgBBQd0aElzc3VlCQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIFDGdhbWVTdGF0ZUtleQYJAMwIAgkBB1JlaXNzdWUDBQZBdXJ1ZXMAoI0GBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAoI0GBQZBdXJ1ZXMJAMwIAgUHdGhJc3N1ZQkAzAgCCQELU3RyaW5nRW50cnkCBQl0aEFzc2V0SWQFB2FkZHJlc3MJAMwIAgkBDEludGVnZXJFbnRyeQICBnVzZXJJZAUGdXNlcklkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKQDAQUGdXNlcklkBQdhZGRyZXNzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCCV90b3duaGFsbAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCEF90b3duaGFsbF9wbGFjZWQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgZfbWluZXIAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAg1fbWluZXJfcGxhY2VkAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIGX2Nhbm9uAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwINX2Nhbm9uX3BsYWNlZAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCBV94Ym93AAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIMX3hib3dfcGxhY2VkAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIGX3Rlc2xhAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwINX3Rlc2xhX3BsYWNlZAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCB19hcmNoZXIAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgVfcm9ibwAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCCl92YWxreXJpZWUAAAUDbmlsBQR1bml0CQACAQIVR2FtZSBhbHJlYWR5IHN0YXJ0ZWQhAWkBCHNhdmVHYW1lAQRkYXRhBAV0aENudAkAZQIJAJADAQkAvQkCBQRkYXRhAhBidWlsZGluZ0luZGV4Jzo0AAEECG1pbmVyQ250CQBlAgkAkAMBCQC9CQIFBGRhdGECEGJ1aWxkaW5nSW5kZXgnOjAAAQQIY2Fub25DbnQJAGUCCQCQAwEJAL0JAgUEZGF0YQIQYnVpbGRpbmdJbmRleCc6MQABBAd4Ym93Q250CQBlAgkAkAMBCQC9CQIFBGRhdGECEGJ1aWxkaW5nSW5kZXgnOjIAAQQIdGVzbGFDbnQJAGUCCQCQAwEJAL0JAgUEZGF0YQIQYnVpbGRpbmdJbmRleCc6MwABBAdhZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEBXRoQXZhCQBkAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICBQdhZGRyZXNzAglfdG93bmhhbGwJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgUHYWRkcmVzcwIQX3Rvd25oYWxsX3BsYWNlZAQIbWluZXJBdmEJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MCBl9taW5lcgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICBQdhZGRyZXNzAg1fbWluZXJfcGxhY2VkBAhjYW5vbkF2YQkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAKwCAgUHYWRkcmVzcwIGX2Nhbm9uCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MCDV9jYW5vbl9wbGFjZWQEB3hib3dBdmEJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MCBV94Ym93CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MCDF94Ym93X3BsYWNlZAQIdGVzbGFBdmEJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MCBl90ZXNsYQkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICBQdhZGRyZXNzAg1fdGVzbGFfcGxhY2VkAwMDAwMJAGcCBQV0aEF2YQUFdGhDbnQJAGcCBQhtaW5lckF2YQUIbWluZXJDbnQHCQBnAgUIY2Fub25BdmEFCGNhbm9uQ250BwkAZwIFB3hib3dBdmEFB3hib3dDbnQHCQBnAgUIdGVzbGFBdmEFCHRlc2xhQ250BwkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUHYWRkcmVzcwIFX2RhdGEFBGRhdGEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIJX3Rvd25oYWxsCQBlAgUFdGhBdmEFBXRoQ250CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCEF90b3duaGFsbF9wbGFjZWQFBXRoQ250CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCBl9taW5lcgkAZQIFCG1pbmVyQXZhBQhtaW5lckNudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAg1fbWluZXJfcGxhY2VkBQhtaW5lckNudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgZfY2Fub24JAGUCBQhjYW5vbkF2YQUIY2Fub25DbnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwINX2Nhbm9uX3BsYWNlZAUIY2Fub25DbnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIFX3hib3cJAGUCBQd4Ym93QXZhBQd4Ym93Q250CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFB2FkZHJlc3MCDF94Ym93X3BsYWNlZAUHeGJvd0NudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzAgZfdGVzbGEJAGUCBQh0ZXNsYUF2YQUIdGVzbGFDbnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwINX3Rlc2xhX3BsYWNlZAUIdGVzbGFDbnQFA25pbAUEdW5pdAkAAgECJFBsYWNlZCBtb3JlIGJ1aWxkaW5nIHRoZW4geW91IG93bmVkIQFpAQlyZXdhcmRXYXIDCGJ1aWxkaW5nBnRyb29wcwhvcHBvbmVudAkAlAoCCQDMCAIJAQdSZWlzc3VlAwUGQXVydWVzCQBkAgkAaAIFCGJ1aWxkaW5nAIgnCQBoAgUGdHJvb3BzANAPBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGgCBQhidWlsZGluZwCIJwUGQXVydWVzCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkAmwMBBQhvcHBvbmVudAkAaAIFBnRyb29wcwDQDwUGQXVydWVzBQNuaWwFBHVuaXQBaQEDYnV5AQdhc3NldElkBAdhZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEDGF1cnVlc0Ftb3VudAkBEGdldEF1cnVlc1BheW1lbnQBBQFpBAskdDA3MTMyNzE5MQkBDGdldEFzc2V0RGF0YQEFB2Fzc2V0SWQEBG5hbWUIBQskdDA3MTMyNzE5MQJfMQQLZGVzY3JpcHRpb24IBQskdDA3MTMyNzE5MQJfMgQFcHJpY2UIBQskdDA3MTMyNzE5MQJfMwQDa2V5CAULJHQwNzEzMjcxOTECXzQDCQBnAgUMYXVydWVzQW1vdW50BQVwcmljZQQKY3VycmVudENudAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkArAICBQdhZGRyZXNzBQNrZXkEBWlzc3VlCQDCCAUFBG5hbWUFC2Rlc2NyaXB0aW9uAAEAAAcEDWlzc3VlZEFzc2V0SWQJANgEAQkAuAgBBQVpc3N1ZQkAlAoCCQDMCAIFBWlzc3VlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCQCbAwEFDWlzc3VlZEFzc2V0SWQJAMwIAgkBBEJ1cm4CBQZBdXJ1ZXMFDGF1cnVlc0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzBQNrZXkJAGQCBQpjdXJyZW50Q250AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgUNaXNzdWVkQXNzZXRJZAUHYWRkcmVzcwUDbmlsBQR1bml0CQACAQkArAICAhpOb3QgZW5vdWdoIHBheW1lbnQgdG8gYnV5IAUEbmFtZQFpAQhhZGRBc3NldAADCQAAAgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIdTm8gTkZUIGF0dGFjaGVkIHRvIHRoaXMgY2FsbCEEA25mdAkAkQMCCAUBaQhwYXltZW50cwAABAckbWF0Y2gwCAUDbmZ0B2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQHYXNzZXRJZAUHJG1hdGNoMAQHJG1hdGNoMQkA7AcBBQdhc3NldElkAwkAAQIFByRtYXRjaDECBUFzc2V0BAVhc3NldAUHJG1hdGNoMQMJAAACCAUFYXNzZXQGaXNzdWVyBQR0aGlzAwkAAAIJAJ0IAgUEdGhpcwkA2AQBBQdhc3NldElkBQR1bml0BAdhZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEA2tleQkBC2dldEFzc2V0S2V5AQgFBWFzc2V0BG5hbWUECGFzc2V0Q250CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MFA2tleQkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwABBQdhc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJANgEAQUHYXNzZXRJZAUHYWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzBQNrZXkJAGQCBQhhc3NldENudAABBQNuaWwFBHVuaXQJAAIBAhxBc3NldCBhbHJlYWR5IGFkZGVkIHRvIGdhbWUhCQACAQIPV3JvbmcgTkZUIHNlbnQhCQACAQIQQ2FuJ3QgZmluZCBhc3NldAkAAgECG05vdCBhYmxlIHRvIGZpbmQgYXNzZXQgaWQhIQFpAQtyZW1vdmVBc3NldAEHYXNzZXRJZAQFb3duZXIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMFB2Fzc2V0SWQDCQAAAgkAmwMBBQVvd25lcggIBQFpBmNhbGxlcgVieXRlcwQHJG1hdGNoMAkA7AcBCQDZBAEFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwBANrZXkJAQtnZXRBc3NldEtleQEIBQVhc3NldARuYW1lBAdhZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMECGFzc2V0Q250CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQCsAgIFB2FkZHJlc3MFA2tleQMJAGYCBQhhc3NldENudAAACQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQUHYXNzZXRJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQdhZGRyZXNzBQNrZXkJAGUCBQhhc3NldENudAABBQNuaWwFBHVuaXQJAAIBCQCsAgIJAKwCAgIEQWxsIAgFBWFzc2V0BG5hbWUCFSBhcmUgbG9jayBpbnNpZGUgZ2FtZQkAAgECEENhbid0IGZpbmQgYXNzZXQJAAIBAiBZb3UgYXJlIG5vdCBvd25lciBvZiB0aGlzIGFzc2V0IQDHEYWS", "height": 2498816, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: B9cdsqbSqdt6HRruTRKEy9r7g2LxjmTnSeQKpZ1UXw7i Next: 85chFtf9RwJkFyWCunzsnnEP61TNpVh2WHyMGstNDoto Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = if ((this.bytes == b.caller.bytes))
4+let a = base58'4sUGAwEDLVm6Z3sNbLapWXtEtMkhRU8fypam9dLT4UjM'
5+
6+func b (c) = if ((this.bytes == c.caller.bytes))
57 then unit
68 else throw("Only dapp account can call this function!")
79
810
9-func c (b) = if ((size(b.payments) == 0))
11+func d (c) = if ((size(c.payments) == 0))
1012 then throw("Payment not attached")
1113 else {
12- let d = toBytes(getStringValue(this, "Aurues"))
13- let e = b.payments[0]
14+ let e = c.payments[0]
1415 let f = e.assetId
1516 if ($isInstanceOf(f, "ByteVector"))
1617 then {
1718 let g = f
18- if ((g == d))
19+ if ((g == a))
1920 then e.amount
2021 else throw("Only aurues accepted as payment!")
2122 }
3738 then $Tuple4("Archer", "Utility building that helps you to mine aurues at certain blovk height.", 4500, "_archer")
3839 else if ((g == 6))
3940 then $Tuple4("Robot", "Utility building that helps you to mine aurues at certain blovk height.", 5500, "_robo")
40- else $Tuple4("Valkyriee", "Utility building that helps you to mine aurues at certain blovk height.", 6000, "_valkyriee")
41+ else if ((g == 7))
42+ then $Tuple4("Valkyriee", "Utility building that helps you to mine aurues at certain blovk height.", 6000, "_valkyriee")
43+ else throw("Unkown assetId!")
4144
4245
43-@Callable(b)
44-func init (d) = {
45- let i = a(b)
46- if ((i == i))
47- then if ((getString(this, "Aurues") == unit))
48- then $Tuple2([StringEntry("Aurues", d)], unit)
49- else throw("Game already init!")
50- else throw("Strict value is not equal to itself.")
51- }
46+func i (j) = if ((j == "Miner"))
47+ then "__miner"
48+ else if ((j == "Canon"))
49+ then "_canon"
50+ else if ((j == "Xbow"))
51+ then "_xbow"
52+ else if ((j == "Tesla"))
53+ then "_tesla"
54+ else if ((j == "Townhall"))
55+ then throw("You can't add or remove townhall!")
56+ else if ((j == "Archer"))
57+ then "_archer"
58+ else if ((j == "Robot"))
59+ then "_robo"
60+ else if ((j == "Valkyriee"))
61+ then "_valkyriee"
62+ else throw("Unkown Asset!")
5263
5364
54-
55-@Callable(b)
65+@Callable(c)
5666 func startGame () = {
57- let j = toBase58String(b.caller.bytes)
58- let d = toBytes(getStringValue(this, "Aurues"))
59- let k = (j + "_isStrted")
60- if ((getBoolean(this, k) == unit))
67+ let k = toBase58String(c.caller.bytes)
68+ let l = (k + "_isStrted")
69+ if ((getBoolean(this, l) == unit))
6170 then {
62- let l = Issue("Townhall", "HQ of your empire", 1, 0, false)
63- let m = toBase58String(calculateAssetId(l))
64- $Tuple2([BooleanEntry(k, true), Reissue(d, 100000, true), l, StringEntry(m, j), IntegerEntry((j + "_townhall"), 1), IntegerEntry((j + "_townhall_placed"), 0), IntegerEntry((j + "_miner"), 0), IntegerEntry((j + "_miner_placed"), 0), IntegerEntry((j + "_canon"), 0), IntegerEntry((j + "_canon_placed"), 0), IntegerEntry((j + "_xbow"), 0), IntegerEntry((j + "_xbow_placed"), 0), IntegerEntry((j + "_tesla"), 0), IntegerEntry((j + "_tesla_placed"), 0), IntegerEntry((j + "_archer"), 0), IntegerEntry((j + "_robo"), 0), IntegerEntry((j + "_valkyriee"), 0)], unit)
71+ let m = {
72+ let f = getInteger(this, "userId")
73+ if ($isInstanceOf(f, "Int"))
74+ then {
75+ let n = f
76+ (n + 1)
77+ }
78+ else 0
79+ }
80+ let o = Issue("Townhall", "HQ of your empire", 1, 0, false)
81+ let p = toBase58String(calculateAssetId(o))
82+ $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)
6583 }
6684 else throw("Game already started!")
6785 }
6886
6987
7088
71-@Callable(b)
72-func buy (g) = {
73- let j = toBase58String(b.caller.bytes)
74- let d = toBytes(getStringValue(this, "Aurues"))
75- let n = c(b)
76- let o = h(g)
77- let p = o._1
78- let q = o._2
79- let r = o._3
80- let s = o._4
81- if ((n >= r))
82- then {
83- let t = getIntegerValue(this, (j + s))
84- let u = Issue(p, q, 1, 0, false)
85- let v = toBase58String(calculateAssetId(u))
86- $Tuple2([u, Burn(d, n), IntegerEntry((j + s), (t + 1)), StringEntry(v, j)], unit)
87- }
88- else throw(("Not enough payment to buy " + p))
89+@Callable(c)
90+func saveGame (q) = {
91+ let r = (size(split_51C(q, "buildingIndex':4")) - 1)
92+ let s = (size(split_51C(q, "buildingIndex':0")) - 1)
93+ let t = (size(split_51C(q, "buildingIndex':1")) - 1)
94+ let u = (size(split_51C(q, "buildingIndex':2")) - 1)
95+ let v = (size(split_51C(q, "buildingIndex':3")) - 1)
96+ let k = toBase58String(c.caller.bytes)
97+ let w = (getIntegerValue(this, (k + "_townhall")) + getIntegerValue(this, (k + "_townhall_placed")))
98+ let x = (getIntegerValue(this, (k + "_miner")) + getIntegerValue(this, (k + "_miner_placed")))
99+ let y = (getIntegerValue(this, (k + "_canon")) + getIntegerValue(this, (k + "_canon_placed")))
100+ let z = (getIntegerValue(this, (k + "_xbow")) + getIntegerValue(this, (k + "_xbow_placed")))
101+ let A = (getIntegerValue(this, (k + "_tesla")) + getIntegerValue(this, (k + "_tesla_placed")))
102+ if (if (if (if (if ((w >= r))
103+ then (x >= s)
104+ else false)
105+ then (y >= t)
106+ else false)
107+ then (z >= u)
108+ else false)
109+ then (A >= v)
110+ else false)
111+ 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)
112+ else throw("Placed more building then you owned!")
89113 }
90114
91115
92116
93-@Callable(b)
94-func addAsset () = $Tuple2(nil, unit)
117+@Callable(c)
118+func rewardWar (B,C,D) = $Tuple2([Reissue(a, ((B * 5000) + (C * 2000)), true), ScriptTransfer(c.caller, (B * 5000), a), ScriptTransfer(Address(toBytes(D)), (C * 2000), a)], unit)
95119
96120
97121
98-@Callable(b)
99-func removeAsset () = $Tuple2(nil, unit)
122+@Callable(c)
123+func buy (g) = {
124+ let k = toBase58String(c.caller.bytes)
125+ let E = d(c)
126+ let F = h(g)
127+ let j = F._1
128+ let G = F._2
129+ let H = F._3
130+ let I = F._4
131+ if ((E >= H))
132+ then {
133+ let J = getIntegerValue(this, (k + I))
134+ let K = Issue(j, G, 1, 0, false)
135+ 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)
137+ }
138+ else throw(("Not enough payment to buy " + j))
139+ }
140+
141+
142+
143+@Callable(c)
144+func addAsset () = if ((size(c.payments) == 0))
145+ then throw("No NFT attached to this call!")
146+ else {
147+ let M = c.payments[0]
148+ let f = M.assetId
149+ if ($isInstanceOf(f, "ByteVector"))
150+ then {
151+ let g = f
152+ let N = assetInfo(g)
153+ if ($isInstanceOf(N, "Asset"))
154+ then {
155+ let O = N
156+ if ((O.issuer == this))
157+ then if ((getString(this, toBase58String(g)) == unit))
158+ then {
159+ let k = toBase58String(c.caller.bytes)
160+ let I = i(O.name)
161+ let P = getIntegerValue(this, (k + I))
162+ $Tuple2([ScriptTransfer(Address(c.caller.bytes), 1, g), StringEntry(toBase58String(g), k), IntegerEntry((k + I), (P + 1))], unit)
163+ }
164+ else throw("Asset already added to game!")
165+ else throw("Wrong NFT sent!")
166+ }
167+ else throw("Can't find asset")
168+ }
169+ else throw("Not able to find asset id!!")
170+ }
171+
172+
173+
174+@Callable(c)
175+func removeAsset (g) = {
176+ let Q = getStringValue(this, g)
177+ if ((toBytes(Q) == c.caller.bytes))
178+ then {
179+ let f = assetInfo(fromBase58String(g))
180+ if ($isInstanceOf(f, "Asset"))
181+ then {
182+ let O = f
183+ let I = i(O.name)
184+ let k = toBase58String(c.caller.bytes)
185+ let P = getIntegerValue(this, (k + I))
186+ if ((P > 0))
187+ then $Tuple2([DeleteEntry(g), IntegerEntry((k + I), (P - 1))], unit)
188+ else throw((("All " + O.name) + " are lock inside game"))
189+ }
190+ else throw("Can't find asset")
191+ }
192+ else throw("You are not owner of this asset!")
193+ }
100194
101195
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = if ((this.bytes == b.caller.bytes))
4+let a = base58'4sUGAwEDLVm6Z3sNbLapWXtEtMkhRU8fypam9dLT4UjM'
5+
6+func b (c) = if ((this.bytes == c.caller.bytes))
57 then unit
68 else throw("Only dapp account can call this function!")
79
810
9-func c (b) = if ((size(b.payments) == 0))
11+func d (c) = if ((size(c.payments) == 0))
1012 then throw("Payment not attached")
1113 else {
12- let d = toBytes(getStringValue(this, "Aurues"))
13- let e = b.payments[0]
14+ let e = c.payments[0]
1415 let f = e.assetId
1516 if ($isInstanceOf(f, "ByteVector"))
1617 then {
1718 let g = f
18- if ((g == d))
19+ if ((g == a))
1920 then e.amount
2021 else throw("Only aurues accepted as payment!")
2122 }
2223 else throw("Only aurues accepted as payment!")
2324 }
2425
2526
2627 func h (g) = if ((g == 0))
2728 then $Tuple4("Miner", "Utility building that helps you to mine aurues at certain blovk height.", 30000, "__miner")
2829 else if ((g == 1))
2930 then $Tuple4("Canon", "Utility building that helps you to mine aurues at certain blovk height.", 25000, "_canon")
3031 else if ((g == 2))
3132 then $Tuple4("Xbow", "Utility building that helps you to mine aurues at certain blovk height.", 15000, "_xbow")
3233 else if ((g == 3))
3334 then $Tuple4("Tesla", "Utility building that helps you to mine aurues at certain blovk height.", 20000, "_tesla")
3435 else if ((g == 4))
3536 then throw("You can't buy townhall!")
3637 else if ((g == 5))
3738 then $Tuple4("Archer", "Utility building that helps you to mine aurues at certain blovk height.", 4500, "_archer")
3839 else if ((g == 6))
3940 then $Tuple4("Robot", "Utility building that helps you to mine aurues at certain blovk height.", 5500, "_robo")
40- else $Tuple4("Valkyriee", "Utility building that helps you to mine aurues at certain blovk height.", 6000, "_valkyriee")
41+ else if ((g == 7))
42+ then $Tuple4("Valkyriee", "Utility building that helps you to mine aurues at certain blovk height.", 6000, "_valkyriee")
43+ else throw("Unkown assetId!")
4144
4245
43-@Callable(b)
44-func init (d) = {
45- let i = a(b)
46- if ((i == i))
47- then if ((getString(this, "Aurues") == unit))
48- then $Tuple2([StringEntry("Aurues", d)], unit)
49- else throw("Game already init!")
50- else throw("Strict value is not equal to itself.")
51- }
46+func i (j) = if ((j == "Miner"))
47+ then "__miner"
48+ else if ((j == "Canon"))
49+ then "_canon"
50+ else if ((j == "Xbow"))
51+ then "_xbow"
52+ else if ((j == "Tesla"))
53+ then "_tesla"
54+ else if ((j == "Townhall"))
55+ then throw("You can't add or remove townhall!")
56+ else if ((j == "Archer"))
57+ then "_archer"
58+ else if ((j == "Robot"))
59+ then "_robo"
60+ else if ((j == "Valkyriee"))
61+ then "_valkyriee"
62+ else throw("Unkown Asset!")
5263
5364
54-
55-@Callable(b)
65+@Callable(c)
5666 func startGame () = {
57- let j = toBase58String(b.caller.bytes)
58- let d = toBytes(getStringValue(this, "Aurues"))
59- let k = (j + "_isStrted")
60- if ((getBoolean(this, k) == unit))
67+ let k = toBase58String(c.caller.bytes)
68+ let l = (k + "_isStrted")
69+ if ((getBoolean(this, l) == unit))
6170 then {
62- let l = Issue("Townhall", "HQ of your empire", 1, 0, false)
63- let m = toBase58String(calculateAssetId(l))
64- $Tuple2([BooleanEntry(k, true), Reissue(d, 100000, true), l, StringEntry(m, j), IntegerEntry((j + "_townhall"), 1), IntegerEntry((j + "_townhall_placed"), 0), IntegerEntry((j + "_miner"), 0), IntegerEntry((j + "_miner_placed"), 0), IntegerEntry((j + "_canon"), 0), IntegerEntry((j + "_canon_placed"), 0), IntegerEntry((j + "_xbow"), 0), IntegerEntry((j + "_xbow_placed"), 0), IntegerEntry((j + "_tesla"), 0), IntegerEntry((j + "_tesla_placed"), 0), IntegerEntry((j + "_archer"), 0), IntegerEntry((j + "_robo"), 0), IntegerEntry((j + "_valkyriee"), 0)], unit)
71+ let m = {
72+ let f = getInteger(this, "userId")
73+ if ($isInstanceOf(f, "Int"))
74+ then {
75+ let n = f
76+ (n + 1)
77+ }
78+ else 0
79+ }
80+ let o = Issue("Townhall", "HQ of your empire", 1, 0, false)
81+ let p = toBase58String(calculateAssetId(o))
82+ $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)
6583 }
6684 else throw("Game already started!")
6785 }
6886
6987
7088
71-@Callable(b)
72-func buy (g) = {
73- let j = toBase58String(b.caller.bytes)
74- let d = toBytes(getStringValue(this, "Aurues"))
75- let n = c(b)
76- let o = h(g)
77- let p = o._1
78- let q = o._2
79- let r = o._3
80- let s = o._4
81- if ((n >= r))
82- then {
83- let t = getIntegerValue(this, (j + s))
84- let u = Issue(p, q, 1, 0, false)
85- let v = toBase58String(calculateAssetId(u))
86- $Tuple2([u, Burn(d, n), IntegerEntry((j + s), (t + 1)), StringEntry(v, j)], unit)
87- }
88- else throw(("Not enough payment to buy " + p))
89+@Callable(c)
90+func saveGame (q) = {
91+ let r = (size(split_51C(q, "buildingIndex':4")) - 1)
92+ let s = (size(split_51C(q, "buildingIndex':0")) - 1)
93+ let t = (size(split_51C(q, "buildingIndex':1")) - 1)
94+ let u = (size(split_51C(q, "buildingIndex':2")) - 1)
95+ let v = (size(split_51C(q, "buildingIndex':3")) - 1)
96+ let k = toBase58String(c.caller.bytes)
97+ let w = (getIntegerValue(this, (k + "_townhall")) + getIntegerValue(this, (k + "_townhall_placed")))
98+ let x = (getIntegerValue(this, (k + "_miner")) + getIntegerValue(this, (k + "_miner_placed")))
99+ let y = (getIntegerValue(this, (k + "_canon")) + getIntegerValue(this, (k + "_canon_placed")))
100+ let z = (getIntegerValue(this, (k + "_xbow")) + getIntegerValue(this, (k + "_xbow_placed")))
101+ let A = (getIntegerValue(this, (k + "_tesla")) + getIntegerValue(this, (k + "_tesla_placed")))
102+ if (if (if (if (if ((w >= r))
103+ then (x >= s)
104+ else false)
105+ then (y >= t)
106+ else false)
107+ then (z >= u)
108+ else false)
109+ then (A >= v)
110+ else false)
111+ 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)
112+ else throw("Placed more building then you owned!")
89113 }
90114
91115
92116
93-@Callable(b)
94-func addAsset () = $Tuple2(nil, unit)
117+@Callable(c)
118+func rewardWar (B,C,D) = $Tuple2([Reissue(a, ((B * 5000) + (C * 2000)), true), ScriptTransfer(c.caller, (B * 5000), a), ScriptTransfer(Address(toBytes(D)), (C * 2000), a)], unit)
95119
96120
97121
98-@Callable(b)
99-func removeAsset () = $Tuple2(nil, unit)
122+@Callable(c)
123+func buy (g) = {
124+ let k = toBase58String(c.caller.bytes)
125+ let E = d(c)
126+ let F = h(g)
127+ let j = F._1
128+ let G = F._2
129+ let H = F._3
130+ let I = F._4
131+ if ((E >= H))
132+ then {
133+ let J = getIntegerValue(this, (k + I))
134+ let K = Issue(j, G, 1, 0, false)
135+ 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)
137+ }
138+ else throw(("Not enough payment to buy " + j))
139+ }
140+
141+
142+
143+@Callable(c)
144+func addAsset () = if ((size(c.payments) == 0))
145+ then throw("No NFT attached to this call!")
146+ else {
147+ let M = c.payments[0]
148+ let f = M.assetId
149+ if ($isInstanceOf(f, "ByteVector"))
150+ then {
151+ let g = f
152+ let N = assetInfo(g)
153+ if ($isInstanceOf(N, "Asset"))
154+ then {
155+ let O = N
156+ if ((O.issuer == this))
157+ then if ((getString(this, toBase58String(g)) == unit))
158+ then {
159+ let k = toBase58String(c.caller.bytes)
160+ let I = i(O.name)
161+ let P = getIntegerValue(this, (k + I))
162+ $Tuple2([ScriptTransfer(Address(c.caller.bytes), 1, g), StringEntry(toBase58String(g), k), IntegerEntry((k + I), (P + 1))], unit)
163+ }
164+ else throw("Asset already added to game!")
165+ else throw("Wrong NFT sent!")
166+ }
167+ else throw("Can't find asset")
168+ }
169+ else throw("Not able to find asset id!!")
170+ }
171+
172+
173+
174+@Callable(c)
175+func removeAsset (g) = {
176+ let Q = getStringValue(this, g)
177+ if ((toBytes(Q) == c.caller.bytes))
178+ then {
179+ let f = assetInfo(fromBase58String(g))
180+ if ($isInstanceOf(f, "Asset"))
181+ then {
182+ let O = f
183+ let I = i(O.name)
184+ let k = toBase58String(c.caller.bytes)
185+ let P = getIntegerValue(this, (k + I))
186+ if ((P > 0))
187+ then $Tuple2([DeleteEntry(g), IntegerEntry((k + I), (P - 1))], unit)
188+ else throw((("All " + O.name) + " are lock inside game"))
189+ }
190+ else throw("Can't find asset")
191+ }
192+ else throw("You are not owner of this asset!")
193+ }
100194
101195

github/deemru/w8io/169f3d6 
36.01 ms