tx · 9gwefKYkoqpQpkqcHvpyBDFMCV7LaU4z1H5QBsaEqdiX

3PPod6TWkaqUd5Hx2CkM236PFPreqLu1nhN:  -0.00700000 Waves

2022.09.18 00:25 [3299118] smart account 3PPod6TWkaqUd5Hx2CkM236PFPreqLu1nhN > SELF 0.00000000 Waves

{ "type": 13, "id": "9gwefKYkoqpQpkqcHvpyBDFMCV7LaU4z1H5QBsaEqdiX", "fee": 700000, "feeAssetId": null, "timestamp": 1663449981195, "version": 2, "chainId": 87, "sender": "3PPod6TWkaqUd5Hx2CkM236PFPreqLu1nhN", "senderPublicKey": "5XJeDoDVZrQ5rX8EcMWwMUHpYWs6CuAWoNgEn5rA8wgv", "proofs": [ "3LaxP4xHg8AoPRWxZPptbWb6mg3jJFrW1M6oBMubPuXqd3LqJUSu3hWg4BZ6YWFqr4BNbrpd6F9k1qwArhvLojey" ], "script": "base64:BgIhCAISBQoDCAEIEgQKAggBEgMKAQgSAwoBCBIECgIICBIAGgAEVVNETgEgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEACmZlZUFkZHJlc3MJAQdBZGRyZXNzAQEaAVcfqkivNjk8ZqY49VHF/62O5PcNLqNyO/oACW1pbkFtb3VudACAreIEAAxmZWVOdW1lcmF0b3IABQAOZmVlRGVub21pbmF0b3IABQEQZ2V0U3RhcnRCbG9ja0tleQEHZXZlbnRJZAkArAICBQdldmVudElkAgxfc3RhcnRfYmxvY2sBDmdldEVuZEJsb2NrS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCCl9lbmRfYmxvY2sBDmdldEZpbmlzaEF0S2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCEF9maW5pc2hfYXRfYmxvY2sBF2dldEFuc3dlckRhcHBBZGRyZXNzS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCDF9hbnN3ZXJfZGFwcAEXZ2V0QW5zd2VyRnVuY0FkZHJlc3NLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAIMX2Fuc3dlcl9mdW5jAQxnZXRSZXN1bHRLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAIHX3Jlc3VsdAEIZ2V0SWRLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAIDX2lkAQ1nZXRBbnN3ZXJOS2V5AgdldmVudElkAW4JAKwCAgkArAICBQdldmVudElkAghfYW5zd2VyXwkApAMBBQFuARJnZXRBbnN3ZXJzQ291bnRLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAIOX2Fuc3dlcnNfY291bnQBDGdldFN0YXR1c0tleQEHZXZlbnRJZAkArAICBQdldmVudElkAgdfc3RhdHVzAQpnZXREZXNjS2V5AQdldmVudElkCQCsAgIFB2V2ZW50SWQCDF9kZXNjcmlwdGlvbgERZ2V0VG90YWxBbW91bnRLZXkBB2V2ZW50SWQJAKwCAgUHZXZlbnRJZAINX3RvdGFsX2Ftb3VudAENZ2V0QW1vdW50TktleQIHZXZlbnRJZAFuCQCsAgIJAKwCAgkArAICBQdldmVudElkAgFfCQCkAwEFAW4CB19hbW91bnQBE2dldEFtb3VudEFkZHJlc3NLZXkCB2V2ZW50SWQHYWRkcmVzcwkArAICCQCsAgIJAKwCAgUHZXZlbnRJZAIBXwUHYWRkcmVzcwIHX2Ftb3VudAETZ2V0Q2hvaWNlQWRkcmVzc0tleQIHZXZlbnRJZAdhZGRyZXNzCQCsAgIJAKwCAgkArAICBQdldmVudElkAgFfBQdhZGRyZXNzAgdfY2hvaWNlARtnZXRBbHJlYWR5Q2xhaW1lZEFkZHJlc3NLZXkCB2V2ZW50SWQHYWRkcmVzcwkArAICCQCsAgIJAKwCAgUHZXZlbnRJZAIBXwUHYWRkcmVzcwIQX2FscmVhZHlfY2xhaW1lZAEPZ2V0QW5zd2VyUmVzdWx0AQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACA0ludAQBeAUHJG1hdGNoMAUBeAQBdAUHJG1hdGNoMAkAAgECBCNlcnIBCWdldFN0YXR1cwEHZXZlbnRJZAQGc3RhdHVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQxnZXRTdGF0dXNLZXkBBQdldmVudElkAgEjAwMJAAACBQZzdGF0dXMCCGZpbmlzaGVkBgkAAAIFBnN0YXR1cwIBIwUGc3RhdHVzBAhmaW5pc2hBdAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkBDmdldEZpbmlzaEF0S2V5AQUHZXZlbnRJZAQKc3RhcnRCbG9jawkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkBEGdldFN0YXJ0QmxvY2tLZXkBBQdldmVudElkBAhlbmRCbG9jawkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkBDmdldEVuZEJsb2NrS2V5AQUHZXZlbnRJZAMDCQBnAgUGaGVpZ2h0BQpzdGFydEJsb2NrCQBnAgUIZW5kQmxvY2sFBmhlaWdodAcCBmFjdGl2ZQMDCQBmAgUGaGVpZ2h0BQhlbmRCbG9jawkAZwIFCGZpbmlzaEF0BQZoZWlnaHQHAgR3YWl0AwkAZgIFBmhlaWdodAUIZmluaXNoQXQCCGZpbmlzaGVkCQACAQIOdW5rbm93biBzdGF0dXMBB2lzQWRtaW4BBmNhbGxlcgMJAAACBQZjYWxsZXIFBHRoaXMGBwENcmVnaXN0ZXJFdmVudAcEdHhpZARkZXNjCnN0YXJ0QmxvY2sIZW5kQmxvY2sIZmluaXNoQXQLY2hlY2tlckRhcHALY2hlY2tlckZ1bmMEB2V2ZW50SWQFBHR4aWQEDGFuc3dlclJlc3VsdAkBD2dldEFuc3dlclJlc3VsdAEJAPwHBAUEdGhpcwIFY2hlY2sJAMwIAgULY2hlY2tlckRhcHAJAMwIAgULY2hlY2tlckZ1bmMFA25pbAUDbmlsAwkAAAIFDGFuc3dlclJlc3VsdAUMYW5zd2VyUmVzdWx0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQZ2V0U3RhcnRCbG9ja0tleQEFB2V2ZW50SWQFCnN0YXJ0QmxvY2sJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5nZXRFbmRCbG9ja0tleQEFB2V2ZW50SWQFCGVuZEJsb2NrCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOZ2V0RmluaXNoQXRLZXkBBQdldmVudElkBQhmaW5pc2hBdAkAzAgCCQELU3RyaW5nRW50cnkCCQEXZ2V0QW5zd2VyRGFwcEFkZHJlc3NLZXkBBQdldmVudElkBQtjaGVja2VyRGFwcAkAzAgCCQELU3RyaW5nRW50cnkCCQEXZ2V0QW5zd2VyRnVuY0FkZHJlc3NLZXkBBQdldmVudElkBQtjaGVja2VyRnVuYwkAzAgCCQELU3RyaW5nRW50cnkCCQEKZ2V0RGVzY0tleQEFB2V2ZW50SWQFBGRlc2MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGdldFN0YXR1c0tleQEFB2V2ZW50SWQCBmFjdGl2ZQkAzAgCCQELU3RyaW5nRW50cnkCCQEIZ2V0SWRLZXkBBQdldmVudElkBQdldmVudElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1nZXRBbnN3ZXJOS2V5AgUHZXZlbnRJZAABAgJOTwkAzAgCCQELU3RyaW5nRW50cnkCCQENZ2V0QW5zd2VyTktleQIFB2V2ZW50SWQAAgIDWUVTCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESZ2V0QW5zd2Vyc0NvdW50S2V5AQUHZXZlbnRJZAACCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEMZ2V0UmVzdWx0S2V5AQUHZXZlbnRJZAABBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEGNoZWNrRXZlbnRBbnN3ZXIBB2V2ZW50SWQFA25pbAYBaQETc2ltcGxlUmVnaXN0ZXJFdmVudAMEZGVzYwpzdGFydEJsb2NrC2NoZWNrZXJGdW5jAwkBASEBCQEHaXNBZG1pbgEIBQFpBmNhbGxlcgkAAgECEW9ubHkgYWRtaW4gY2FuIGRvBAR0eGlkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQECGVuZEJsb2NrCQBkAgUKc3RhcnRCbG9jawCgCwQIZmluaXNoQXQJAGQCBQhlbmRCbG9jawCgCwQLY2hlY2tlckRhcHAJAKUIAQUEdGhpcwkBDXJlZ2lzdGVyRXZlbnQHBQR0eGlkBQRkZXNjBQpzdGFydEJsb2NrBQhlbmRCbG9jawUIZmluaXNoQXQFC2NoZWNrZXJEYXBwBQtjaGVja2VyRnVuYwFpAQZjaG9pY2UCB2V2ZW50SWQGY2hvaWNlBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQFY2hlY2sJAPwHBAUEdGhpcwILY2hlY2tSZXN1bHQJAMwIAgUHZXZlbnRJZAUDbmlsBQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrBAZzdGF0dXMJAQlnZXRTdGF0dXMBBQdldmVudElkAwkAAAIFBnN0YXR1cwIGYWN0aXZlAwMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBFVTRE4HBAZhbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AwkAZgIFCW1pbkFtb3VudAUGYW1vdW50CQACAQIbYW1vdW50IGlzIGxlc3MgdGhhbiBhbGxvd2VkBAxhbnN3ZXJzQ291bnQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJARJnZXRBbnN3ZXJzQ291bnRLZXkBBQdldmVudElkAwMJAAACBQZjaG9pY2UAAAYJAGYCBQZjaG9pY2UFDGFuc3dlcnNDb3VudAkAAgECEWNob2ljZSBpcyBpbnZhbGlkBAxjdXJyZW50VG90YWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBEWdldFRvdGFsQW1vdW50S2V5AQUHZXZlbnRJZAAABAtjaG9pY2VUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQENZ2V0QW1vdW50TktleQIFB2V2ZW50SWQFBmNob2ljZQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERZ2V0VG90YWxBbW91bnRLZXkBBQdldmVudElkCQBkAgUMY3VycmVudFRvdGFsBQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1nZXRBbW91bnROS2V5AgUHZXZlbnRJZAUGY2hvaWNlCQBkAgULY2hvaWNlVG90YWwFBmFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBE2dldENob2ljZUFkZHJlc3NLZXkCBQdldmVudElkBQdhZGRyZXNzBQZjaG9pY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARNnZXRBbW91bnRBZGRyZXNzS2V5AgUHZXZlbnRJZAUHYWRkcmVzcwUGYW1vdW50BQNuaWwJAAIBAgtCYWQgcGF5bWVudAkAAgECD1lvdSBjYW5gdCBkbyBpdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVjbGFpbQEHZXZlbnRJZAQHYWRkcmVzcwgFAWkGY2FsbGVyBAZzdGF0dXMJAQlnZXRTdGF0dXMBBQdldmVudElkAwkAAAIFBnN0YXR1cwIIZmluaXNoZWQEC3RvdGFsQW1vdW50CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzCQERZ2V0VG90YWxBbW91bnRLZXkBBQdldmVudElkBANmZWUJAGsDBQt0b3RhbEFtb3VudAUMZmVlTnVtZXJhdG9yBQ5mZWVEZW5vbWluYXRvcgQHcmV3YXJkcwkAZQIFC3RvdGFsQW1vdW50BQNmZWUDCQAAAgUHYWRkcmVzcwUKZmVlQWRkcmVzcwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQpmZWVBZGRyZXNzBQNmZWUFBFVTRE4FA25pbAQOYWxyZWFkeUNsYWltZWQJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwkBG2dldEFscmVhZHlDbGFpbWVkQWRkcmVzc0tleQIFB2V2ZW50SWQJAKUIAQUHYWRkcmVzcwcDBQ5hbHJlYWR5Q2xhaW1lZAkAAgECFlJld2FyZCBhbHJlYWR5IGNsYWltZWQEDWFkZHJlc3NDaG9pY2UJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJARNnZXRDaG9pY2VBZGRyZXNzS2V5AgUHZXZlbnRJZAkApQgBBQdhZGRyZXNzBAZyZXN1bHQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAQxnZXRSZXN1bHRLZXkBBQdldmVudElkBAtjaG9pY2VUb3RhbAkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkBDWdldEFtb3VudE5LZXkCBQdldmVudElkBQZyZXN1bHQEDWFkZHJlc3NBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJARNnZXRBbW91bnRBZGRyZXNzS2V5AgUHZXZlbnRJZAkApQgBBQdhZGRyZXNzAwkAAAIFDWFkZHJlc3NDaG9pY2UFBnJlc3VsdAQNYWRkcmVzc1Jld2FyZAkAawMFB3Jld2FyZHMFDWFkZHJlc3NBbW91bnQFC2Nob2ljZVRvdGFsCQDMCAIJAQxCb29sZWFuRW50cnkCCQETZ2V0Q2hvaWNlQWRkcmVzc0tleQIFB2V2ZW50SWQJAKUIAQUHYWRkcmVzcwYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUHYWRkcmVzcwUNYWRkcmVzc1Jld2FyZAUEVVNETgUDbmlsCQACAQIUU29tZXRoaW5nIHdlbnQgd3JvbmcJAAIBAg9Zb3UgY2FuYHQgZG8gaXQBaQELY2hlY2tSZXN1bHQBB2V2ZW50SWQEBnN0YXR1cwkBCWdldFN0YXR1cwEFB2V2ZW50SWQDCQAAAgUGc3RhdHVzAgZhY3RpdmUEC2NoZWNrZXJEYXBwCQCdCAIFBHRoaXMJARdnZXRBbnN3ZXJEYXBwQWRkcmVzc0tleQEFB2V2ZW50SWQEC2NoZWNrZXJGdW5jCQCdCAIFBHRoaXMJARdnZXRBbnN3ZXJGdW5jQWRkcmVzc0tleQEFB2V2ZW50SWQEDWN1cnJlbnRSZXN1bHQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAQxnZXRSZXN1bHRLZXkBBQdldmVudElkBAxhbnN3ZXJSZXN1bHQJAQ9nZXRBbnN3ZXJSZXN1bHQBCQD8BwQFBHRoaXMCBWNoZWNrCQDMCAIFC2NoZWNrZXJEYXBwCQDMCAIFC2NoZWNrZXJGdW5jBQNuaWwFA25pbAMJAAACBQxhbnN3ZXJSZXN1bHQFDGFuc3dlclJlc3VsdAMJAQIhPQIFDGFuc3dlclJlc3VsdAUNY3VycmVudFJlc3VsdAkAzAgCCQELU3RyaW5nRW50cnkCCQEMZ2V0U3RhdHVzS2V5AQUHZXZlbnRJZAIIZmluaXNoZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQxnZXRSZXN1bHRLZXkBBQdldmVudElkBQxhbnN3ZXJSZXN1bHQFA25pbAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIQRXZlbnQgbm90IGFjdGl2ZQFpAQVjaGVjawIEZGFwcAhmdW5jdGlvbgMJAQIhPQIFBHRoaXMIBQFpBmNhbGxlcgkAAgECEG9ubHkgbWFpbiBjYW4gZG8EDGFuc3dlclJlc3VsdAkBD2dldEFuc3dlclJlc3VsdAEJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUEZGFwcAUIZnVuY3Rpb24FA25pbAUDbmlsCQCUCgIFA25pbAUMYW5zd2VyUmVzdWx0AWkBEWNoZWNrVmlyZXNWZXN0aW5nAAMJAQIhPQIFBHRoaXMIBQFpBmNhbGxlcgkAAgECEG9ubHkgbWFpbiBjYW4gZG8EDm9wVmlyZXNBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUDJySkdmYjVNYmVpdlpOU3FkVm1zRDFZMk16OHk2SnIzWgQIZW5hYmxlZDAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUOb3BWaXJlc0FkZHJlc3MCDXN5c3RlbV9wYXVzZWQGBAhlbmFibGVkMQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQ5vcFZpcmVzQWRkcmVzcwIlb3BfbGlxdWlkYW9fYWxsX3dpdGhkcmF3VmVzdGVkX3BhdXNlZAYECGVuYWJsZWQyCQELdmFsdWVPckVsc2UCCQCbCAIFDm9wVmlyZXNBZGRyZXNzAipvcF9saXF1aWRhb19hbGxfd2l0aGRyYXdWZXN0ZWRfdXNkbl9wYXVzZWQGAwMDBQhlbmFibGVkMAUIZW5hYmxlZDEHBQhlbmFibGVkMgcJAJQKAgUDbmlsAAIJAJQKAgUDbmlsAAEA0mPChA==", "height": 3299118, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9essiegU7N7Nwxr6sx9WLTfte3eHBPLWXoVA9ppxmQCy Next: 6okKDWdfJ2Do89MwDMMBaut4WXbzUcpjugGWRoZ4iTGp Diff:
OldNewDifferences
114114 then throw("only admin can do")
115115 else {
116116 let txid = toBase58String(i.transactionId)
117- let endBlock = (startBlock + 3)
118- let finishAt = (endBlock + 3)
117+ let endBlock = (startBlock + 1440)
118+ let finishAt = (endBlock + 1440)
119119 let checkerDapp = toString(this)
120120 registerEvent(txid, desc, startBlock, endBlock, finishAt, checkerDapp, checkerFunc)
121121 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
55
66 let feeAddress = Address(base58'3P4pKfj9UZHqj6pb18921oSftYuQw35gExR')
77
88 let minAmount = 10000000
99
1010 let feeNumerator = 5
1111
1212 let feeDenominator = 5
1313
1414 func getStartBlockKey (eventId) = (eventId + "_start_block")
1515
1616
1717 func getEndBlockKey (eventId) = (eventId + "_end_block")
1818
1919
2020 func getFinishAtKey (eventId) = (eventId + "_finish_at_block")
2121
2222
2323 func getAnswerDappAddressKey (eventId) = (eventId + "_answer_dapp")
2424
2525
2626 func getAnswerFuncAddressKey (eventId) = (eventId + "_answer_func")
2727
2828
2929 func getResultKey (eventId) = (eventId + "_result")
3030
3131
3232 func getIdKey (eventId) = (eventId + "_id")
3333
3434
3535 func getAnswerNKey (eventId,n) = ((eventId + "_answer_") + toString(n))
3636
3737
3838 func getAnswersCountKey (eventId) = (eventId + "_answers_count")
3939
4040
4141 func getStatusKey (eventId) = (eventId + "_status")
4242
4343
4444 func getDescKey (eventId) = (eventId + "_description")
4545
4646
4747 func getTotalAmountKey (eventId) = (eventId + "_total_amount")
4848
4949
5050 func getAmountNKey (eventId,n) = (((eventId + "_") + toString(n)) + "_amount")
5151
5252
5353 func getAmountAddressKey (eventId,address) = (((eventId + "_") + address) + "_amount")
5454
5555
5656 func getChoiceAddressKey (eventId,address) = (((eventId + "_") + address) + "_choice")
5757
5858
5959 func getAlreadyClaimedAddressKey (eventId,address) = (((eventId + "_") + address) + "_already_claimed")
6060
6161
6262 func getAnswerResult (v) = match v {
6363 case x: Int =>
6464 x
6565 case t =>
6666 throw("#err")
6767 }
6868
6969
7070 func getStatus (eventId) = {
7171 let status = valueOrElse(getString(this, getStatusKey(eventId)), "#")
7272 if (if ((status == "finished"))
7373 then true
7474 else (status == "#"))
7575 then status
7676 else {
7777 let finishAt = getIntegerValue(this, getFinishAtKey(eventId))
7878 let startBlock = getIntegerValue(this, getStartBlockKey(eventId))
7979 let endBlock = getIntegerValue(this, getEndBlockKey(eventId))
8080 if (if ((height >= startBlock))
8181 then (endBlock >= height)
8282 else false)
8383 then "active"
8484 else if (if ((height > endBlock))
8585 then (finishAt >= height)
8686 else false)
8787 then "wait"
8888 else if ((height > finishAt))
8989 then "finished"
9090 else throw("unknown status")
9191 }
9292 }
9393
9494
9595 func isAdmin (caller) = if ((caller == this))
9696 then true
9797 else false
9898
9999
100100 func registerEvent (txid,desc,startBlock,endBlock,finishAt,checkerDapp,checkerFunc) = {
101101 let eventId = txid
102102 let answerResult = getAnswerResult(invoke(this, "check", [checkerDapp, checkerFunc], nil))
103103 if ((answerResult == answerResult))
104104 then [IntegerEntry(getStartBlockKey(eventId), startBlock), IntegerEntry(getEndBlockKey(eventId), endBlock), IntegerEntry(getFinishAtKey(eventId), finishAt), StringEntry(getAnswerDappAddressKey(eventId), checkerDapp), StringEntry(getAnswerFuncAddressKey(eventId), checkerFunc), StringEntry(getDescKey(eventId), desc), StringEntry(getStatusKey(eventId), "active"), StringEntry(getIdKey(eventId), eventId), StringEntry(getAnswerNKey(eventId, 1), "NO"), StringEntry(getAnswerNKey(eventId, 2), "YES"), IntegerEntry(getAnswersCountKey(eventId), 2), IntegerEntry(getResultKey(eventId), 1)]
105105 else throw("Strict value is not equal to itself.")
106106 }
107107
108108
109109 func checkEventAnswer (eventId) = nil
110110
111111
112112 @Callable(i)
113113 func simpleRegisterEvent (desc,startBlock,checkerFunc) = if (!(isAdmin(i.caller)))
114114 then throw("only admin can do")
115115 else {
116116 let txid = toBase58String(i.transactionId)
117- let endBlock = (startBlock + 3)
118- let finishAt = (endBlock + 3)
117+ let endBlock = (startBlock + 1440)
118+ let finishAt = (endBlock + 1440)
119119 let checkerDapp = toString(this)
120120 registerEvent(txid, desc, startBlock, endBlock, finishAt, checkerDapp, checkerFunc)
121121 }
122122
123123
124124
125125 @Callable(i)
126126 func choice (eventId,choice) = {
127127 let address = toString(i.caller)
128128 let check = invoke(this, "checkResult", [eventId], nil)
129129 if ((check == check))
130130 then {
131131 let status = getStatus(eventId)
132132 if ((status == "active"))
133133 then if (if ((size(i.payments) == 1))
134134 then (i.payments[0].assetId == USDN)
135135 else false)
136136 then {
137137 let amount = i.payments[0].amount
138138 if ((minAmount > amount))
139139 then throw("amount is less than allowed")
140140 else {
141141 let answersCount = getIntegerValue(this, getAnswersCountKey(eventId))
142142 if (if ((choice == 0))
143143 then true
144144 else (choice > answersCount))
145145 then throw("choice is invalid")
146146 else {
147147 let currentTotal = valueOrElse(getInteger(this, getTotalAmountKey(eventId)), 0)
148148 let choiceTotal = valueOrElse(getInteger(this, getAmountNKey(eventId, choice)), 0)
149149 [IntegerEntry(getTotalAmountKey(eventId), (currentTotal + amount)), IntegerEntry(getAmountNKey(eventId, choice), (choiceTotal + amount)), IntegerEntry(getChoiceAddressKey(eventId, address), choice), IntegerEntry(getAmountAddressKey(eventId, address), amount)]
150150 }
151151 }
152152 }
153153 else throw("Bad payment")
154154 else throw("You can`t do it")
155155 }
156156 else throw("Strict value is not equal to itself.")
157157 }
158158
159159
160160
161161 @Callable(i)
162162 func claim (eventId) = {
163163 let address = i.caller
164164 let status = getStatus(eventId)
165165 if ((status == "finished"))
166166 then {
167167 let totalAmount = getIntegerValue(this, getTotalAmountKey(eventId))
168168 let fee = fraction(totalAmount, feeNumerator, feeDenominator)
169169 let rewards = (totalAmount - fee)
170170 if ((address == feeAddress))
171171 then [ScriptTransfer(feeAddress, fee, USDN)]
172172 else {
173173 let alreadyClaimed = valueOrElse(getBoolean(this, getAlreadyClaimedAddressKey(eventId, toString(address))), false)
174174 if (alreadyClaimed)
175175 then throw("Reward already claimed")
176176 else {
177177 let addressChoice = getIntegerValue(this, getChoiceAddressKey(eventId, toString(address)))
178178 let result = getIntegerValue(this, getResultKey(eventId))
179179 let choiceTotal = getIntegerValue(this, getAmountNKey(eventId, result))
180180 let addressAmount = getIntegerValue(this, getAmountAddressKey(eventId, toString(address)))
181181 if ((addressChoice == result))
182182 then {
183183 let addressReward = fraction(rewards, addressAmount, choiceTotal)
184184 [BooleanEntry(getChoiceAddressKey(eventId, toString(address)), true), ScriptTransfer(address, addressReward, USDN)]
185185 }
186186 else throw("Something went wrong")
187187 }
188188 }
189189 }
190190 else throw("You can`t do it")
191191 }
192192
193193
194194
195195 @Callable(i)
196196 func checkResult (eventId) = {
197197 let status = getStatus(eventId)
198198 if ((status == "active"))
199199 then {
200200 let checkerDapp = getString(this, getAnswerDappAddressKey(eventId))
201201 let checkerFunc = getString(this, getAnswerFuncAddressKey(eventId))
202202 let currentResult = getIntegerValue(this, getResultKey(eventId))
203203 let answerResult = getAnswerResult(invoke(this, "check", [checkerDapp, checkerFunc], nil))
204204 if ((answerResult == answerResult))
205205 then if ((answerResult != currentResult))
206206 then [StringEntry(getStatusKey(eventId), "finished"), IntegerEntry(getResultKey(eventId), answerResult)]
207207 else nil
208208 else throw("Strict value is not equal to itself.")
209209 }
210210 else throw("Event not active")
211211 }
212212
213213
214214
215215 @Callable(i)
216216 func check (dapp,function) = if ((this != i.caller))
217217 then throw("only main can do")
218218 else {
219219 let answerResult = getAnswerResult(invoke(addressFromStringValue(dapp), function, nil, nil))
220220 $Tuple2(nil, answerResult)
221221 }
222222
223223
224224
225225 @Callable(i)
226226 func checkViresVesting () = if ((this != i.caller))
227227 then throw("only main can do")
228228 else {
229229 let opViresAddress = addressFromStringValue("3P2rJGfb5MbeivZNSqdVmsD1Y2Mz8y6Jr3Z")
230230 let enabled0 = valueOrElse(getBoolean(opViresAddress, "system_paused"), true)
231231 let enabled1 = valueOrElse(getBoolean(opViresAddress, "op_liquidao_all_withdrawVested_paused"), true)
232232 let enabled2 = valueOrElse(getBoolean(opViresAddress, "op_liquidao_all_withdrawVested_usdn_paused"), true)
233233 if (if (if (enabled0)
234234 then enabled1
235235 else false)
236236 then enabled2
237237 else false)
238238 then $Tuple2(nil, 2)
239239 else $Tuple2(nil, 1)
240240 }
241241
242242

github/deemru/w8io/6500d08 
38.57 ms