tx · H7ZvmpTSvZN6uH3TDXDNmQx13EQjhZCrLSCGFNnKx9KY 3NAoJSThEgz12iLrRFSeMZpP1mEYc4QcGa3: -0.01000000 Waves 2023.12.07 14:33 [2876177] smart account 3NAoJSThEgz12iLrRFSeMZpP1mEYc4QcGa3 > SELF 0.00000000 Waves
{ "type": 13, "id": "H7ZvmpTSvZN6uH3TDXDNmQx13EQjhZCrLSCGFNnKx9KY", "fee": 1000000, "feeAssetId": null, "timestamp": 1701948799893, "version": 2, "chainId": 84, "sender": "3NAoJSThEgz12iLrRFSeMZpP1mEYc4QcGa3", "senderPublicKey": "5TXMdPyvDNfxhdixe86fk7Ya8FScpZGfZ6XNawu8sYK4", "proofs": [ "5vCHvLnuyouKuWLGtKPkD42v5AfGjinAwW4XWcpNyzcWrhQ6iPKqmZbQqRFueJvboX4524FWsDg1hyS4nxdggKUT" ], "script": "base64:BgIWCAISBwoFEREICAESAwoBCBIECgIIAQcAC0JBSV9BRERSRVNTAiMzTjl0S2l4enFUWVduRVhReHJEUTVwQlRHdlFkNnNGc3ZtVgAEVFlQRQIPY3Jhc2hFdmFsdWF0aW9uAAdCQUlfRkVFAICt4gQAEUFJX1RPS0VOX0FTU0VUX0lEASCT4XI4cQSbauiaYx8EJLdkU5csPrxmC4N0r2i7JI3iQgASVVNEX1RPS0VOX0FTU0VUX0lEASD0y7xo+2oaYWIjSL66wV175dmB7kJoGRUhLW0SJ79srAELcmVtb3ZlTWFya3MBC21hcmtzU3RyaW5nBAFhCQCwAgIFC21hcmtzU3RyaW5nAAEEAWIJALMCAgUBYQABBQFiAQlwYXJzZUpzb24BBGpzb24EDG1vZGlmaWVkSnNvbgkAsAICBQRqc29uAAEEDW1vZGlmaWVkSnNvbjIJALMCAgUMbW9kaWZpZWRKc29uAAEEBnNwbGl0MQkAtQkCBQ1tb2RpZmllZEpzb24yAgEsBAlrZXlWYWx1ZTEJALUJAgkAkQMCBQZzcGxpdDEAAAIBOgQEa2V5MQkBC3JlbW92ZU1hcmtzAQkAkQMCBQlrZXlWYWx1ZTEAAAQGdmFsdWUxCQELcmVtb3ZlTWFya3MBCQCRAwIFCWtleVZhbHVlMQABBAlrZXlWYWx1ZTIJALUJAgkAkQMCBQZzcGxpdDEAAQIBOgQEa2V5MgkBC3JlbW92ZU1hcmtzAQkAkQMCBQlrZXlWYWx1ZTIAAAQGdmFsdWUyCQELcmVtb3ZlTWFya3MBCQCRAwIFCWtleVZhbHVlMgABBAlrZXlWYWx1ZTMJALUJAgkAkQMCBQZzcGxpdDEAAgIBOgQEa2V5MwkBC3JlbW92ZU1hcmtzAQkAkQMCBQlrZXlWYWx1ZTMAAAQGdmFsdWUzCQELcmVtb3ZlTWFya3MBCQCRAwIFCWtleVZhbHVlMwABCQCVCgMJAMwIAgUEa2V5MQkAzAgCBQZ2YWx1ZTEFA25pbAkAzAgCBQRrZXkyCQDMCAIFBnZhbHVlMgUDbmlsCQDMCAIFBGtleTMJAMwIAgUGdmFsdWUzBQNuaWwDAWkBDHJlZ2lzdGVyRGF0YQULY2xpZW50SW5wdXQNb3Bwb25lbnRJbnB1dAJpZApvcHBBZGRyZXNzB2xndENvbmQEFXNlYXJjaEZvckV4aXN0aW5nRGF0YQQHJG1hdGNoMAkAoggBBQJpZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMCDm5vIERhdGEgZXhpc3RzAwkBAiE9AgUVc2VhcmNoRm9yRXhpc3RpbmdEYXRhAg5ubyBEYXRhIGV4aXN0cwkAAgECLVRoZXJlIGlzIGFscmVhZHkgZXhpc3RpbmcgRGF0YSBmb3IgdGhpcyBjYXNlIQQKcGFyYW1ldGVycwkAzAgCBQJpZAkAzAgCBQRUWVBFCQDMCAICFWV2YWx1YXRlZERhdGFDYWxsYmFjawUDbmlsBAZjbGllbnQJAKUIAQgFAWkGY2FsbGVyBAR0eElkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQDCQAAAgUGY2xpZW50BQpvcHBBZGRyZXNzCQACAQIzRm9yYmlkZGVuOiBTZW5kZXIgYWRkcmVzcyBlcXVhbHMgb3Bwb25lbnRzIGFkZHJlc3MhBAppbnZva2VUYXNrCQD8BwQJAQdBZGRyZXNzAQkA2QQBBQtCQUlfQUREUkVTUwIUcmVnaXN0ZXJUYXNrQ2FsbGJhY2sFCnBhcmFtZXRlcnMJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFEUFJX1RPS0VOX0FTU0VUX0lEBQdCQUlfRkVFBQNuaWwDCQECIT0CBQppbnZva2VUYXNrBQppbnZva2VUYXNrCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmlkBQR0eElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUGY2xpZW50AgRfYWdlCQCRAwIFC2NsaWVudElucHV0AAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFAmlkAgFfBQZjbGllbnQCBF9zZXgJAJEDAgULY2xpZW50SW5wdXQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUCaWQCAV8FBmNsaWVudAIHX2RhbWFnZQkAkQMCBQtjbGllbnRJbnB1dAACCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUGY2xpZW50AgVfZmFjMQkAkQMCBQtjbGllbnRJbnB1dAADCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUGY2xpZW50AgVfZmFjMgkAkQMCBQtjbGllbnRJbnB1dAAECQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUGY2xpZW50AgVfZmFjMwkAkQMCBQtjbGllbnRJbnB1dAAFCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUGY2xpZW50AgVfZmFjNAkAkQMCBQtjbGllbnRJbnB1dAAGCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUGY2xpZW50AgVfdmlvMQkAkQMCBQtjbGllbnRJbnB1dAAHCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUGY2xpZW50AgVfdmlvMgkAkQMCBQtjbGllbnRJbnB1dAAICQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUGY2xpZW50AgVfdmlvMwkAkQMCBQtjbGllbnRJbnB1dAAJCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUGY2xpZW50AgVfdmlvNAkAkQMCBQtjbGllbnRJbnB1dAAKCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUGY2xpZW50AgVfY29zdAkAkQMCBQtjbGllbnRJbnB1dAALCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUKb3BwQWRkcmVzcwIEX2FnZQkAkQMCBQ1vcHBvbmVudElucHV0AAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFAmlkAgFfBQpvcHBBZGRyZXNzAgRfc2V4CQCRAwIFDW9wcG9uZW50SW5wdXQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUCaWQCAV8FCm9wcEFkZHJlc3MCB19kYW1hZ2UJAJEDAgUNb3Bwb25lbnRJbnB1dAACCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUKb3BwQWRkcmVzcwIFX2ZhYzEJAJEDAgUNb3Bwb25lbnRJbnB1dAADCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUKb3BwQWRkcmVzcwIFX2ZhYzIJAJEDAgUNb3Bwb25lbnRJbnB1dAAECQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUKb3BwQWRkcmVzcwIFX2ZhYzMJAJEDAgUNb3Bwb25lbnRJbnB1dAAFCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUKb3BwQWRkcmVzcwIFX2ZhYzQJAJEDAgUNb3Bwb25lbnRJbnB1dAAGCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUKb3BwQWRkcmVzcwIFX3ZpbzEJAJEDAgUNb3Bwb25lbnRJbnB1dAAHCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUKb3BwQWRkcmVzcwIFX3ZpbzIJAJEDAgUNb3Bwb25lbnRJbnB1dAAICQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUKb3BwQWRkcmVzcwIFX3ZpbzMJAJEDAgUNb3Bwb25lbnRJbnB1dAAJCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUKb3BwQWRkcmVzcwIFX3ZpbzQJAJEDAgUNb3Bwb25lbnRJbnB1dAAKCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQJpZAIBXwUKb3BwQWRkcmVzcwIFX2Nvc3QJAJEDAgUNb3Bwb25lbnRJbnB1dAALCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFAmlkAgRfbGd0BQdsZ3RDb25kCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUCaWQCB19zdGF0dXMCBG9wZW4JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQJpZAIHX3NlbmRlcgUGY2xpZW50BQNuaWwBaQEVZXZhbHVhdGVkRGF0YUNhbGxiYWNrAQhyZXNwb25zZQQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBApwYXJzZWRKc29uCQEJcGFyc2VKc29uAQUIcmVzcG9uc2UEB2NyYXNoSWQJAJEDAggFCnBhcnNlZEpzb24CXzEAAQQPaW5ub2NlbnRBZGRyZXNzCQCRAwIIBQpwYXJzZWRKc29uAl8yAAEEDWd1aWx0eUFkZHJlc3MJAJEDAggFCnBhcnNlZEpzb24CXzMAAQQMUmVnaXN0ZXJUeElkBAckbWF0Y2gwCQCiCAEFB2NyYXNoSWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzAg5ubyBEYXRhIGV4aXN0cwMJAAACBQxSZWdpc3RlclR4SWQCDm5vIERhdGEgZXhpc3RzCQACAQIiVGhlcmUgaXMgbm8gRGF0YSBmb3IgdGhpcyBjcmFzaElkIQQGc3RhdHVzBAckbWF0Y2gwCQCiCAEJAKwCAgUHY3Jhc2hJZAIHX3N0YXR1cwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMCDm5vIERhdGEgZXhpc3RzAwkAAAIFBnN0YXR1cwIObm8gRGF0YSBleGlzdHMJAAIBAiFUaGVyZSBpcyBubyBzdGF0dXMgZm9yIHRoaXMgY2FzZSEDCQAAAgUGc3RhdHVzAgZjbG9zZWQJAAIBAiVBIGNhc2Ugc2hvdWxkIG5vdCBiZSBwYXllZCBvdXQgdHdpY2UhAwkAAAIFBnN0YXR1cwIJZXZhbHVhdGVkCQACAQIlQSBjYXNlIHNob3VsZCBub3QgYmUgZXZhbHVhdGVkIHR3aWNlIQQeY29zdEVzdGltYXRpb25PZklubm9jZW50UGVyc29uBAckbWF0Y2gwCQCfCAEJAKwCAgkArAICCQCsAgIFB2NyYXNoSWQCAV8FD2lubm9jZW50QWRkcmVzcwIFX2Nvc3QDCQABAgUHJG1hdGNoMAIDSW50BAFzBQckbWF0Y2gwBQFzAOz8/////////wEDCQAAAgUeY29zdEVzdGltYXRpb25PZklubm9jZW50UGVyc29uAOz8/////////wEJAAIBAidUaGVyZSBpcyBubyBjb3N0IGRhdGEgZm9yIHRoaXMgYWRkcmVzcyEDCQAAAgUeY29zdEVzdGltYXRpb25PZklubm9jZW50UGVyc29uAP///////////wEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQdjcmFzaElkAgVfZXZhbAUEdHhJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFB2NyYXNoSWQCEV9pbm5vY2VudF9hZGRyZXNzBQ9pbm5vY2VudEFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQdjcmFzaElkAg9fZ3VpbHR5X2FkZHJlc3MFDWd1aWx0eUFkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQdjcmFzaElkAgdfc3RhdHVzAglldmFsdWF0ZWQFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFB2NyYXNoSWQCBV9ldmFsBQR0eElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUHY3Jhc2hJZAIRX2lubm9jZW50X2FkZHJlc3MFD2lubm9jZW50QWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFB2NyYXNoSWQCD19ndWlsdHlfYWRkcmVzcwUNZ3VpbHR5QWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFB2NyYXNoSWQCB19zdGF0dXMCBmNsb3NlZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUPaW5ub2NlbnRBZGRyZXNzBR5jb3N0RXN0aW1hdGlvbk9mSW5ub2NlbnRQZXJzb24FElVTRF9UT0tFTl9BU1NFVF9JRAUDbmlsAWkBDXJlcXVlc3RQYXlvdXQCB2NyYXNoSWQGYW1vdW50BAZzZW5kZXIJAKUIAQgFAWkGY2FsbGVyBAR0eElkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBnN0YXR1cwQHJG1hdGNoMAkAoggBCQCsAgIFB2NyYXNoSWQCB19zdGF0dXMDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzAg5ubyBEYXRhIGV4aXN0cwMJAAACBQZzdGF0dXMCDm5vIERhdGEgZXhpc3RzCQACAQIhVGhlcmUgaXMgbm8gc3RhdHVzIGZvciB0aGlzIGNhc2UhAwkBAiE9AgUGc3RhdHVzAglldmFsdWF0ZWQJAAIBAjZPbmx5IGNhc2VzIHdpdGggZXZhbHVhdGVkIHN0YXR1cyBjYW4gcmVxdWVzdCBhIHBheW91dCEEEGVsaWdpYmxlX2FkZHJlc3MEByRtYXRjaDAJAKIIAQkArAICBQdjcmFzaElkAhFfaW5ub2NlbnRfYWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAFAXMCDm5vIERhdGEgZXhpc3RzAwkAAAIFBnN0YXR1cwIObm8gRGF0YSBleGlzdHMJAAIBAipUaGVyZSBpcyBubyBlbGlnaWJsZSBwZXJzb24gZm9yIHRoaXMgY2FzZSEDCQECIT0CBRBlbGlnaWJsZV9hZGRyZXNzBQZzZW5kZXIJAAIBAihZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIHJlcXVlc3QgYSBwYXlvdXQhCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQdjcmFzaElkAgFfBQZzZW5kZXICBV9jb3N0BQZhbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQdjcmFzaElkAgdfc3RhdHVzAgZjbG9zZWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBnNlbmRlcgUGYW1vdW50BRJVU0RfVE9LRU5fQVNTRVRfSUQFA25pbAECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXl4a+oY", "height": 2876177, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2mQu1Zd2j7zagJ7sL7S2gLTmTpoTfXAQvGWiFMtfg9h2 Next: none Diff:
Old | New | Differences | |
---|---|---|---|
9 | 9 | ||
10 | 10 | let d = base58'AxGKQRxKo4F2EbhrRq6N2tdLsxtMnpzQsS4QemV6V1W1' | |
11 | 11 | ||
12 | - | func e (f) = { | |
13 | - | let g = drop(f, 1) | |
14 | - | let h = dropRight(g, 1) | |
15 | - | h | |
12 | + | let e = base58'HUafUdHNmuLduuDkXiR7n6WA3LYf8rY2ySFbjkPWENV9' | |
13 | + | ||
14 | + | func f (g) = { | |
15 | + | let h = drop(g, 1) | |
16 | + | let i = dropRight(h, 1) | |
17 | + | i | |
16 | 18 | } | |
17 | 19 | ||
18 | 20 | ||
19 | - | func | |
20 | - | let | |
21 | - | let | |
22 | - | let | |
23 | - | let | |
24 | - | let | |
25 | - | let | |
26 | - | let | |
27 | - | let | |
28 | - | let | |
29 | - | let | |
30 | - | let | |
31 | - | let | |
32 | - | $Tuple3([ | |
21 | + | func j (k) = { | |
22 | + | let l = drop(k, 1) | |
23 | + | let m = dropRight(l, 1) | |
24 | + | let n = split(m, ",") | |
25 | + | let o = split(n[0], ":") | |
26 | + | let p = f(o[0]) | |
27 | + | let q = f(o[1]) | |
28 | + | let r = split(n[1], ":") | |
29 | + | let s = f(r[0]) | |
30 | + | let t = f(r[1]) | |
31 | + | let u = split(n[2], ":") | |
32 | + | let v = f(u[0]) | |
33 | + | let w = f(u[1]) | |
34 | + | $Tuple3([p, q], [s, t], [v, w]) | |
33 | 35 | } | |
34 | 36 | ||
35 | 37 | ||
36 | - | @Callable( | |
37 | - | func registerData ( | |
38 | - | let | |
39 | - | let | |
40 | - | if ($isInstanceOf( | |
38 | + | @Callable(x) | |
39 | + | func registerData (y,z,A,B,C) = { | |
40 | + | let D = { | |
41 | + | let E = getString(A) | |
42 | + | if ($isInstanceOf(E, "String")) | |
41 | 43 | then { | |
42 | - | let | |
43 | - | | |
44 | + | let F = E | |
45 | + | F | |
44 | 46 | } | |
45 | 47 | else "no Data exists" | |
46 | 48 | } | |
47 | - | if (( | |
49 | + | if ((D != "no Data exists")) | |
48 | 50 | then throw("There is already existing Data for this case!") | |
49 | 51 | else { | |
50 | - | let | |
51 | - | let | |
52 | - | let | |
53 | - | if (( | |
52 | + | let G = [A, b, "evaluatedDataCallback"] | |
53 | + | let H = toString(x.caller) | |
54 | + | let I = toBase58String(x.transactionId) | |
55 | + | if ((H == B)) | |
54 | 56 | then throw("Forbidden: Sender address equals opponents address!") | |
55 | 57 | else { | |
56 | - | let | |
57 | - | if (( | |
58 | + | let J = invoke(Address(fromBase58String(a)), "registerTaskCallback", G, [AttachedPayment(d, c)]) | |
59 | + | if ((J != J)) | |
58 | 60 | then throw("Strict value is not equal to itself.") | |
59 | - | else [StringEntry( | |
61 | + | else [StringEntry(A, I), IntegerEntry((((A + "_") + H) + "_age"), y[0]), IntegerEntry((((A + "_") + H) + "_sex"), y[1]), IntegerEntry((((A + "_") + H) + "_damage"), y[2]), IntegerEntry((((A + "_") + H) + "_fac1"), y[3]), IntegerEntry((((A + "_") + H) + "_fac2"), y[4]), IntegerEntry((((A + "_") + H) + "_fac3"), y[5]), IntegerEntry((((A + "_") + H) + "_fac4"), y[6]), IntegerEntry((((A + "_") + H) + "_vio1"), y[7]), IntegerEntry((((A + "_") + H) + "_vio2"), y[8]), IntegerEntry((((A + "_") + H) + "_vio3"), y[9]), IntegerEntry((((A + "_") + H) + "_vio4"), y[10]), IntegerEntry((((A + "_") + H) + "_cost"), y[11]), IntegerEntry((((A + "_") + B) + "_age"), z[0]), IntegerEntry((((A + "_") + B) + "_sex"), z[1]), IntegerEntry((((A + "_") + B) + "_damage"), z[2]), IntegerEntry((((A + "_") + B) + "_fac1"), z[3]), IntegerEntry((((A + "_") + B) + "_fac2"), z[4]), IntegerEntry((((A + "_") + B) + "_fac3"), z[5]), IntegerEntry((((A + "_") + B) + "_fac4"), z[6]), IntegerEntry((((A + "_") + B) + "_vio1"), z[7]), IntegerEntry((((A + "_") + B) + "_vio2"), z[8]), IntegerEntry((((A + "_") + B) + "_vio3"), z[9]), IntegerEntry((((A + "_") + B) + "_vio4"), z[10]), IntegerEntry((((A + "_") + B) + "_cost"), z[11]), IntegerEntry((A + "_lgt"), C), StringEntry((A + "_status"), "open"), StringEntry((A + "_sender"), H)] | |
60 | 62 | } | |
61 | 63 | } | |
62 | 64 | } | |
63 | 65 | ||
64 | 66 | ||
65 | 67 | ||
66 | - | @Callable( | |
67 | - | func evaluatedDataCallback ( | |
68 | - | let | |
69 | - | let | |
70 | - | let | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | if ($isInstanceOf( | |
68 | + | @Callable(x) | |
69 | + | func evaluatedDataCallback (K) = { | |
70 | + | let I = toBase58String(x.transactionId) | |
71 | + | let L = j(K) | |
72 | + | let M = L._1[1] | |
73 | + | let N = L._2[1] | |
74 | + | let O = L._3[1] | |
75 | + | let P = { | |
76 | + | let E = getString(M) | |
77 | + | if ($isInstanceOf(E, "String")) | |
76 | 78 | then { | |
77 | - | let | |
78 | - | | |
79 | + | let F = E | |
80 | + | F | |
79 | 81 | } | |
80 | 82 | else "no Data exists" | |
81 | 83 | } | |
82 | - | if (( | |
84 | + | if ((P == "no Data exists")) | |
83 | 85 | then throw("There is no Data for this crashId!") | |
84 | 86 | else { | |
85 | - | let | |
86 | - | let | |
87 | - | if ($isInstanceOf( | |
87 | + | let Q = { | |
88 | + | let E = getString((M + "_status")) | |
89 | + | if ($isInstanceOf(E, "String")) | |
88 | 90 | then { | |
89 | - | let | |
90 | - | | |
91 | + | let F = E | |
92 | + | F | |
91 | 93 | } | |
92 | 94 | else "no Data exists" | |
93 | 95 | } | |
94 | - | if (( | |
96 | + | if ((Q == "no Data exists")) | |
95 | 97 | then throw("There is no status for this case!") | |
96 | - | else if (( | |
98 | + | else if ((Q == "closed")) | |
97 | 99 | then throw("A case should not be payed out twice!") | |
98 | - | else if (( | |
100 | + | else if ((Q == "evaluated")) | |
99 | 101 | then throw("A case should not be evaluated twice!") | |
100 | 102 | else { | |
101 | - | let | |
102 | - | let | |
103 | - | if ($isInstanceOf( | |
103 | + | let R = { | |
104 | + | let E = getInteger((((M + "_") + N) + "_cost")) | |
105 | + | if ($isInstanceOf(E, "Int")) | |
104 | 106 | then { | |
105 | - | let | |
106 | - | | |
107 | + | let F = E | |
108 | + | F | |
107 | 109 | } | |
108 | - | else | |
110 | + | else -404 | |
109 | 111 | } | |
110 | - | if (( | |
112 | + | if ((R == -404)) | |
111 | 113 | then throw("There is no cost data for this address!") | |
112 | - | else if (( | |
113 | - | then [StringEntry(( | |
114 | - | else [StringEntry(( | |
114 | + | else if ((R == -1)) | |
115 | + | then [StringEntry((M + "_eval"), I), StringEntry((M + "_innocent_address"), N), StringEntry((M + "_guilty_address"), O), StringEntry((M + "_status"), "evaluated")] | |
116 | + | else [StringEntry((M + "_eval"), I), StringEntry((M + "_innocent_address"), N), StringEntry((M + "_guilty_address"), O), StringEntry((M + "_status"), "closed"), ScriptTransfer(Address(fromBase58String(N)), R, e)] | |
115 | 117 | } | |
116 | 118 | } | |
117 | 119 | } | |
118 | 120 | ||
119 | 121 | ||
120 | 122 | ||
121 | - | @Callable( | |
122 | - | func requestPayout ( | |
123 | - | let | |
124 | - | let | |
125 | - | let | |
126 | - | let | |
127 | - | if ($isInstanceOf( | |
123 | + | @Callable(x) | |
124 | + | func requestPayout (M,S) = { | |
125 | + | let T = toString(x.caller) | |
126 | + | let I = toBase58String(x.transactionId) | |
127 | + | let Q = { | |
128 | + | let E = getString((M + "_status")) | |
129 | + | if ($isInstanceOf(E, "String")) | |
128 | 130 | then { | |
129 | - | let | |
130 | - | | |
131 | + | let F = E | |
132 | + | F | |
131 | 133 | } | |
132 | 134 | else "no Data exists" | |
133 | 135 | } | |
134 | - | if (( | |
136 | + | if ((Q == "no Data exists")) | |
135 | 137 | then throw("There is no status for this case!") | |
136 | - | else if (( | |
138 | + | else if ((Q != "evaluated")) | |
137 | 139 | then throw("Only cases with evaluated status can request a payout!") | |
138 | 140 | else { | |
139 | - | let | |
140 | - | let | |
141 | - | if ($isInstanceOf( | |
141 | + | let U = { | |
142 | + | let E = getString((M + "_innocent_address")) | |
143 | + | if ($isInstanceOf(E, "String")) | |
142 | 144 | then { | |
143 | - | let | |
144 | - | | |
145 | + | let F = E | |
146 | + | F | |
145 | 147 | } | |
146 | 148 | else "no Data exists" | |
147 | 149 | } | |
148 | - | if (( | |
150 | + | if ((Q == "no Data exists")) | |
149 | 151 | then throw("There is no eligible person for this case!") | |
150 | - | else if (( | |
152 | + | else if ((U != T)) | |
151 | 153 | then throw("You are not allowed to request a payout!") | |
152 | - | else [IntegerEntry(((( | |
154 | + | else [IntegerEntry((((M + "_") + T) + "_cost"), S), StringEntry((M + "_status"), "closed"), ScriptTransfer(Address(fromBase58String(T)), S, e)] | |
153 | 155 | } | |
154 | 156 | } | |
155 | 157 | ||
156 | 158 | ||
157 | - | @Verifier( | |
158 | - | func | |
159 | + | @Verifier(V) | |
160 | + | func W () = sigVerify(V.bodyBytes, V.proofs[0], V.senderPublicKey) | |
159 | 161 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV" | |
5 | 5 | ||
6 | 6 | let b = "crashEvaluation" | |
7 | 7 | ||
8 | 8 | let c = 10000000 | |
9 | 9 | ||
10 | 10 | let d = base58'AxGKQRxKo4F2EbhrRq6N2tdLsxtMnpzQsS4QemV6V1W1' | |
11 | 11 | ||
12 | - | func e (f) = { | |
13 | - | let g = drop(f, 1) | |
14 | - | let h = dropRight(g, 1) | |
15 | - | h | |
12 | + | let e = base58'HUafUdHNmuLduuDkXiR7n6WA3LYf8rY2ySFbjkPWENV9' | |
13 | + | ||
14 | + | func f (g) = { | |
15 | + | let h = drop(g, 1) | |
16 | + | let i = dropRight(h, 1) | |
17 | + | i | |
16 | 18 | } | |
17 | 19 | ||
18 | 20 | ||
19 | - | func | |
20 | - | let | |
21 | - | let | |
22 | - | let | |
23 | - | let | |
24 | - | let | |
25 | - | let | |
26 | - | let | |
27 | - | let | |
28 | - | let | |
29 | - | let | |
30 | - | let | |
31 | - | let | |
32 | - | $Tuple3([ | |
21 | + | func j (k) = { | |
22 | + | let l = drop(k, 1) | |
23 | + | let m = dropRight(l, 1) | |
24 | + | let n = split(m, ",") | |
25 | + | let o = split(n[0], ":") | |
26 | + | let p = f(o[0]) | |
27 | + | let q = f(o[1]) | |
28 | + | let r = split(n[1], ":") | |
29 | + | let s = f(r[0]) | |
30 | + | let t = f(r[1]) | |
31 | + | let u = split(n[2], ":") | |
32 | + | let v = f(u[0]) | |
33 | + | let w = f(u[1]) | |
34 | + | $Tuple3([p, q], [s, t], [v, w]) | |
33 | 35 | } | |
34 | 36 | ||
35 | 37 | ||
36 | - | @Callable( | |
37 | - | func registerData ( | |
38 | - | let | |
39 | - | let | |
40 | - | if ($isInstanceOf( | |
38 | + | @Callable(x) | |
39 | + | func registerData (y,z,A,B,C) = { | |
40 | + | let D = { | |
41 | + | let E = getString(A) | |
42 | + | if ($isInstanceOf(E, "String")) | |
41 | 43 | then { | |
42 | - | let | |
43 | - | | |
44 | + | let F = E | |
45 | + | F | |
44 | 46 | } | |
45 | 47 | else "no Data exists" | |
46 | 48 | } | |
47 | - | if (( | |
49 | + | if ((D != "no Data exists")) | |
48 | 50 | then throw("There is already existing Data for this case!") | |
49 | 51 | else { | |
50 | - | let | |
51 | - | let | |
52 | - | let | |
53 | - | if (( | |
52 | + | let G = [A, b, "evaluatedDataCallback"] | |
53 | + | let H = toString(x.caller) | |
54 | + | let I = toBase58String(x.transactionId) | |
55 | + | if ((H == B)) | |
54 | 56 | then throw("Forbidden: Sender address equals opponents address!") | |
55 | 57 | else { | |
56 | - | let | |
57 | - | if (( | |
58 | + | let J = invoke(Address(fromBase58String(a)), "registerTaskCallback", G, [AttachedPayment(d, c)]) | |
59 | + | if ((J != J)) | |
58 | 60 | then throw("Strict value is not equal to itself.") | |
59 | - | else [StringEntry( | |
61 | + | else [StringEntry(A, I), IntegerEntry((((A + "_") + H) + "_age"), y[0]), IntegerEntry((((A + "_") + H) + "_sex"), y[1]), IntegerEntry((((A + "_") + H) + "_damage"), y[2]), IntegerEntry((((A + "_") + H) + "_fac1"), y[3]), IntegerEntry((((A + "_") + H) + "_fac2"), y[4]), IntegerEntry((((A + "_") + H) + "_fac3"), y[5]), IntegerEntry((((A + "_") + H) + "_fac4"), y[6]), IntegerEntry((((A + "_") + H) + "_vio1"), y[7]), IntegerEntry((((A + "_") + H) + "_vio2"), y[8]), IntegerEntry((((A + "_") + H) + "_vio3"), y[9]), IntegerEntry((((A + "_") + H) + "_vio4"), y[10]), IntegerEntry((((A + "_") + H) + "_cost"), y[11]), IntegerEntry((((A + "_") + B) + "_age"), z[0]), IntegerEntry((((A + "_") + B) + "_sex"), z[1]), IntegerEntry((((A + "_") + B) + "_damage"), z[2]), IntegerEntry((((A + "_") + B) + "_fac1"), z[3]), IntegerEntry((((A + "_") + B) + "_fac2"), z[4]), IntegerEntry((((A + "_") + B) + "_fac3"), z[5]), IntegerEntry((((A + "_") + B) + "_fac4"), z[6]), IntegerEntry((((A + "_") + B) + "_vio1"), z[7]), IntegerEntry((((A + "_") + B) + "_vio2"), z[8]), IntegerEntry((((A + "_") + B) + "_vio3"), z[9]), IntegerEntry((((A + "_") + B) + "_vio4"), z[10]), IntegerEntry((((A + "_") + B) + "_cost"), z[11]), IntegerEntry((A + "_lgt"), C), StringEntry((A + "_status"), "open"), StringEntry((A + "_sender"), H)] | |
60 | 62 | } | |
61 | 63 | } | |
62 | 64 | } | |
63 | 65 | ||
64 | 66 | ||
65 | 67 | ||
66 | - | @Callable( | |
67 | - | func evaluatedDataCallback ( | |
68 | - | let | |
69 | - | let | |
70 | - | let | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | let | |
75 | - | if ($isInstanceOf( | |
68 | + | @Callable(x) | |
69 | + | func evaluatedDataCallback (K) = { | |
70 | + | let I = toBase58String(x.transactionId) | |
71 | + | let L = j(K) | |
72 | + | let M = L._1[1] | |
73 | + | let N = L._2[1] | |
74 | + | let O = L._3[1] | |
75 | + | let P = { | |
76 | + | let E = getString(M) | |
77 | + | if ($isInstanceOf(E, "String")) | |
76 | 78 | then { | |
77 | - | let | |
78 | - | | |
79 | + | let F = E | |
80 | + | F | |
79 | 81 | } | |
80 | 82 | else "no Data exists" | |
81 | 83 | } | |
82 | - | if (( | |
84 | + | if ((P == "no Data exists")) | |
83 | 85 | then throw("There is no Data for this crashId!") | |
84 | 86 | else { | |
85 | - | let | |
86 | - | let | |
87 | - | if ($isInstanceOf( | |
87 | + | let Q = { | |
88 | + | let E = getString((M + "_status")) | |
89 | + | if ($isInstanceOf(E, "String")) | |
88 | 90 | then { | |
89 | - | let | |
90 | - | | |
91 | + | let F = E | |
92 | + | F | |
91 | 93 | } | |
92 | 94 | else "no Data exists" | |
93 | 95 | } | |
94 | - | if (( | |
96 | + | if ((Q == "no Data exists")) | |
95 | 97 | then throw("There is no status for this case!") | |
96 | - | else if (( | |
98 | + | else if ((Q == "closed")) | |
97 | 99 | then throw("A case should not be payed out twice!") | |
98 | - | else if (( | |
100 | + | else if ((Q == "evaluated")) | |
99 | 101 | then throw("A case should not be evaluated twice!") | |
100 | 102 | else { | |
101 | - | let | |
102 | - | let | |
103 | - | if ($isInstanceOf( | |
103 | + | let R = { | |
104 | + | let E = getInteger((((M + "_") + N) + "_cost")) | |
105 | + | if ($isInstanceOf(E, "Int")) | |
104 | 106 | then { | |
105 | - | let | |
106 | - | | |
107 | + | let F = E | |
108 | + | F | |
107 | 109 | } | |
108 | - | else | |
110 | + | else -404 | |
109 | 111 | } | |
110 | - | if (( | |
112 | + | if ((R == -404)) | |
111 | 113 | then throw("There is no cost data for this address!") | |
112 | - | else if (( | |
113 | - | then [StringEntry(( | |
114 | - | else [StringEntry(( | |
114 | + | else if ((R == -1)) | |
115 | + | then [StringEntry((M + "_eval"), I), StringEntry((M + "_innocent_address"), N), StringEntry((M + "_guilty_address"), O), StringEntry((M + "_status"), "evaluated")] | |
116 | + | else [StringEntry((M + "_eval"), I), StringEntry((M + "_innocent_address"), N), StringEntry((M + "_guilty_address"), O), StringEntry((M + "_status"), "closed"), ScriptTransfer(Address(fromBase58String(N)), R, e)] | |
115 | 117 | } | |
116 | 118 | } | |
117 | 119 | } | |
118 | 120 | ||
119 | 121 | ||
120 | 122 | ||
121 | - | @Callable( | |
122 | - | func requestPayout ( | |
123 | - | let | |
124 | - | let | |
125 | - | let | |
126 | - | let | |
127 | - | if ($isInstanceOf( | |
123 | + | @Callable(x) | |
124 | + | func requestPayout (M,S) = { | |
125 | + | let T = toString(x.caller) | |
126 | + | let I = toBase58String(x.transactionId) | |
127 | + | let Q = { | |
128 | + | let E = getString((M + "_status")) | |
129 | + | if ($isInstanceOf(E, "String")) | |
128 | 130 | then { | |
129 | - | let | |
130 | - | | |
131 | + | let F = E | |
132 | + | F | |
131 | 133 | } | |
132 | 134 | else "no Data exists" | |
133 | 135 | } | |
134 | - | if (( | |
136 | + | if ((Q == "no Data exists")) | |
135 | 137 | then throw("There is no status for this case!") | |
136 | - | else if (( | |
138 | + | else if ((Q != "evaluated")) | |
137 | 139 | then throw("Only cases with evaluated status can request a payout!") | |
138 | 140 | else { | |
139 | - | let | |
140 | - | let | |
141 | - | if ($isInstanceOf( | |
141 | + | let U = { | |
142 | + | let E = getString((M + "_innocent_address")) | |
143 | + | if ($isInstanceOf(E, "String")) | |
142 | 144 | then { | |
143 | - | let | |
144 | - | | |
145 | + | let F = E | |
146 | + | F | |
145 | 147 | } | |
146 | 148 | else "no Data exists" | |
147 | 149 | } | |
148 | - | if (( | |
150 | + | if ((Q == "no Data exists")) | |
149 | 151 | then throw("There is no eligible person for this case!") | |
150 | - | else if (( | |
152 | + | else if ((U != T)) | |
151 | 153 | then throw("You are not allowed to request a payout!") | |
152 | - | else [IntegerEntry(((( | |
154 | + | else [IntegerEntry((((M + "_") + T) + "_cost"), S), StringEntry((M + "_status"), "closed"), ScriptTransfer(Address(fromBase58String(T)), S, e)] | |
153 | 155 | } | |
154 | 156 | } | |
155 | 157 | ||
156 | 158 | ||
157 | - | @Verifier( | |
158 | - | func | |
159 | + | @Verifier(V) | |
160 | + | func W () = sigVerify(V.bodyBytes, V.proofs[0], V.senderPublicKey) | |
159 | 161 |
github/deemru/w8io/873ac7e 183.69 ms ◑![]()