tx · DA3zoP5BzG6UaxYYQtqWdLZaQfRpDFJD9x3ocCjhRrvG

3PRAEZqBjrUDaDvv45HGWPb94DhD6UuZfWg:  -0.00600000 Waves

2023.09.19 13:10 [3827918] smart account 3PRAEZqBjrUDaDvv45HGWPb94DhD6UuZfWg > SELF 0.00000000 Waves

{ "type": 13, "id": "DA3zoP5BzG6UaxYYQtqWdLZaQfRpDFJD9x3ocCjhRrvG", "fee": 600000, "feeAssetId": null, "timestamp": 1695118248379, "version": 1, "sender": "3PRAEZqBjrUDaDvv45HGWPb94DhD6UuZfWg", "senderPublicKey": "DWfBoSph5SQ9fuKvBjSecymWnfmRnBFh9FYg2QEV6bwS", "proofs": [ "4gFo1LSTGe9e1uxVSqMJc1ggxm6WD3FGmWyYF3Nh8gfYWgaP1rjofGttEn8ddPwu4gY5775EEjdhQ29p58oGCn7q" ], "script": "base64:BgIXCAISBAoCCAESBgoECAEBBBIDCgEIEgAWABJjb25maWdBZGRyZXNzU3RvcmUCBmNvbmZpZwANY29uZmlnQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBRJjb25maWdBZGRyZXNzU3RvcmUCH2NoaWxkOiBjb25maWcgYWRkcmVzcyBub3QgZm91bmQCFmludmFsaWQgY29uZmlnIGFkZHJlc3MABkhFSUdIVAUGaGVpZ2h0AQ5vcEFsbG93ZWRTdG9yZQECb3AJAKwCAgkArAICAgNvcF8FAm9wAghfYWxsb3dlZAANdm90aW5nUmVzdWx0cwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAhZjb250cmFjdF92b3RpbmdfcmVzdWx0AhlubyBjb250cmFjdF92b3RpbmdfcmVzdWx0Ah5pbnZhbGlkIGNvbnRyYWN0X3ZvdGluZ19yZXN1bHQBFXdhdmVsZXRzUGVyQmxvY2tTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAhNfd2F2ZWxldHNfcGVyX2Jsb2NrARBzdGFydEhlaWdodFN0b3JlAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCDV9zdGFydF9oZWlnaHQBDGNsYWltZWRTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAhB3YXZlbGV0c19jbGFpbWVkAQ9jbGFpbWVkVVNEU3RvcmUBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwIVX3dhdmVsZXRzX2NsYWltZWRfdXNkARFtYXhDbGFpbWFibGVTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAhdfd2F2ZWxldHNfbWF4X2NsYWltYWJsZQEWbWF4Q2xhaW1hYmxlSXNVU0RTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAh5fd2F2ZWxldHNfbWF4X2NsYWltYWJsZV9pc191c2QACHN1bVN0b3JlAhZ3YXZlbGV0c19wZXJfYmxvY2tfc3VtAAhtYXhTdG9yZQIWd2F2ZWxldHNfcGVyX2Jsb2NrX21heAAHbWF4aW11bQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAhZ3YXZlbGV0c19wZXJfYmxvY2tfbWF4ALDQyVoABm9yYWNsZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAQt2YWx1ZU9yRWxzZQIJAKIIAQIGb3JhY2xlAiMzUEtrb2pLZGQ2QkJ6VGYxUlhiUVZmVURyYU5GWFhIS3pRRgIWaW52YWxpZCBvcmFjbGUgYWRkcmVzcwAOd2F2ZVByaWNlU3RvcmUJAQt2YWx1ZU9yRWxzZQIJAKIIAQIOd2F2ZS1wcmljZS1rZXkCFyVzJXNfX3ByaWNlX19XQVZFUy1VU0RUAAl3YXZlUHJpY2UJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQZvcmFjbGUFDndhdmVQcmljZVN0b3JlAiBXQVZFUyBwcmljZSBpcyBub3QgaW4gdGhlIE9yYWNsZQEKd2F2ZXNUb1VTRAEFd2F2ZXMJAGsDBQV3YXZlcwUJd2F2ZVByaWNlAMCEPQEKdXNkVG9XYXZlcwEFd2F2ZXMJAGsDBQV3YXZlcwCAwtcvBQl3YXZlUHJpY2UABm9sZFN1bQkBC3ZhbHVlT3JFbHNlAgkAnwgBBQhzdW1TdG9yZQAAAQxhdmFpbGFibGVOb3cBAnRvBAhwZXJCbG9jawkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJARV3YXZlbGV0c1BlckJsb2NrU3RvcmUBBQJ0bwIRYWRkcmVzcyBub3QgZm91bmQEBXRvdGFsAwkAAAIFCHBlckJsb2NrAAAAAAQKZmlyc3RCbG9jawkBBXZhbHVlAQkAnwgBCQEQc3RhcnRIZWlnaHRTdG9yZQEFAnRvBAZibG9ja3MJAGUCBQZoZWlnaHQFCmZpcnN0QmxvY2sJAGgCBQhwZXJCbG9jawUGYmxvY2tzBAxjbGFpbWVkV0FWRVMJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBDGNsYWltZWRTdG9yZQEFAnRvAAAECXJlc3RXYXZlcwkAZQIFBXRvdGFsBQxjbGFpbWVkV0FWRVMEDG1heENsYWltYWJsZQkAnwgBCQERbWF4Q2xhaW1hYmxlU3RvcmUBBQJ0bwMJAQlpc0RlZmluZWQBBQxtYXhDbGFpbWFibGUEEW1heENsYWltYWJsZVZhbHVlCQEFdmFsdWUBBQxtYXhDbGFpbWFibGUDCQELdmFsdWVPckVsc2UCCQCgCAEJARZtYXhDbGFpbWFibGVJc1VTRFN0b3JlAQUCdG8HBApjbGFpbWVkVVNECQELdmFsdWVPckVsc2UCCQCfCAEJAQ9jbGFpbWVkVVNEU3RvcmUBBQJ0bwkBCndhdmVzVG9VU0QBBQxjbGFpbWVkV0FWRVMEB3Jlc3RVU0QJAGUCBRFtYXhDbGFpbWFibGVWYWx1ZQUKY2xhaW1lZFVTRAQOcmVzdFVzZEluV2F2ZXMJAQp1c2RUb1dhdmVzAQUHcmVzdFVTRAkAlwMBCQDMCAIFDnJlc3RVc2RJbldhdmVzCQDMCAIFCXJlc3RXYXZlcwUDbmlsBAVncmFudAkAlwMBCQDMCAIFBXRvdGFsCQDMCAIFEW1heENsYWltYWJsZVZhbHVlBQNuaWwJAGUCBQVncmFudAUMY2xhaW1lZFdBVkVTBQlyZXN0V2F2ZXMBE3NldFNjaGVkdWxlSW50ZXJuYWwFAnRvEHdhdmVsZXRzUGVyQmxvY2sMbWF4Q2xhaW1hYmxlEWlzTWF4Q2xhaW1hYmxlVVNEA3N1bQMJAGYCAAAFEHdhdmVsZXRzUGVyQmxvY2sJAAIBAh93YXZlbGV0c1BlckJsb2NrIHNob3VsZCBiZSA+PSAwBA1wZXJCbG9ja1N0b3JlCQEVd2F2ZWxldHNQZXJCbG9ja1N0b3JlAQUCdG8EC29sZFBlckJsb2NrCQELdmFsdWVPckVsc2UCCQCfCAEFDXBlckJsb2NrU3RvcmUAAAQGbmV3U3VtCQBkAgkAZQIFA3N1bQULb2xkUGVyQmxvY2sFEHdhdmVsZXRzUGVyQmxvY2sEDGhlaWdodFN0b3JlMQkBEHN0YXJ0SGVpZ2h0U3RvcmUBBQJ0bwQHY2xhaW1lZAkBDGNsYWltZWRTdG9yZQEFAnRvAwkAZgIFBm5ld1N1bQUHbWF4aW11bQkAAgECEG1heGltdW0gZXhjZWVkZWQEEm1heENsYWltYWJsZVN0b3JlMQkBEW1heENsYWltYWJsZVN0b3JlAQUCdG8EF21heENsYWltYWJsZUlzVVNEU3RvcmUxCQEWbWF4Q2xhaW1hYmxlSXNVU0RTdG9yZQEFAnRvBBFtYXhDbGFpbWFibGVFbnRyeQMJAAACBQxtYXhDbGFpbWFibGUAAAUDbmlsAwkAZgIAAAUMbWF4Q2xhaW1hYmxlCQDMCAIJAQtEZWxldGVFbnRyeQEFEm1heENsYWltYWJsZVN0b3JlMQkAzAgCCQELRGVsZXRlRW50cnkBBRdtYXhDbGFpbWFibGVJc1VTRFN0b3JlMQUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJtYXhDbGFpbWFibGVTdG9yZTEFDG1heENsYWltYWJsZQkAzAgCCQEMQm9vbGVhbkVudHJ5AgUXbWF4Q2xhaW1hYmxlSXNVU0RTdG9yZTEFEWlzTWF4Q2xhaW1hYmxlVVNEBQNuaWwJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1wZXJCbG9ja1N0b3JlBRB3YXZlbGV0c1BlckJsb2NrCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxoZWlnaHRTdG9yZTEFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUHY2xhaW1lZAkBAS0BCQEMYXZhaWxhYmxlTm93AQUCdG8JAMwIAgkBDEludGVnZXJFbnRyeQIFCHN1bVN0b3JlBQZuZXdTdW0FA25pbAURbWF4Q2xhaW1hYmxlRW50cnkFBm5ld1N1bQQBaQEKc2V0U2NlZHVsZQICdG8Qd2F2ZWxldHNQZXJCbG9jawMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECBmRlbmllZAkBE3NldFNjaGVkdWxlSW50ZXJuYWwFBQJ0bwUQd2F2ZWxldHNQZXJCbG9jawAABwUGb2xkU3VtAWkBC3NldFNjaGVkdWxlBAJ0bxB3YXZlbGV0c1BlckJsb2NrDG1heENsYWltYWJsZRFpc01heENsYWltYWJsZVVTRAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECBmRlbmllZAkBE3NldFNjaGVkdWxlSW50ZXJuYWwFBQJ0bwUQd2F2ZWxldHNQZXJCbG9jawUMbWF4Q2xhaW1hYmxlBRFpc01heENsYWltYWJsZVVTRAUGb2xkU3VtAWkBEHNldE11bHRpU2NoZWR1bGUBCXNjaGVkdWxlcwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECBmRlbmllZAoBBGZvbGQCA2FjYwhzY2hlZHVsZQMJAAACBQhzY2hlZHVsZQIACQACAQIRaW52YWxpZCBzY2hlZHVsZXMEBXBhcnRzCQC1CQIFCHNjaGVkdWxlAgE9AwkBAiE9AgkAkAMBBQVwYXJ0cwACCQACAQIqaW52YWxpZCBmb3JtYXQ6IGFkcj13YXZlbGV0c1BlckJsb2NrWyxtYXhdBAJ0bwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUFcGFydHMAAAkArAICAhFpbnZhbGlkIGFkZHJlc3M6IAkAkQMCBQVwYXJ0cwAABA1ibG9ja01heFBhcnRzCQC1CQIJAJEDAgUFcGFydHMAAQIBLAQId2F2ZWxldHMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFDWJsb2NrTWF4UGFydHMAAAkArAICAhlpbnZhbGlkIHdhdmV0ZXRzIG51bWJlcjogCQCRAwIFDWJsb2NrTWF4UGFydHMAAAQLJHQwNTIyOTU1OTUDCQAAAgkAkAMBBQ1ibG9ja01heFBhcnRzAAIEDW1heEFuZFVzZFBhcnQJALUJAgkAkQMCBQ1ibG9ja01heFBhcnRzAAECASQJAJQKAgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEJAJEDAgUNbWF4QW5kVXNkUGFydAAACQCsAgICFGludmFsaWQgbWF4IG51bWJlcjogCQCRAwIFDW1heEFuZFVzZFBhcnQAAAkAAAIJAJADAQUNbWF4QW5kVXNkUGFydAACCQCUCgIAAAcEDG1heENsYWltYWJsZQgFCyR0MDUyMjk1NTk1Al8xBBFpc01heENsYWltYWJsZVVTRAgFCyR0MDUyMjk1NTk1Al8yBAskdDA1NjEzNTY0NQUDYWNjBARjbWRzCAULJHQwNTYxMzU2NDUCXzEEA3N1bQgFCyR0MDU2MTM1NjQ1Al8yBAlhZGRyZXNzZXMIBQskdDA1NjEzNTY0NQJfMwQFdG9TdHIJAKUIAQUCdG8DCQEJaXNEZWZpbmVkAQkAzwgCBQlhZGRyZXNzZXMFBXRvU3RyCQACAQkArAICAgtkdWJsaWNhdGU6IAUFdG9TdHIECyR0MDU3NzY1ODc0CQETc2V0U2NoZWR1bGVJbnRlcm5hbAUFBXRvU3RyBQh3YXZlbGV0cwUMbWF4Q2xhaW1hYmxlBRFpc01heENsYWltYWJsZVVTRAUDc3VtBAduZXdDbWRzCAULJHQwNTc3NjU4NzQCXzEEBm5ld1N1bQgFCyR0MDU3NzY1ODc0Al8yCQCVCgMJAM4IAgUEY21kcwUHbmV3Q21kcwUGbmV3U3VtCQDOCAIFCWFkZHJlc3NlcwkAzAgCBQV0b1N0cgUDbmlsBAskdDA1OTQyNjAxOAoAAiRsCQC1CQIFCXNjaGVkdWxlcwIBfAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJUKAwUDbmlsBQZvbGRTdW0FA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEEZm9sZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMjAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUBARjbWRzCAULJHQwNTk0MjYwMTgCXzEEA3N1bQgFCyR0MDU5NDI2MDE4Al8yBAJ4XwgFCyR0MDU5NDI2MDE4Al8zCQCUCgIFBGNtZHMFA3N1bQFpAQVDbGFpbQAEBXRvQWRyCAUBaQZjYWxsZXIEAnRvCQClCAEFBXRvQWRyBAZhbW91bnQJAQxhdmFpbGFibGVOb3cBBQJ0bwQHcGF5bWVudAkAlwMBCQDMCAIICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDMCAIFBmFtb3VudAUDbmlsAwkAZwIAAAUHcGF5bWVudAkAAgECEG5vdGhpbmcgdG8gY2xhaW0EDWNsYWltZWRTdG9yZTEJAQxjbGFpbWVkU3RvcmUBBQJ0bwQHY2xhaW1lZAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQ1jbGFpbWVkU3RvcmUxAAAEEGNsYWltZWRVU0RTdG9yZTEJAQ9jbGFpbWVkVVNEU3RvcmUBBQJ0bwQKY2xhaW1lZFVTRAkBC3ZhbHVlT3JFbHNlAgkAnwgBBRBjbGFpbWVkVVNEU3RvcmUxCQEKd2F2ZXNUb1VTRAEFB2NsYWltZWQECnBheW1lbnRVU0QJAQp3YXZlc1RvVVNEAQUHcGF5bWVudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQV0b0FkcgUHcGF5bWVudAUEdW5pdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUNY2xhaW1lZFN0b3JlMQkAZAIFB2NsYWltZWQFB3BheW1lbnQJAMwIAgkBDEludGVnZXJFbnRyeQIFEGNsYWltZWRVU0RTdG9yZTEJAGQCBQpjbGFpbWVkVVNEBQpwYXltZW50VVNEBQNuaWwAKVc5SQ==", "chainId": 87, "height": 3827918, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7W7Lhxp1ZmDEneRwiMC4v4uNunyMbf9D65grj5kpoECo Next: FHsaor6cMeoAeY9YKV5MkHMXAFAwYu4R588EGRhMP2xK Diff:
OldNewDifferences
5151 let w = valueOrElse(getInteger(n), 0)
5252
5353 func x (y) = {
54- let z = getInteger(g(y))
55- let A = if (!(isDefined(z)))
54+ let z = valueOrErrorMessage(getInteger(g(y)), "address not found")
55+ let A = if ((z == 0))
5656 then 0
5757 else {
5858 let B = value(getInteger(i(y)))
5959 let C = (height - B)
60- (value(z) * C)
60+ (z * C)
6161 }
6262 let D = valueOrElse(getInteger(j(y)), 0)
6363 let E = (A - D)
6464 let F = getInteger(l(y))
6565 if (isDefined(F))
66- then if (valueOrElse(getBoolean(m(y)), false))
67- then {
68- let G = valueOrElse(getInteger(k(y)), t(D))
69- let H = (value(F) - G)
70- let I = v(H)
71- min([I, E])
72- }
73- else {
74- let J = min([A, value(F)])
75- (J - D)
76- }
66+ then {
67+ let G = value(F)
68+ if (valueOrElse(getBoolean(m(y)), false))
69+ then {
70+ let H = valueOrElse(getInteger(k(y)), t(D))
71+ let I = (G - H)
72+ let J = v(I)
73+ min([J, E])
74+ }
75+ else {
76+ let K = min([A, G])
77+ (K - D)
78+ }
79+ }
7780 else E
7881 }
7982
8083
81-func K (y,L,F,M,N) = if ((0 > L))
84+func L (y,M,F,N,O) = if ((0 > M))
8285 then throw("waveletsPerBlock should be >= 0")
8386 else {
84- let O = g(y)
85- let P = valueOrElse(getInteger(O), 0)
86- let Q = ((N - P) + L)
87- let R = i(y)
88- let S = j(y)
89- if ((Q > p))
87+ let P = g(y)
88+ let Q = valueOrElse(getInteger(P), 0)
89+ let R = ((O - Q) + M)
90+ let S = i(y)
91+ let T = j(y)
92+ if ((R > p))
9093 then throw("maximum exceeded")
9194 else {
92- let T = l(y)
93- let U = m(y)
94- let V = if ((F == 0))
95+ let U = l(y)
96+ let V = m(y)
97+ let W = if ((F == 0))
9598 then nil
9699 else if ((0 > F))
97- then [DeleteEntry(T), DeleteEntry(U)]
98- else [IntegerEntry(T, F), BooleanEntry(U, M)]
99- $Tuple2(([IntegerEntry(O, L), IntegerEntry(R, height), IntegerEntry(S, -(x(y))), IntegerEntry(n, Q)] ++ V), Q)
100+ then [DeleteEntry(U), DeleteEntry(V)]
101+ else [IntegerEntry(U, F), BooleanEntry(V, N)]
102+ $Tuple2(([IntegerEntry(P, M), IntegerEntry(S, height), IntegerEntry(T, -(x(y))), IntegerEntry(n, R)] ++ W), R)
100103 }
101104 }
102105
103106
104-@Callable(W)
105-func setScedule (y,L) = if ((W.caller != this))
107+@Callable(X)
108+func setScedule (y,M) = if ((X.caller != this))
106109 then throw("denied")
107- else K(y, L, 0, false, w)
110+ else L(y, M, 0, false, w)
108111
109112
110113
111-@Callable(W)
112-func setSchedule (y,L,F,M) = if ((W.caller != this))
114+@Callable(X)
115+func setSchedule (y,M,F,N) = if ((X.caller != this))
113116 then throw("denied")
114- else K(y, L, F, M, w)
117+ else L(y, M, F, N, w)
115118
116119
117120
118-@Callable(W)
119-func setMultiSchedule (X) = if ((W.caller != this))
121+@Callable(X)
122+func setMultiSchedule (Y) = if ((X.caller != this))
120123 then throw("denied")
121124 else {
122- func Y (Z,aa) = if ((aa == ""))
125+ func Z (aa,ab) = if ((ab == ""))
123126 then throw("invalid schedules")
124127 else {
125- let ab = split(aa, "=")
126- if ((size(ab) != 2))
128+ let ac = split(ab, "=")
129+ if ((size(ac) != 2))
127130 then throw("invalid format: adr=waveletsPerBlock[,max]")
128131 else {
129- let y = valueOrErrorMessage(addressFromString(ab[0]), ("invalid address: " + ab[0]))
130- let ac = split(ab[1], ",")
131- let ad = valueOrErrorMessage(parseInt(ac[0]), ("invalid wavetets number: " + ac[0]))
132- let ae = if ((size(ac) == 2))
132+ let y = valueOrErrorMessage(addressFromString(ac[0]), ("invalid address: " + ac[0]))
133+ let ad = split(ac[1], ",")
134+ let ae = valueOrErrorMessage(parseInt(ad[0]), ("invalid wavetets number: " + ad[0]))
135+ let af = if ((size(ad) == 2))
133136 then {
134- let af = split(ac[1], "$")
135- $Tuple2(valueOrErrorMessage(parseInt(af[0]), ("invalid max number: " + af[0])), (size(af) == 2))
137+ let ag = split(ad[1], "$")
138+ $Tuple2(valueOrErrorMessage(parseInt(ag[0]), ("invalid max number: " + ag[0])), (size(ag) == 2))
136139 }
137140 else $Tuple2(0, false)
138- let F = ae._1
139- let M = ae._2
140- let ag = Z
141- let ah = ag._1
142- let N = ag._2
143- let ai = ag._3
144- let aj = toString(y)
145- if (isDefined(indexOf(ai, aj)))
146- then throw(("dublicate: " + aj))
141+ let F = af._1
142+ let N = af._2
143+ let ah = aa
144+ let ai = ah._1
145+ let O = ah._2
146+ let aj = ah._3
147+ let ak = toString(y)
148+ if (isDefined(indexOf(aj, ak)))
149+ then throw(("dublicate: " + ak))
147150 else {
148- let ak = K(aj, ad, F, M, N)
149- let al = ak._1
150- let Q = ak._2
151- $Tuple3((ah ++ al), Q, (ai ++ [aj]))
151+ let al = L(ak, ae, F, N, O)
152+ let am = al._1
153+ let R = al._2
154+ $Tuple3((ai ++ am), R, (aj ++ [ak]))
152155 }
153156 }
154157 }
155158
156- let am = {
157- let an = split(X, "|")
158- let ao = size(an)
159- let ap = $Tuple3(nil, w, nil)
160- func aq (ar,as) = if ((as >= ao))
161- then ar
162- else Y(ar, an[as])
159+ let an = {
160+ let ao = split(Y, "|")
161+ let ap = size(ao)
162+ let aq = $Tuple3(nil, w, nil)
163+ func ar (as,at) = if ((at >= ap))
164+ then as
165+ else Z(as, ao[at])
163166
164- func at (ar,as) = if ((as >= ao))
165- then ar
167+ func au (as,at) = if ((at >= ap))
168+ then as
166169 else throw("List size exceeds 20")
167170
168- at(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(ap, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
171+ au(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
169172 }
170- let ah = am._1
171- let N = am._2
172- let au = am._3
173- $Tuple2(ah, N)
173+ let ai = an._1
174+ let O = an._2
175+ let av = an._3
176+ $Tuple2(ai, O)
174177 }
175178
176179
177180
178-@Callable(W)
181+@Callable(X)
179182 func Claim () = {
180- let av = W.caller
181- let y = toString(av)
182- let aw = valueOrErrorMessage(getInteger(g(y)), "address not found")
183- if ((aw == aw))
184- then {
185- let ax = x(y)
186- let ay = min([wavesBalance(this).available, ax])
187- if ((0 >= ay))
188- then throw("nothing to claim")
189- else {
190- let az = j(y)
191- let S = valueOrElse(getInteger(az), 0)
192- let aA = k(y)
193- let G = valueOrElse(getInteger(aA), t(S))
194- let aB = t(ay)
195-[ScriptTransfer(av, ay, unit), IntegerEntry(az, (S + ay)), IntegerEntry(aA, (G + aB))]
196- }
183+ let aw = X.caller
184+ let y = toString(aw)
185+ let ax = x(y)
186+ let ay = min([wavesBalance(this).available, ax])
187+ if ((0 >= ay))
188+ then throw("nothing to claim")
189+ else {
190+ let az = j(y)
191+ let T = valueOrElse(getInteger(az), 0)
192+ let aA = k(y)
193+ let H = valueOrElse(getInteger(aA), t(T))
194+ let aB = t(ay)
195+[ScriptTransfer(aw, ay, unit), IntegerEntry(az, (T + ay)), IntegerEntry(aA, (H + aB))]
197196 }
198- else throw("Strict value is not equal to itself.")
199197 }
200198
201199
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "config"
55
66 let b = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, a), "child: config address not found")), "invalid config address")
77
88 let c = height
99
1010 func d (e) = (("op_" + e) + "_allowed")
1111
1212
1313 let f = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(b, "contract_voting_result"), "no contract_voting_result")), "invalid contract_voting_result")
1414
1515 func g (h) = (h + "_wavelets_per_block")
1616
1717
1818 func i (h) = (h + "_start_height")
1919
2020
2121 func j (h) = (h + "wavelets_claimed")
2222
2323
2424 func k (h) = (h + "_wavelets_claimed_usd")
2525
2626
2727 func l (h) = (h + "_wavelets_max_claimable")
2828
2929
3030 func m (h) = (h + "_wavelets_max_claimable_is_usd")
3131
3232
3333 let n = "wavelets_per_block_sum"
3434
3535 let o = "wavelets_per_block_max"
3636
3737 let p = valueOrElse(getInteger(this, "wavelets_per_block_max"), 189950000)
3838
3939 let q = valueOrErrorMessage(addressFromString(valueOrElse(getString("oracle"), "3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF")), "invalid oracle address")
4040
4141 let r = valueOrElse(getString("wave-price-key"), "%s%s__price__WAVES-USDT")
4242
4343 let s = valueOrErrorMessage(getInteger(q, r), "WAVES price is not in the Oracle")
4444
4545 func t (u) = fraction(u, s, 1000000)
4646
4747
4848 func v (u) = fraction(u, 100000000, s)
4949
5050
5151 let w = valueOrElse(getInteger(n), 0)
5252
5353 func x (y) = {
54- let z = getInteger(g(y))
55- let A = if (!(isDefined(z)))
54+ let z = valueOrErrorMessage(getInteger(g(y)), "address not found")
55+ let A = if ((z == 0))
5656 then 0
5757 else {
5858 let B = value(getInteger(i(y)))
5959 let C = (height - B)
60- (value(z) * C)
60+ (z * C)
6161 }
6262 let D = valueOrElse(getInteger(j(y)), 0)
6363 let E = (A - D)
6464 let F = getInteger(l(y))
6565 if (isDefined(F))
66- then if (valueOrElse(getBoolean(m(y)), false))
67- then {
68- let G = valueOrElse(getInteger(k(y)), t(D))
69- let H = (value(F) - G)
70- let I = v(H)
71- min([I, E])
72- }
73- else {
74- let J = min([A, value(F)])
75- (J - D)
76- }
66+ then {
67+ let G = value(F)
68+ if (valueOrElse(getBoolean(m(y)), false))
69+ then {
70+ let H = valueOrElse(getInteger(k(y)), t(D))
71+ let I = (G - H)
72+ let J = v(I)
73+ min([J, E])
74+ }
75+ else {
76+ let K = min([A, G])
77+ (K - D)
78+ }
79+ }
7780 else E
7881 }
7982
8083
81-func K (y,L,F,M,N) = if ((0 > L))
84+func L (y,M,F,N,O) = if ((0 > M))
8285 then throw("waveletsPerBlock should be >= 0")
8386 else {
84- let O = g(y)
85- let P = valueOrElse(getInteger(O), 0)
86- let Q = ((N - P) + L)
87- let R = i(y)
88- let S = j(y)
89- if ((Q > p))
87+ let P = g(y)
88+ let Q = valueOrElse(getInteger(P), 0)
89+ let R = ((O - Q) + M)
90+ let S = i(y)
91+ let T = j(y)
92+ if ((R > p))
9093 then throw("maximum exceeded")
9194 else {
92- let T = l(y)
93- let U = m(y)
94- let V = if ((F == 0))
95+ let U = l(y)
96+ let V = m(y)
97+ let W = if ((F == 0))
9598 then nil
9699 else if ((0 > F))
97- then [DeleteEntry(T), DeleteEntry(U)]
98- else [IntegerEntry(T, F), BooleanEntry(U, M)]
99- $Tuple2(([IntegerEntry(O, L), IntegerEntry(R, height), IntegerEntry(S, -(x(y))), IntegerEntry(n, Q)] ++ V), Q)
100+ then [DeleteEntry(U), DeleteEntry(V)]
101+ else [IntegerEntry(U, F), BooleanEntry(V, N)]
102+ $Tuple2(([IntegerEntry(P, M), IntegerEntry(S, height), IntegerEntry(T, -(x(y))), IntegerEntry(n, R)] ++ W), R)
100103 }
101104 }
102105
103106
104-@Callable(W)
105-func setScedule (y,L) = if ((W.caller != this))
107+@Callable(X)
108+func setScedule (y,M) = if ((X.caller != this))
106109 then throw("denied")
107- else K(y, L, 0, false, w)
110+ else L(y, M, 0, false, w)
108111
109112
110113
111-@Callable(W)
112-func setSchedule (y,L,F,M) = if ((W.caller != this))
114+@Callable(X)
115+func setSchedule (y,M,F,N) = if ((X.caller != this))
113116 then throw("denied")
114- else K(y, L, F, M, w)
117+ else L(y, M, F, N, w)
115118
116119
117120
118-@Callable(W)
119-func setMultiSchedule (X) = if ((W.caller != this))
121+@Callable(X)
122+func setMultiSchedule (Y) = if ((X.caller != this))
120123 then throw("denied")
121124 else {
122- func Y (Z,aa) = if ((aa == ""))
125+ func Z (aa,ab) = if ((ab == ""))
123126 then throw("invalid schedules")
124127 else {
125- let ab = split(aa, "=")
126- if ((size(ab) != 2))
128+ let ac = split(ab, "=")
129+ if ((size(ac) != 2))
127130 then throw("invalid format: adr=waveletsPerBlock[,max]")
128131 else {
129- let y = valueOrErrorMessage(addressFromString(ab[0]), ("invalid address: " + ab[0]))
130- let ac = split(ab[1], ",")
131- let ad = valueOrErrorMessage(parseInt(ac[0]), ("invalid wavetets number: " + ac[0]))
132- let ae = if ((size(ac) == 2))
132+ let y = valueOrErrorMessage(addressFromString(ac[0]), ("invalid address: " + ac[0]))
133+ let ad = split(ac[1], ",")
134+ let ae = valueOrErrorMessage(parseInt(ad[0]), ("invalid wavetets number: " + ad[0]))
135+ let af = if ((size(ad) == 2))
133136 then {
134- let af = split(ac[1], "$")
135- $Tuple2(valueOrErrorMessage(parseInt(af[0]), ("invalid max number: " + af[0])), (size(af) == 2))
137+ let ag = split(ad[1], "$")
138+ $Tuple2(valueOrErrorMessage(parseInt(ag[0]), ("invalid max number: " + ag[0])), (size(ag) == 2))
136139 }
137140 else $Tuple2(0, false)
138- let F = ae._1
139- let M = ae._2
140- let ag = Z
141- let ah = ag._1
142- let N = ag._2
143- let ai = ag._3
144- let aj = toString(y)
145- if (isDefined(indexOf(ai, aj)))
146- then throw(("dublicate: " + aj))
141+ let F = af._1
142+ let N = af._2
143+ let ah = aa
144+ let ai = ah._1
145+ let O = ah._2
146+ let aj = ah._3
147+ let ak = toString(y)
148+ if (isDefined(indexOf(aj, ak)))
149+ then throw(("dublicate: " + ak))
147150 else {
148- let ak = K(aj, ad, F, M, N)
149- let al = ak._1
150- let Q = ak._2
151- $Tuple3((ah ++ al), Q, (ai ++ [aj]))
151+ let al = L(ak, ae, F, N, O)
152+ let am = al._1
153+ let R = al._2
154+ $Tuple3((ai ++ am), R, (aj ++ [ak]))
152155 }
153156 }
154157 }
155158
156- let am = {
157- let an = split(X, "|")
158- let ao = size(an)
159- let ap = $Tuple3(nil, w, nil)
160- func aq (ar,as) = if ((as >= ao))
161- then ar
162- else Y(ar, an[as])
159+ let an = {
160+ let ao = split(Y, "|")
161+ let ap = size(ao)
162+ let aq = $Tuple3(nil, w, nil)
163+ func ar (as,at) = if ((at >= ap))
164+ then as
165+ else Z(as, ao[at])
163166
164- func at (ar,as) = if ((as >= ao))
165- then ar
167+ func au (as,at) = if ((at >= ap))
168+ then as
166169 else throw("List size exceeds 20")
167170
168- at(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(ap, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
171+ au(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
169172 }
170- let ah = am._1
171- let N = am._2
172- let au = am._3
173- $Tuple2(ah, N)
173+ let ai = an._1
174+ let O = an._2
175+ let av = an._3
176+ $Tuple2(ai, O)
174177 }
175178
176179
177180
178-@Callable(W)
181+@Callable(X)
179182 func Claim () = {
180- let av = W.caller
181- let y = toString(av)
182- let aw = valueOrErrorMessage(getInteger(g(y)), "address not found")
183- if ((aw == aw))
184- then {
185- let ax = x(y)
186- let ay = min([wavesBalance(this).available, ax])
187- if ((0 >= ay))
188- then throw("nothing to claim")
189- else {
190- let az = j(y)
191- let S = valueOrElse(getInteger(az), 0)
192- let aA = k(y)
193- let G = valueOrElse(getInteger(aA), t(S))
194- let aB = t(ay)
195-[ScriptTransfer(av, ay, unit), IntegerEntry(az, (S + ay)), IntegerEntry(aA, (G + aB))]
196- }
183+ let aw = X.caller
184+ let y = toString(aw)
185+ let ax = x(y)
186+ let ay = min([wavesBalance(this).available, ax])
187+ if ((0 >= ay))
188+ then throw("nothing to claim")
189+ else {
190+ let az = j(y)
191+ let T = valueOrElse(getInteger(az), 0)
192+ let aA = k(y)
193+ let H = valueOrElse(getInteger(aA), t(T))
194+ let aB = t(ay)
195+[ScriptTransfer(aw, ay, unit), IntegerEntry(az, (T + ay)), IntegerEntry(aA, (H + aB))]
197196 }
198- else throw("Strict value is not equal to itself.")
199197 }
200198
201199

github/deemru/w8io/3ef1775 
87.80 ms