4 | | - | let c5a = [[Address(base58'3P4EZmTzeN6XoiiWy5ioSuXdD32cXV2qvo2'), Address(base58'3P6fCJ4emaJBAg8irw5kBkaqrdwCJQdA6fX'), Address(base58'3PFZqdCf4ewe1T65MgRxkshk7NUwej35NFN'), Address(base58'3P37Bqq2FhdeKWuB9TMmb5g5Lmd5sPsT7NH'), Address(base58'3PDdocgYdKhniP95Z2Dsz2qx9wMUdYS2oji')], [Address(base58'3PBGxVfzVCJcUAAEjSZkbXfgayxZGg1i25W'), Address(base58'3PGCJgqcetSTi4j8Jt1rj9qAzJvhTpqKiD7'), Address(base58'3PFc2iWhcAgNdtz6SMDcKD2CXY1fvTzV1zm'), Address(base58'3PBZE1DCixQY9DUQNoLSqMQqgBeGNMvBYJw'), Address(base58'3PLZdRhwtyPkZrF3EbP7gsHY8T8LTQdbYr2')], [Address(base58'3PNmsw1CKhkQgjsDoV1zbqfbKv3JYtLXimR'), Address(base58'3P4g1cC68hkgNspqX1WrgjJ9zZnUWycgrUM'), Address(base58'3P2eedc4zWMqfqHUcodKcNAJXDyY47VpZ1G'), Address(base58'3PHTgiLvR4LVFxASYiRsMrbjm8CHFcQP9n1'), Address(base58'3PKrChx16RkMYK5ARq9QdysVAqpA7HyWh3Y')], [Address(base58'3P1yNrNUzcBM1y5wZUETxjMvWCnhvbr5JDs'), Address(base58'3PCMcywG9NosHFVpeTenqasNqUyVXKtBq3t'), Address(base58'3PAgMTVnqMkSBt9BLmPQtvGTaEs3avoFwLu'), Address(base58'3PNRCWePJrfm8LFJxoeFpqTsi4ePtnUZcRu'), Address(base58'3PLJmLYx2AqfBc2D1CB8ATsfjpMB3rPJaz9')], [Address(base58'3PDdxRdC7bbbeZTU5FRT1vhZHQTAH3mmiDm'), Address(base58'3PAnJPzHGhuPArf4pe88qX3SE16pQc8LchX'), Address(base58'3PQpxetcimnzBkhdTpHM1UhyNFSS3nEsBpY'), Address(base58'3P4qtNT6vXerKJNgsx6yoF33fRoMfAhSkLX'), Address(base58'3PEWAFCNyfdTqLSRbw58esTvax8Ns6jzXBZ')], [Address(base58'3PFWtna4ju4xgBSzVKqbvH2aGcAdFe1Wmp5'), Address(base58'3PKLAhBczARcVgqhGPGRHgMtMJfaMtGGnkm'), Address(base58'3PPiEFZ1iYZfDvhMbwd1KffD3BCennkJVPZ'), Address(base58'3PLhwEcGZEhcm9uaKPVwBs1JzSW4xCzGzsk'), Address(base58'3P3fAuMePh5Gee9YbLZqYwx9mNtKwc9rW83')], [Address(base58'3PHUR4ZGEec8ayF8msBs4hG4Xpw9sTD8UuU')]] |
---|
| 4 | + | let c5a = [[Address(base58'3PHUR4ZGEec8ayF8msBs4hG4Xpw9sTD8UuU')]] |
---|
5 | 5 | | |
---|
6 | 6 | | @Callable(i) |
---|
7 | 7 | | func cf (ci) = { |
---|
8 | 8 | | func w (accum,address) = { |
---|
9 | 9 | | let res = invoke(address, "vf", nil, nil) |
---|
10 | 10 | | if ((res == res)) |
---|
11 | 11 | | then nil |
---|
12 | 12 | | else throw("Strict value is not equal to itself.") |
---|
13 | 13 | | } |
---|
14 | 14 | | |
---|
15 | 15 | | if ((0 > ci)) |
---|
16 | 16 | | then throw("ci lower") |
---|
17 | 17 | | else if ((ci >= size(c5a))) |
---|
18 | 18 | | then throw("out of index") |
---|
19 | 19 | | else { |
---|
20 | 20 | | let h = height |
---|
21 | 21 | | let epoch = ((h / 1440) * 1440) |
---|
22 | 22 | | let ckey = ((("w_" + toString(epoch)) + "_") + toString(ci)) |
---|
23 | 23 | | if (isDefined(getBoolean(this, ckey))) |
---|
24 | 24 | | then throw(ckey) |
---|
25 | 25 | | else { |
---|
26 | 26 | | let key = (("total_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_" + toString(epoch)) + "_withdrawn_within_epoch") |
---|
27 | 27 | | let withdrawn = valueOrElse(getInteger(addressFromStringValue("3PKZk5TdPCLP2GZviipLFfK46ExTnwkRCBd"), key), 0) |
---|
28 | 28 | | let maxWithdraw = 100000000000 |
---|
29 | 29 | | if ((maxWithdraw >= (withdrawn + 250000000))) |
---|
30 | 30 | | then { |
---|
31 | 31 | | let addrs = c5a[ci] |
---|
32 | 32 | | let fold = { |
---|
33 | 33 | | let $l = addrs |
---|
34 | 34 | | let $s = size($l) |
---|
35 | 35 | | let $acc0 = 0 |
---|
36 | 36 | | func $f0_1 ($a,$i) = if (($i >= $s)) |
---|
37 | 37 | | then $a |
---|
38 | 38 | | else w($a, $l[$i]) |
---|
39 | 39 | | |
---|
40 | 40 | | func $f0_2 ($a,$i) = if (($i >= $s)) |
---|
41 | 41 | | then $a |
---|
42 | 42 | | else throw("List size exceeds 5") |
---|
43 | 43 | | |
---|
44 | 44 | | $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5) |
---|
45 | 45 | | } |
---|
46 | 46 | | if ((fold == fold)) |
---|
47 | 47 | | then [BooleanEntry(ckey, true)] |
---|
48 | 48 | | else throw("Strict value is not equal to itself.") |
---|
49 | 49 | | } |
---|
50 | 50 | | else throw(("w: " + toString(withdrawn))) |
---|
51 | 51 | | } |
---|
52 | 52 | | } |
---|
53 | 53 | | } |
---|
54 | 54 | | |
---|
55 | 55 | | |
---|
56 | 56 | | @Verifier(tx) |
---|
57 | 57 | | func verify () = match tx { |
---|
58 | 58 | | case inv: InvokeScriptTransaction => |
---|
59 | 59 | | if (if ((addressFromRecipient(inv.dApp) == this)) |
---|
60 | 60 | | then (3000000 >= inv.fee) |
---|
61 | 61 | | else false) |
---|
62 | 62 | | then true |
---|
63 | 63 | | else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) |
---|
64 | 64 | | case _ => |
---|
65 | 65 | | sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) |
---|
66 | 66 | | } |
---|
67 | 67 | | |
---|