tx · 7hhhdBvWtzv2sqPH73XXbCDchLUHBw8Lqi5f8Bsj7tPS 3N3dmyiBdj7pmjnQrzTTvmfzKSqndSzCMmk: -0.01000000 Waves 2022.09.13 00:11 [2226421] smart account 3N3dmyiBdj7pmjnQrzTTvmfzKSqndSzCMmk > SELF 0.00000000 Waves
{ "type": 13, "id": "7hhhdBvWtzv2sqPH73XXbCDchLUHBw8Lqi5f8Bsj7tPS", "fee": 1000000, "feeAssetId": null, "timestamp": 1663017133302, "version": 2, "chainId": 84, "sender": "3N3dmyiBdj7pmjnQrzTTvmfzKSqndSzCMmk", "senderPublicKey": "AR4BeE6hYADMvKxgRQs4ADN3krEqb2j8WE3WfJxzL3zE", "proofs": [ "5VW5odx7RUDdFEQFavpKu7DHdQSpTxXDCMbWo17w3bs8Sj3SJDCzeWGChoEUc5mf7oduF8chULK1JCaNnYMzt4LD" ], "script": "base64:BgItCAISAwoBCBIAEgMKAQgSBAoCCAgSBQoDCAgBEgMKAQgSABIFCgMICAgSABIAFQAFd2F2ZXMAgMLXLwAOdGlja2V0UHJpY2VJbnQAwIQ9AAt0aWNrZXRQcmljZQUOdGlja2V0UHJpY2VJbnQABmludkZlZQCgwh4AEndpdGhkcmF3RmVlUGVyY2VudAAFABZmZWVDb2xsZWN0b3JBZGRyZXNzS2V5AhNmZWVDb2xsZWN0b3JBZGRyZXNzAA5kZXBvc2l0QXNzZXRJZAIsNXVlMWZpdVY2ajZVQnI2WGYyOFFtczZ5NUZxekt0cXZheHhod3U3aFRRNTgBDXRyeUdldEludGVnZXIBA2tleQQHJG1hdGNoMAkAmggCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABEmdldFRpY2tldHNDb3VudEtleQENYWRkcmVzc1N0cmluZwkArAICBQ1hZGRyZXNzU3RyaW5nAg1fdGlja2V0c0NvdW50ARh0b3VybmFtZW50UHJpemVBbW91bnRLZXkBDHRvdXJuYW1lbnRJZAkArAICBQx0b3VybmFtZW50SWQCFl90b3VybmFtZW50UHJpemVBbW91bnQBGXRvdXJuYW1lbnRQcml6ZUFzc2V0SWRLZXkBDHRvdXJuYW1lbnRJZAkArAICBQx0b3VybmFtZW50SWQCF190b3VybmFtZW50UHJpemVBc3NldElkARN0b3VybmFtZW50U3RhdHVzS2V5AQx0b3VybmFtZW50SWQJAKwCAgUMdG91cm5hbWVudElkAhFfdG91cm5hbWVudFN0YXR1cwEhdG91cm5hbWVudFdpbm5pbmdUcmFuc2FjdGlvbklkS2V5AQx0b3VybmFtZW50SWQJAKwCAgUMdG91cm5hbWVudElkAh9fdG91cm5hbWVudFdpbm5pbmdUcmFuc2FjdGlvbklkAQ1nYW1lV2lubmVyS2V5AQZnYW1lSWQJAKwCAgUGZ2FtZUlkAgdfd2lubmVyARhhZGRyZXNzQXZhaWxhYmxlRnVuZHNLZXkBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwIPX2F2YWlsYWJsZUZ1bmRzARphZGRyZXNzVG90YWxMb2NrZWRGdW5kc0tleQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAhFfdG90YWxMb2NrZWRGdW5kcwEhYWRkcmVzc0xvY2tlZEZ1bmRzVG90YWxIaXN0b3J5S2V5AQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCGF9sb2NrZWRGdW5kc1RvdGFsSGlzdG9yeQEcYWRkcmVzc0xvY2tlZEZ1bmRzRm9yR2FtZUtleQIHYWRkcmVzcwZnYW1lSWQJAKwCAgkArAICBQdhZGRyZXNzAg1fbG9ja2VkRnVuZHNfBQZnYW1lSWQBGmFkZHJlc3NBdmFpbGFibGVSZXdhcmRzS2V5AQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCEV9hdmFpbGFibGVSZXdhcmRzAQ9nZXRUaWNrZXRzQ291bnQBDWFkZHJlc3NTdHJpbmcJAQ10cnlHZXRJbnRlZ2VyAQkBEmdldFRpY2tldHNDb3VudEtleQEFDWFkZHJlc3NTdHJpbmcBDWNvbnN1bWVUaWNrZXQBCnBsYXllckFkZHIEEmN1cnJlbnRUaWNrZXRDb3VudAkBD2dldFRpY2tldHNDb3VudAEFCnBsYXllckFkZHIEFW5ld0N1cnJlbnRUaWNrZXRDb3VudAkAZQIFEmN1cnJlbnRUaWNrZXRDb3VudAABAwkAZgIAAAUVbmV3Q3VycmVudFRpY2tldENvdW50AAAFFW5ld0N1cnJlbnRUaWNrZXRDb3VudAoBaQEWc2V0RmVlQ29sbGVjdG9yQWRkcmVzcwENY29sbGVjdG9yQWRkcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCkFkbWluIE9ubHkJAMwIAgkBC1N0cmluZ0VudHJ5AgUWZmVlQ29sbGVjdG9yQWRkcmVzc0tleQUNY29sbGVjdG9yQWRkcgUDbmlsAWkBDGRlcG9zaXRGdW5kcwAEA3BtdAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAJEDAggFAWkIcGF5bWVudHMAAAkAAgECIVBsZWFzZSBhdHRhY2ggZXhhY3RseSBvbmUgcGF5bWVudAMJAQIhPQIIBQNwbXQHYXNzZXRJZAkA2QQBBQ5kZXBvc2l0QXNzZXRJZAkAAgECGVlvdSBjYW4gb25seSBkZXBvc2l0IFVTRE4EDWNhbGxlckFkZHJTdHIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQVY3VycmVudEF2YWlsYWJsZUZ1bmRzCQENdHJ5R2V0SW50ZWdlcgEJARhhZGRyZXNzQXZhaWxhYmxlRnVuZHNLZXkBBQ1jYWxsZXJBZGRyU3RyCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJARhhZGRyZXNzQXZhaWxhYmxlRnVuZHNLZXkBBQ1jYWxsZXJBZGRyU3RyCQBkAgUVY3VycmVudEF2YWlsYWJsZUZ1bmRzCAUDcG10BmFtb3VudAUDbmlsAAEBaQEQY3JlYXRlVG91cm5hbWVudAEMdG91cm5hbWVudElkBANwbXQDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABCQCRAwIIBQFpCHBheW1lbnRzAAAJAAIBAiFQbGVhc2UgYXR0YWNoIGV4YWN0bHkgb25lIHBheW1lbnQEDHByaXplQXNzZXRJZAQHJG1hdGNoMAgFA3BtdAdhc3NldElkAwkAAQIFByRtYXRjaDACBFVuaXQEAWIFByRtYXRjaDACAAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAFiBQckbWF0Y2gwCQDYBAEFAWIJAAIBAgtNYXRjaCBlcnJvcgkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYdG91cm5hbWVudFByaXplQW1vdW50S2V5AQUMdG91cm5hbWVudElkCAUDcG10BmFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCCQEZdG91cm5hbWVudFByaXplQXNzZXRJZEtleQEFDHRvdXJuYW1lbnRJZAUMcHJpemVBc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJARN0b3VybmFtZW50U3RhdHVzS2V5AQUMdG91cm5hbWVudElkAgxyZWdpc3RyYXRpb24FA25pbAABAWkBEGZpbmlzaFRvdXJuYW1lbnQCDHRvdXJuYW1lbnRJZB13aW5uaW5nVHJhbnNmZXJ0VHJhbnNhY3Rpb25JZAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCkFkbWluIE9ubHkJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEhdG91cm5hbWVudFdpbm5pbmdUcmFuc2FjdGlvbklkS2V5AQUMdG91cm5hbWVudElkBR13aW5uaW5nVHJhbnNmZXJ0VHJhbnNhY3Rpb25JZAkAzAgCCQELU3RyaW5nRW50cnkCCQETdG91cm5hbWVudFN0YXR1c0tleQEFDHRvdXJuYW1lbnRJZAIIZmluaXNoZWQFA25pbAABAWkBDnBsYXllckV4aXRHYW1lAwZnYW1lSWQKcGxheWVyQWRkcg9leGl0U3RhY2tBbW91bnQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgpBZG1pbiBPbmx5BBdjdXJyZW50VG90YWxMb2NrZWRGdW5kcwkBDXRyeUdldEludGVnZXIBCQEaYWRkcmVzc1RvdGFsTG9ja2VkRnVuZHNLZXkBBQpwbGF5ZXJBZGRyBCBjdXJyZW50R2FtZUxvY2tlZEFtb3VudEZvclBsYXllcgkBDXRyeUdldEludGVnZXIBCQEcYWRkcmVzc0xvY2tlZEZ1bmRzRm9yR2FtZUtleQIFCnBsYXllckFkZHIFBmdhbWVJZAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaYWRkcmVzc1RvdGFsTG9ja2VkRnVuZHNLZXkBBQpwbGF5ZXJBZGRyCQBlAgUXY3VycmVudFRvdGFsTG9ja2VkRnVuZHMFIGN1cnJlbnRHYW1lTG9ja2VkQW1vdW50Rm9yUGxheWVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEcYWRkcmVzc0xvY2tlZEZ1bmRzRm9yR2FtZUtleQIFCnBsYXllckFkZHIFBmdhbWVJZAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCnBsYXllckFkZHIFD2V4aXRTdGFja0Ftb3VudAkA2QQBBQ5kZXBvc2l0QXNzZXRJZAUDbmlsAAEBaQEQbG9ja0Z1bmRzRm9yR2FtZQEGZ2FtZUlkBANwbXQDCQAAAgkAkAMBCAUBaQhwYXltZW50cwABCQCRAwIIBQFpCHBheW1lbnRzAAAJAAIBAiFQbGVhc2UgYXR0YWNoIGV4YWN0bHkgb25lIHBheW1lbnQDCQECIT0CCAUDcG10B2Fzc2V0SWQJANkEAQUOZGVwb3NpdEFzc2V0SWQJAAIBAhlZb3UgY2FuIG9ubHkgZGVwb3NpdCBVU0ROBA1jYWxsZXJBZGRyU3RyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEF2N1cnJlbnRUb3RhbExvY2tlZEZ1bmRzCQENdHJ5R2V0SW50ZWdlcgEJARphZGRyZXNzVG90YWxMb2NrZWRGdW5kc0tleQEFDWNhbGxlckFkZHJTdHIEHmN1cnJlbnRMb2NrZWRGdW5kc1RvdGFsSGlzdG9yeQkBDXRyeUdldEludGVnZXIBCQEhYWRkcmVzc0xvY2tlZEZ1bmRzVG90YWxIaXN0b3J5S2V5AQUNY2FsbGVyQWRkclN0cgkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaYWRkcmVzc1RvdGFsTG9ja2VkRnVuZHNLZXkBBQ1jYWxsZXJBZGRyU3RyCQBkAgUXY3VycmVudFRvdGFsTG9ja2VkRnVuZHMIBQNwbXQGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEhYWRkcmVzc0xvY2tlZEZ1bmRzVG90YWxIaXN0b3J5S2V5AQUNY2FsbGVyQWRkclN0cgkAZAIFHmN1cnJlbnRMb2NrZWRGdW5kc1RvdGFsSGlzdG9yeQgFA3BtdAZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJARxhZGRyZXNzTG9ja2VkRnVuZHNGb3JHYW1lS2V5AgUNY2FsbGVyQWRkclN0cgUGZ2FtZUlkCAUDcG10BmFtb3VudAUDbmlsAAEBaQENd2l0aGRyYXdGdW5kcwAEDWNhbGxlckFkZHJTdHIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQQZmVlQ29sbGVjdG9yQWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQUWZmVlQ29sbGVjdG9yQWRkcmVzc0tleQQVY3VycmVudEF2YWlsYWJsZUZ1bmRzCQENdHJ5R2V0SW50ZWdlcgEJARhhZGRyZXNzQXZhaWxhYmxlRnVuZHNLZXkBBQ1jYWxsZXJBZGRyU3RyBAt3aXRoZHJhd0ZlZQkAawMFFWN1cnJlbnRBdmFpbGFibGVGdW5kcwUSd2l0aGRyYXdGZWVQZXJjZW50AGQEFGFjdHVhbEF2YWlsYWJsZUZ1bmRzCQBlAgUVY3VycmVudEF2YWlsYWJsZUZ1bmRzBQt3aXRoZHJhd0ZlZQMJAGcCAAAFFGFjdHVhbEF2YWlsYWJsZUZ1bmRzCQACAQIeTm8gYXZhaWxhYmxlIGZ1bmRzIHRvIHdpdGhkcmF3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYYWRkcmVzc0F2YWlsYWJsZUZ1bmRzS2V5AQUNY2FsbGVyQWRkclN0cgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUUYWN0dWFsQXZhaWxhYmxlRnVuZHMJANkEAQUOZGVwb3NpdEFzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUQZmVlQ29sbGVjdG9yQWRkcgULd2l0aGRyYXdGZWUJANkEAQUOZGVwb3NpdEFzc2V0SWQFA25pbAFpARBzZXRXaW5uZXJIZWFkc1VwAwZnYW1lSWQNd2lubmVyQWRkclN0cg9vdGhlclBsYXllckFkZHIDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgpBZG1pbiBPbmx5BBNhdmFpbGFibGVSZXdhcmRzS2V5CQEaYWRkcmVzc0F2YWlsYWJsZVJld2FyZHNLZXkBBQ13aW5uZXJBZGRyU3RyBBdjdXJyZW50QXZhaWxhYmxlUmV3YXJkcwkBDXRyeUdldEludGVnZXIBBRNhdmFpbGFibGVSZXdhcmRzS2V5BBRuZXdUaWNrZXRDb3VudFdpbm5lcgkBDWNvbnN1bWVUaWNrZXQBBQ13aW5uZXJBZGRyU3RyBBluZXdUaWNrZXRDb3VudE90aGVyUGxheWVyCQENY29uc3VtZVRpY2tldAEFD290aGVyUGxheWVyQWRkcgkAzAgCCQELU3RyaW5nRW50cnkCCQENZ2FtZVdpbm5lcktleQEFBmdhbWVJZAUNd2lubmVyQWRkclN0cgkAzAgCCQEMSW50ZWdlckVudHJ5AgUTYXZhaWxhYmxlUmV3YXJkc0tleQkAZAIFF2N1cnJlbnRBdmFpbGFibGVSZXdhcmRzCQBoAgULdGlja2V0UHJpY2UAAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmdldFRpY2tldHNDb3VudEtleQEFDXdpbm5lckFkZHJTdHIFFG5ld1RpY2tldENvdW50V2lubmVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESZ2V0VGlja2V0c0NvdW50S2V5AQUPb3RoZXJQbGF5ZXJBZGRyBRluZXdUaWNrZXRDb3VudE90aGVyUGxheWVyBQNuaWwBaQEPd2l0aGRyYXdSZXdhcmRzAAQNY2FsbGVyQWRkclN0cgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBBBmZWVDb2xsZWN0b3JBZGRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1OCkBBRZmZWVDb2xsZWN0b3JBZGRyZXNzS2V5BBdjdXJyZW50QXZhaWxhYmxlUmV3YXJkcwkBDXRyeUdldEludGVnZXIBCQEaYWRkcmVzc0F2YWlsYWJsZVJld2FyZHNLZXkBBQ1jYWxsZXJBZGRyU3RyBAt3aXRoZHJhd0ZlZQkAawMFF2N1cnJlbnRBdmFpbGFibGVSZXdhcmRzBRJ3aXRoZHJhd0ZlZVBlcmNlbnQAZAQWYWN0dWFsQXZhaWxhYmxlUmV3YXJkcwkAZQIJAGUCBRdjdXJyZW50QXZhaWxhYmxlUmV3YXJkcwUGaW52RmVlBQt3aXRoZHJhd0ZlZQMJAGcCAAAFF2N1cnJlbnRBdmFpbGFibGVSZXdhcmRzCQACAQIgTm8gYXZhaWxhYmxlIHJld2FyZHMgdG8gd2l0aGRyYXcJAMwIAgkBDEludGVnZXJFbnRyeQIJARphZGRyZXNzQXZhaWxhYmxlUmV3YXJkc0tleQEFDWNhbGxlckFkZHJTdHIAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFFmFjdHVhbEF2YWlsYWJsZVJld2FyZHMFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUQZmVlQ29sbGVjdG9yQWRkcgULd2l0aGRyYXdGZWUFBHVuaXQFA25pbAFpAQpidXlUaWNrZXRzAAQDcG10AwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQkAkQMCCAUBaQhwYXltZW50cwAACQACAQIhUGxlYXNlIGF0dGFjaCBleGFjdGx5IG9uZSBwYXltZW50AwkBCWlzRGVmaW5lZAEIBQNwbXQHYXNzZXRJZAkAAgECJ1RpY2tldHMgY2FuIG9ubHkgaWJlIHB1cmNoYXNlZCBpbiBXYXZlcwMJAQIhPQIIBQNwbXQGYW1vdW50BQt0aWNrZXRQcmljZQkAAgEJAKwCAgkArAICAh9UaGUgcGF5bWVudCBtdXN0IGJlIG9mIGV4YWN0bHkgCQCkAwEFDnRpY2tldFByaWNlSW50AgYgd2F2ZXMEDWNhbGxlckFkZHJTdHIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwQTY3VycmVudFRpY2tldHNDb3VudAkBDXRyeUdldEludGVnZXIBCQESZ2V0VGlja2V0c0NvdW50S2V5AQUNY2FsbGVyQWRkclN0cgkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESZ2V0VGlja2V0c0NvdW50S2V5AQUNY2FsbGVyQWRkclN0cgkAZAIFE2N1cnJlbnRUaWNrZXRzQ291bnQAAQUDbmlsAAEBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V51HaL/Q==", "height": 2226421, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3u4MqWFpo79MyPqXPF7Q9ofjw2BY9hm7SRauNoSRhnyx Next: 57eWUDGBnqzWwfU4aGwETPzWoTUQQsQ8YhqSELYzAjsd Diff:
Old | New | Differences | |
---|---|---|---|
29 | 29 | func l (m) = (m + "_ticketsCount") | |
30 | 30 | ||
31 | 31 | ||
32 | - | func n (o) = (o + "_ | |
32 | + | func n (o) = (o + "_tournamentPrizeAmount") | |
33 | 33 | ||
34 | 34 | ||
35 | - | func p ( | |
35 | + | func p (o) = (o + "_tournamentPrizeAssetId") | |
36 | 36 | ||
37 | 37 | ||
38 | - | func | |
38 | + | func q (o) = (o + "_tournamentStatus") | |
39 | 39 | ||
40 | 40 | ||
41 | - | func | |
41 | + | func r (o) = (o + "_tournamentWinningTransactionId") | |
42 | 42 | ||
43 | 43 | ||
44 | - | func | |
44 | + | func s (t) = (t + "_winner") | |
45 | 45 | ||
46 | 46 | ||
47 | - | func u ( | |
47 | + | func u (v) = (v + "_availableFunds") | |
48 | 48 | ||
49 | 49 | ||
50 | - | func | |
50 | + | func w (v) = (v + "_totalLockedFunds") | |
51 | 51 | ||
52 | 52 | ||
53 | - | func w (x) = { | |
54 | - | let y = v(x) | |
55 | - | let z = (y - 1) | |
56 | - | if ((0 > z)) | |
53 | + | func x (v) = (v + "_lockedFundsTotalHistory") | |
54 | + | ||
55 | + | ||
56 | + | func y (v,t) = ((v + "_lockedFunds_") + t) | |
57 | + | ||
58 | + | ||
59 | + | func z (v) = (v + "_availableRewards") | |
60 | + | ||
61 | + | ||
62 | + | func A (m) = h(l(m)) | |
63 | + | ||
64 | + | ||
65 | + | func B (C) = { | |
66 | + | let D = A(C) | |
67 | + | let E = (D - 1) | |
68 | + | if ((0 > E)) | |
57 | 69 | then 0 | |
58 | - | else | |
70 | + | else E | |
59 | 71 | } | |
60 | 72 | ||
61 | 73 | ||
62 | - | @Callable( | |
63 | - | func setFeeCollectorAddress ( | |
74 | + | @Callable(F) | |
75 | + | func setFeeCollectorAddress (G) = if ((F.caller != this)) | |
64 | 76 | then throw("Admin Only") | |
65 | - | else [StringEntry(f, | |
77 | + | else [StringEntry(f, G)] | |
66 | 78 | ||
67 | 79 | ||
68 | 80 | ||
69 | - | @Callable( | |
81 | + | @Callable(F) | |
70 | 82 | func depositFunds () = { | |
71 | - | let | |
72 | - | then | |
83 | + | let H = if ((size(F.payments) == 1)) | |
84 | + | then F.payments[0] | |
73 | 85 | else throw("Please attach exactly one payment") | |
74 | - | if (( | |
86 | + | if ((H.assetId != fromBase58String(g))) | |
75 | 87 | then throw("You can only deposit USDN") | |
76 | 88 | else { | |
77 | - | let | |
78 | - | let | |
79 | - | $Tuple2([IntegerEntry( | |
89 | + | let I = toBase58String(F.caller.bytes) | |
90 | + | let J = h(u(I)) | |
91 | + | $Tuple2([IntegerEntry(u(I), (J + H.amount))], 1) | |
80 | 92 | } | |
81 | 93 | } | |
82 | 94 | ||
83 | 95 | ||
84 | 96 | ||
85 | - | @Callable(A) | |
86 | - | func playerExitGame (o,x,F) = if ((A.caller != this)) | |
97 | + | @Callable(F) | |
98 | + | func createTournament (o) = { | |
99 | + | let H = if ((size(F.payments) == 1)) | |
100 | + | then F.payments[0] | |
101 | + | else throw("Please attach exactly one payment") | |
102 | + | let K = { | |
103 | + | let j = H.assetId | |
104 | + | if ($isInstanceOf(j, "Unit")) | |
105 | + | then { | |
106 | + | let k = j | |
107 | + | "" | |
108 | + | } | |
109 | + | else if ($isInstanceOf(j, "ByteVector")) | |
110 | + | then { | |
111 | + | let k = j | |
112 | + | toBase58String(k) | |
113 | + | } | |
114 | + | else throw("Match error") | |
115 | + | } | |
116 | + | $Tuple2([IntegerEntry(n(o), H.amount), StringEntry(p(o), K), StringEntry(q(o), "registration")], 1) | |
117 | + | } | |
118 | + | ||
119 | + | ||
120 | + | ||
121 | + | @Callable(F) | |
122 | + | func finishTournament (o,L) = if ((F.caller != this)) | |
123 | + | then throw("Admin Only") | |
124 | + | else $Tuple2([StringEntry(r(o), L), StringEntry(q(o), "finished")], 1) | |
125 | + | ||
126 | + | ||
127 | + | ||
128 | + | @Callable(F) | |
129 | + | func playerExitGame (t,C,M) = if ((F.caller != this)) | |
87 | 130 | then throw("Admin Only") | |
88 | 131 | else { | |
89 | - | let | |
90 | - | let | |
91 | - | $Tuple2([IntegerEntry( | |
132 | + | let N = h(w(C)) | |
133 | + | let O = h(y(C, t)) | |
134 | + | $Tuple2([IntegerEntry(w(C), (N - O)), IntegerEntry(y(C, t), 0), ScriptTransfer(addressFromStringValue(C), M, fromBase58String(g))], 1) | |
92 | 135 | } | |
93 | 136 | ||
94 | 137 | ||
95 | 138 | ||
96 | - | @Callable( | |
97 | - | func lockFundsForGame ( | |
98 | - | let | |
99 | - | then | |
139 | + | @Callable(F) | |
140 | + | func lockFundsForGame (t) = { | |
141 | + | let H = if ((size(F.payments) == 1)) | |
142 | + | then F.payments[0] | |
100 | 143 | else throw("Please attach exactly one payment") | |
101 | - | if (( | |
144 | + | if ((H.assetId != fromBase58String(g))) | |
102 | 145 | then throw("You can only deposit USDN") | |
103 | 146 | else { | |
104 | - | let | |
105 | - | let | |
106 | - | let | |
107 | - | $Tuple2([IntegerEntry( | |
147 | + | let I = toBase58String(F.caller.bytes) | |
148 | + | let N = h(w(I)) | |
149 | + | let P = h(x(I)) | |
150 | + | $Tuple2([IntegerEntry(w(I), (N + H.amount)), IntegerEntry(x(I), (P + H.amount)), IntegerEntry(y(I, t), H.amount)], 1) | |
108 | 151 | } | |
109 | 152 | } | |
110 | 153 | ||
111 | 154 | ||
112 | 155 | ||
113 | - | @Callable( | |
156 | + | @Callable(F) | |
114 | 157 | func withdrawFunds () = { | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | let | |
119 | - | let | |
120 | - | if ((0 >= | |
158 | + | let I = toBase58String(F.caller.bytes) | |
159 | + | let Q = addressFromStringValue(getStringValue(f)) | |
160 | + | let J = h(u(I)) | |
161 | + | let R = fraction(J, e, 100) | |
162 | + | let S = (J - R) | |
163 | + | if ((0 >= S)) | |
121 | 164 | then throw("No available funds to withdraw") | |
122 | - | else [IntegerEntry( | |
165 | + | else [IntegerEntry(u(I), 0), ScriptTransfer(F.caller, S, fromBase58String(g)), ScriptTransfer(Q, R, fromBase58String(g))] | |
123 | 166 | } | |
124 | 167 | ||
125 | 168 | ||
126 | 169 | ||
127 | - | @Callable( | |
128 | - | func setWinnerHeadsUp ( | |
170 | + | @Callable(F) | |
171 | + | func setWinnerHeadsUp (t,T,U) = if ((F.caller != this)) | |
129 | 172 | then throw("Admin Only") | |
130 | 173 | else { | |
131 | - | let | |
132 | - | let | |
133 | - | let | |
134 | - | let | |
135 | - | [StringEntry( | |
174 | + | let V = z(T) | |
175 | + | let W = h(V) | |
176 | + | let X = B(T) | |
177 | + | let Y = B(U) | |
178 | + | [StringEntry(s(t), T), IntegerEntry(V, (W + (c * 2))), IntegerEntry(l(T), X), IntegerEntry(l(U), Y)] | |
136 | 179 | } | |
137 | 180 | ||
138 | 181 | ||
139 | 182 | ||
140 | - | @Callable( | |
183 | + | @Callable(F) | |
141 | 184 | func withdrawRewards () = { | |
142 | - | let | |
143 | - | let | |
144 | - | let | |
145 | - | let | |
146 | - | let | |
147 | - | if ((0 >= | |
185 | + | let I = toBase58String(F.caller.bytes) | |
186 | + | let Q = addressFromStringValue(getStringValue(f)) | |
187 | + | let W = h(z(I)) | |
188 | + | let R = fraction(W, e, 100) | |
189 | + | let Z = ((W - d) - R) | |
190 | + | if ((0 >= W)) | |
148 | 191 | then throw("No available rewards to withdraw") | |
149 | - | else [IntegerEntry( | |
192 | + | else [IntegerEntry(z(I), 0), ScriptTransfer(F.caller, Z, unit), ScriptTransfer(Q, R, unit)] | |
150 | 193 | } | |
151 | 194 | ||
152 | 195 | ||
153 | 196 | ||
154 | - | @Callable( | |
197 | + | @Callable(F) | |
155 | 198 | func buyTickets () = { | |
156 | - | let | |
157 | - | then | |
199 | + | let H = if ((size(F.payments) == 1)) | |
200 | + | then F.payments[0] | |
158 | 201 | else throw("Please attach exactly one payment") | |
159 | - | if (isDefined( | |
202 | + | if (isDefined(H.assetId)) | |
160 | 203 | then throw("Tickets can only ibe purchased in Waves") | |
161 | - | else if (( | |
204 | + | else if ((H.amount != c)) | |
162 | 205 | then throw((("The payment must be of exactly " + toString(b)) + " waves")) | |
163 | 206 | else { | |
164 | - | let | |
165 | - | let | |
166 | - | $Tuple2([IntegerEntry(l( | |
207 | + | let I = toBase58String(F.caller.bytes) | |
208 | + | let aa = h(l(I)) | |
209 | + | $Tuple2([IntegerEntry(l(I), (aa + 1))], 1) | |
167 | 210 | } | |
168 | 211 | } | |
169 | 212 | ||
170 | 213 | ||
171 | - | @Verifier( | |
172 | - | func | |
214 | + | @Verifier(ab) | |
215 | + | func ac () = sigVerify(ab.bodyBytes, ab.proofs[0], ab.senderPublicKey) | |
173 | 216 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = 100000000 | |
5 | 5 | ||
6 | 6 | let b = 1000000 | |
7 | 7 | ||
8 | 8 | let c = b | |
9 | 9 | ||
10 | 10 | let d = 500000 | |
11 | 11 | ||
12 | 12 | let e = 5 | |
13 | 13 | ||
14 | 14 | let f = "feeCollectorAddress" | |
15 | 15 | ||
16 | 16 | let g = "5ue1fiuV6j6UBr6Xf28Qms6y5FqzKtqvaxxhwu7hTQ58" | |
17 | 17 | ||
18 | 18 | func h (i) = { | |
19 | 19 | let j = getInteger(this, i) | |
20 | 20 | if ($isInstanceOf(j, "Int")) | |
21 | 21 | then { | |
22 | 22 | let k = j | |
23 | 23 | k | |
24 | 24 | } | |
25 | 25 | else 0 | |
26 | 26 | } | |
27 | 27 | ||
28 | 28 | ||
29 | 29 | func l (m) = (m + "_ticketsCount") | |
30 | 30 | ||
31 | 31 | ||
32 | - | func n (o) = (o + "_ | |
32 | + | func n (o) = (o + "_tournamentPrizeAmount") | |
33 | 33 | ||
34 | 34 | ||
35 | - | func p ( | |
35 | + | func p (o) = (o + "_tournamentPrizeAssetId") | |
36 | 36 | ||
37 | 37 | ||
38 | - | func | |
38 | + | func q (o) = (o + "_tournamentStatus") | |
39 | 39 | ||
40 | 40 | ||
41 | - | func | |
41 | + | func r (o) = (o + "_tournamentWinningTransactionId") | |
42 | 42 | ||
43 | 43 | ||
44 | - | func | |
44 | + | func s (t) = (t + "_winner") | |
45 | 45 | ||
46 | 46 | ||
47 | - | func u ( | |
47 | + | func u (v) = (v + "_availableFunds") | |
48 | 48 | ||
49 | 49 | ||
50 | - | func | |
50 | + | func w (v) = (v + "_totalLockedFunds") | |
51 | 51 | ||
52 | 52 | ||
53 | - | func w (x) = { | |
54 | - | let y = v(x) | |
55 | - | let z = (y - 1) | |
56 | - | if ((0 > z)) | |
53 | + | func x (v) = (v + "_lockedFundsTotalHistory") | |
54 | + | ||
55 | + | ||
56 | + | func y (v,t) = ((v + "_lockedFunds_") + t) | |
57 | + | ||
58 | + | ||
59 | + | func z (v) = (v + "_availableRewards") | |
60 | + | ||
61 | + | ||
62 | + | func A (m) = h(l(m)) | |
63 | + | ||
64 | + | ||
65 | + | func B (C) = { | |
66 | + | let D = A(C) | |
67 | + | let E = (D - 1) | |
68 | + | if ((0 > E)) | |
57 | 69 | then 0 | |
58 | - | else | |
70 | + | else E | |
59 | 71 | } | |
60 | 72 | ||
61 | 73 | ||
62 | - | @Callable( | |
63 | - | func setFeeCollectorAddress ( | |
74 | + | @Callable(F) | |
75 | + | func setFeeCollectorAddress (G) = if ((F.caller != this)) | |
64 | 76 | then throw("Admin Only") | |
65 | - | else [StringEntry(f, | |
77 | + | else [StringEntry(f, G)] | |
66 | 78 | ||
67 | 79 | ||
68 | 80 | ||
69 | - | @Callable( | |
81 | + | @Callable(F) | |
70 | 82 | func depositFunds () = { | |
71 | - | let | |
72 | - | then | |
83 | + | let H = if ((size(F.payments) == 1)) | |
84 | + | then F.payments[0] | |
73 | 85 | else throw("Please attach exactly one payment") | |
74 | - | if (( | |
86 | + | if ((H.assetId != fromBase58String(g))) | |
75 | 87 | then throw("You can only deposit USDN") | |
76 | 88 | else { | |
77 | - | let | |
78 | - | let | |
79 | - | $Tuple2([IntegerEntry( | |
89 | + | let I = toBase58String(F.caller.bytes) | |
90 | + | let J = h(u(I)) | |
91 | + | $Tuple2([IntegerEntry(u(I), (J + H.amount))], 1) | |
80 | 92 | } | |
81 | 93 | } | |
82 | 94 | ||
83 | 95 | ||
84 | 96 | ||
85 | - | @Callable(A) | |
86 | - | func playerExitGame (o,x,F) = if ((A.caller != this)) | |
97 | + | @Callable(F) | |
98 | + | func createTournament (o) = { | |
99 | + | let H = if ((size(F.payments) == 1)) | |
100 | + | then F.payments[0] | |
101 | + | else throw("Please attach exactly one payment") | |
102 | + | let K = { | |
103 | + | let j = H.assetId | |
104 | + | if ($isInstanceOf(j, "Unit")) | |
105 | + | then { | |
106 | + | let k = j | |
107 | + | "" | |
108 | + | } | |
109 | + | else if ($isInstanceOf(j, "ByteVector")) | |
110 | + | then { | |
111 | + | let k = j | |
112 | + | toBase58String(k) | |
113 | + | } | |
114 | + | else throw("Match error") | |
115 | + | } | |
116 | + | $Tuple2([IntegerEntry(n(o), H.amount), StringEntry(p(o), K), StringEntry(q(o), "registration")], 1) | |
117 | + | } | |
118 | + | ||
119 | + | ||
120 | + | ||
121 | + | @Callable(F) | |
122 | + | func finishTournament (o,L) = if ((F.caller != this)) | |
123 | + | then throw("Admin Only") | |
124 | + | else $Tuple2([StringEntry(r(o), L), StringEntry(q(o), "finished")], 1) | |
125 | + | ||
126 | + | ||
127 | + | ||
128 | + | @Callable(F) | |
129 | + | func playerExitGame (t,C,M) = if ((F.caller != this)) | |
87 | 130 | then throw("Admin Only") | |
88 | 131 | else { | |
89 | - | let | |
90 | - | let | |
91 | - | $Tuple2([IntegerEntry( | |
132 | + | let N = h(w(C)) | |
133 | + | let O = h(y(C, t)) | |
134 | + | $Tuple2([IntegerEntry(w(C), (N - O)), IntegerEntry(y(C, t), 0), ScriptTransfer(addressFromStringValue(C), M, fromBase58String(g))], 1) | |
92 | 135 | } | |
93 | 136 | ||
94 | 137 | ||
95 | 138 | ||
96 | - | @Callable( | |
97 | - | func lockFundsForGame ( | |
98 | - | let | |
99 | - | then | |
139 | + | @Callable(F) | |
140 | + | func lockFundsForGame (t) = { | |
141 | + | let H = if ((size(F.payments) == 1)) | |
142 | + | then F.payments[0] | |
100 | 143 | else throw("Please attach exactly one payment") | |
101 | - | if (( | |
144 | + | if ((H.assetId != fromBase58String(g))) | |
102 | 145 | then throw("You can only deposit USDN") | |
103 | 146 | else { | |
104 | - | let | |
105 | - | let | |
106 | - | let | |
107 | - | $Tuple2([IntegerEntry( | |
147 | + | let I = toBase58String(F.caller.bytes) | |
148 | + | let N = h(w(I)) | |
149 | + | let P = h(x(I)) | |
150 | + | $Tuple2([IntegerEntry(w(I), (N + H.amount)), IntegerEntry(x(I), (P + H.amount)), IntegerEntry(y(I, t), H.amount)], 1) | |
108 | 151 | } | |
109 | 152 | } | |
110 | 153 | ||
111 | 154 | ||
112 | 155 | ||
113 | - | @Callable( | |
156 | + | @Callable(F) | |
114 | 157 | func withdrawFunds () = { | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | let | |
119 | - | let | |
120 | - | if ((0 >= | |
158 | + | let I = toBase58String(F.caller.bytes) | |
159 | + | let Q = addressFromStringValue(getStringValue(f)) | |
160 | + | let J = h(u(I)) | |
161 | + | let R = fraction(J, e, 100) | |
162 | + | let S = (J - R) | |
163 | + | if ((0 >= S)) | |
121 | 164 | then throw("No available funds to withdraw") | |
122 | - | else [IntegerEntry( | |
165 | + | else [IntegerEntry(u(I), 0), ScriptTransfer(F.caller, S, fromBase58String(g)), ScriptTransfer(Q, R, fromBase58String(g))] | |
123 | 166 | } | |
124 | 167 | ||
125 | 168 | ||
126 | 169 | ||
127 | - | @Callable( | |
128 | - | func setWinnerHeadsUp ( | |
170 | + | @Callable(F) | |
171 | + | func setWinnerHeadsUp (t,T,U) = if ((F.caller != this)) | |
129 | 172 | then throw("Admin Only") | |
130 | 173 | else { | |
131 | - | let | |
132 | - | let | |
133 | - | let | |
134 | - | let | |
135 | - | [StringEntry( | |
174 | + | let V = z(T) | |
175 | + | let W = h(V) | |
176 | + | let X = B(T) | |
177 | + | let Y = B(U) | |
178 | + | [StringEntry(s(t), T), IntegerEntry(V, (W + (c * 2))), IntegerEntry(l(T), X), IntegerEntry(l(U), Y)] | |
136 | 179 | } | |
137 | 180 | ||
138 | 181 | ||
139 | 182 | ||
140 | - | @Callable( | |
183 | + | @Callable(F) | |
141 | 184 | func withdrawRewards () = { | |
142 | - | let | |
143 | - | let | |
144 | - | let | |
145 | - | let | |
146 | - | let | |
147 | - | if ((0 >= | |
185 | + | let I = toBase58String(F.caller.bytes) | |
186 | + | let Q = addressFromStringValue(getStringValue(f)) | |
187 | + | let W = h(z(I)) | |
188 | + | let R = fraction(W, e, 100) | |
189 | + | let Z = ((W - d) - R) | |
190 | + | if ((0 >= W)) | |
148 | 191 | then throw("No available rewards to withdraw") | |
149 | - | else [IntegerEntry( | |
192 | + | else [IntegerEntry(z(I), 0), ScriptTransfer(F.caller, Z, unit), ScriptTransfer(Q, R, unit)] | |
150 | 193 | } | |
151 | 194 | ||
152 | 195 | ||
153 | 196 | ||
154 | - | @Callable( | |
197 | + | @Callable(F) | |
155 | 198 | func buyTickets () = { | |
156 | - | let | |
157 | - | then | |
199 | + | let H = if ((size(F.payments) == 1)) | |
200 | + | then F.payments[0] | |
158 | 201 | else throw("Please attach exactly one payment") | |
159 | - | if (isDefined( | |
202 | + | if (isDefined(H.assetId)) | |
160 | 203 | then throw("Tickets can only ibe purchased in Waves") | |
161 | - | else if (( | |
204 | + | else if ((H.amount != c)) | |
162 | 205 | then throw((("The payment must be of exactly " + toString(b)) + " waves")) | |
163 | 206 | else { | |
164 | - | let | |
165 | - | let | |
166 | - | $Tuple2([IntegerEntry(l( | |
207 | + | let I = toBase58String(F.caller.bytes) | |
208 | + | let aa = h(l(I)) | |
209 | + | $Tuple2([IntegerEntry(l(I), (aa + 1))], 1) | |
167 | 210 | } | |
168 | 211 | } | |
169 | 212 | ||
170 | 213 | ||
171 | - | @Verifier( | |
172 | - | func | |
214 | + | @Verifier(ab) | |
215 | + | func ac () = sigVerify(ab.bodyBytes, ab.proofs[0], ab.senderPublicKey) | |
173 | 216 |
github/deemru/w8io/169f3d6 55.82 ms ◑![]()