tx · HXhwf9tXGrBmrEC7aGhYRo2tcj1jvCxxYU9e54eGvRei

3N9bnBDbTLpgTYvhezFE8rSJyMEBBTH927Q:  -0.01000000 Waves

2022.02.04 11:47 [1908643] smart account 3N9bnBDbTLpgTYvhezFE8rSJyMEBBTH927Q > SELF 0.00000000 Waves

{ "type": 13, "id": "HXhwf9tXGrBmrEC7aGhYRo2tcj1jvCxxYU9e54eGvRei", "fee": 1000000, "feeAssetId": null, "timestamp": 1643964508191, "version": 2, "chainId": 84, "sender": "3N9bnBDbTLpgTYvhezFE8rSJyMEBBTH927Q", "senderPublicKey": "5tuiuQhSLUFHipVYrx5LHsWSRaDfEFeJCoXdGBKeuwr1", "proofs": [ "2eJ2JBbAJbvDmAseWoEAkYDhYDH9HcZ85vMPXU8wkBjYVoFFsx3NuZAwxxW21pz8pb3waoPzkpRuEezRZrLcxZtH" ], "script": "base64:AAIFAAAAAAAAAZEIAhIECgIICBIDCgEIEgMKAQgSBAoCCBgSABIAGgYKAUESAXQaDwoBYRIKZXN0RW5Db3VycxoSCgFiEg1jbGFzc2VFbkNvdXJzGhQKAWMSD25vZGVWYWxpZGF0cmljZRoRCgFkEgxnZXRDbGFzc05hbWUaCAoBZRIDbm9tGg8KAWYSCnByb2Zlc3NldXIaEQoBZxIMdmFsaWRlckVsZXZlGggKAWgSA2FjYxoGCgFpEgFlGhMKAWoSDnN0dWRlbnRBZGRyZXNzGhIKAWsSDXN0dWRlbnRTdGF0dXMaCAoBbBIDcmVzGg4KAW0SCXRlc3RWYWxpZBoGCgFuEgFpGgsKAW8SBmVsZXZlcxoMCgFwEgdhZGRyZXNzGgsKAXESBmNsYXNzZRoUCgFyEg9sZWFzZWRFdHVkaWFudHMaBwoBcxICJGwaBwoBdBICJHMaCgoBdRIFJGFjYzAaCgoBdhIFJGYwXzEaBwoBdxICJGEaBwoBeBICJGkaCgoBeRIFJGYwXzIaDAoBehIHJG1hdGNoMAAAAAYAAAAAAWECAAAACmVzdEVuQ291cnMAAAAAAWICAAAADWNsYXNzZUVuQ291cnMAAAAAAWMCAAAADXZhbGlkYXRvck5vZGUBAAAAAWQAAAACAAAAAWUAAAABZgkAASwAAAACCQABLAAAAAIFAAAAAWUCAAAAAV8JAAQlAAAAAQUAAAABZgEAAAABZwAAAAIAAAABaAAAAAFpBAAAAAFqCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABLwAAAAIFAAAAAWkAAAAAAAAAACMEAAAAAWsJAQAAAAl0YWtlUmlnaHQAAAACBQAAAAFpCQAAZQAAAAIJAAExAAAAAQUAAAABaQAAAAAAAAAAIgQAAAABbAkAA/wAAAAEBQAAAAFqAgAAABJ2YWxpZGF0aW9uUHJlc2VuY2UJAARMAAAAAgUAAAABawkABEwAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1OCkAAAABBQAAAAFjBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAABbAUAAAABbAYJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQAAAAFtAAAAAQAAAAFpBAAAAAFqCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABLwAAAAIFAAAAAWkAAAAAAAAAACMEAAAAAWsJAQAAAAl0YWtlUmlnaHQAAAACBQAAAAFpCQAAZQAAAAIJAAExAAAAAQUAAAABaQAAAAAAAAAAJAUAAAAEdW5pdAAAAAYAAAABbgEAAAATY3JlYXRlT3JNb2RpZnlDbGFzcwAAAAIAAAABZQAAAAFvCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAFkAAAAAgUAAAABZQgFAAAAAW4AAAAGY2FsbGVyBQAAAAFvBQAAAANuaWwAAAABbgEAAAALZGVsZXRlQ2xhc3MAAAABAAAAAWUJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAAWQAAAACBQAAAAFlCAUAAAABbgAAAAZjYWxsZXIFAAAAA25pbAAAAAFuAQAAABFham91dGVyVmFsaWRhdGV1cgAAAAEAAAABcAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAFjBQAAAAFwBQAAAANuaWwAAAABbgEAAAAKZmFpcmVBcHBlbAAAAAIAAAABcQAAAAFvBAAAAAFyCgAAAAABcwUAAAABbwoAAAAAAXQJAAGQAAAAAQUAAAABcwoAAAAAAXUFAAAAA25pbAoBAAAAAXYAAAACAAAAAXcAAAABeAMJAABnAAAAAgUAAAABeAUAAAABdAUAAAABdwkBAAAAAWcAAAACBQAAAAF3CQABkQAAAAIFAAAAAXMFAAAAAXgKAQAAAAF5AAAAAgAAAAF3AAAAAXgDCQAAZwAAAAIFAAAAAXgFAAAAAXQFAAAAAXcJAAACAAAAAQIAAAAUTGlzdCBzaXplIGV4Y2VlZHMgMzAJAQAAAAF5AAAAAgkBAAAAAXYAAAACCQEAAAABdgAAAAIJAQAAAAF2AAAAAgkBAAAAAXYAAAACCQEAAAABdgAAAAIJAQAAAAF2AAAAAgkBAAAAAXYAAAACCQEAAAABdgAAAAIJAQAAAAF2AAAAAgkBAAAAAXYAAAACCQEAAAABdgAAAAIJAQAAAAF2AAAAAgkBAAAAAXYAAAACCQEAAAABdgAAAAIJAQAAAAF2AAAAAgkBAAAAAXYAAAACCQEAAAABdgAAAAIJAQAAAAF2AAAAAgkBAAAAAXYAAAACCQEAAAABdgAAAAIJAQAAAAF2AAAAAgkBAAAAAXYAAAACCQEAAAABdgAAAAIJAQAAAAF2AAAAAgkBAAAAAXYAAAACCQEAAAABdgAAAAIJAQAAAAF2AAAAAgkBAAAAAXYAAAACCQEAAAABdgAAAAIJAQAAAAF2AAAAAgUAAAABdQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAAAAAAAAAADgAAAAAAAAAADwAAAAAAAAAAEAAAAAAAAAAAEQAAAAAAAAAAEgAAAAAAAAAAEwAAAAAAAAAAFAAAAAAAAAAAFQAAAAAAAAAAFgAAAAAAAAAAFwAAAAAAAAAAGAAAAAAAAAAAGQAAAAAAAAAAGgAAAAAAAAAAGwAAAAAAAAAAHAAAAAAAAAAAHQAAAAAAAAAAHgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAFiCQEAAAABZAAAAAIFAAAAAXEIBQAAAAFuAAAABmNhbGxlcgkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAABYQYFAAAAA25pbAAAAAFuAQAAAA9mYWlyZUFwcGVsRWxldmUAAAAABAAAAAFsCQAD/AAAAAQJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNOOWJuQkRiVExwZ1RZdmhlekZFOHJTSnlNRUJCVEg5MjdRAgAAABJ2YWxpZGF0aW9uUHJlc2VuY2UJAARMAAAAAgIAAAAIcHLDqXNlbnQJAARMAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQUAAAABYwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAAWwFAAAAAWwEAAAAAXoFAAAAAWwDCQAAAQAAAAIFAAAAAXoCAAAAA0ludAQAAAABQQUAAAABegkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAARYmFsYW5jZV9hdmFpbGFibGUFAAAAAUEFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgaW52b2tlIHJlc3VsdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABbgEAAAAMYXJyZXRlckNvdXJzAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAFiAgAAAAAJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAAAWEHBQAAAANuaWwAAAAAlQ5WHQ==", "height": 1908643, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4cofMhWoA4rz434cUyNdUj9VLBqUu3Wzachg73QLkKRp Next: JDxmFQSjBghuQWgP7VwakK5qvhNPAbAYzLxz7z7a6Ay5 Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let presenceKey = "presences"
4+let estEnCours = "estEnCours"
55
6-let absenceKey = "absences"
6+let classeEnCours = "classeEnCours"
77
8-let totalCours = "totalCours"
8+let nodeValidatrice = "validatorNode"
99
10-let leaseIdKey = "leaseId"
10+func getClassName (nom,professeur) = ((nom + "_") + toString(professeur))
1111
12-func getNbPresence () = {
13- let nbPresence = getInteger(presenceKey)
14- match nbPresence {
15- case t: Int =>
16- t
17- case _ =>
18- 0
19- }
12+
13+func validerEleve (acc,e) = {
14+ let studentAddress = addressFromStringValue(take(e, 35))
15+ let studentStatus = takeRight(e, (size(e) - 34))
16+ let res = invoke(studentAddress, "validationPresence", [studentStatus, getStringValue(nodeValidatrice)], nil)
17+ if ((res == res))
18+ then true
19+ else throw("Strict value is not equal to itself.")
2020 }
2121
2222
23-func getNbCours () = {
24- let nbCours = getInteger(totalCours)
25- match nbCours {
26- case t: Int =>
27- t
28- case _ =>
29- 0
30- }
31- }
32-
33-
34-func getNbAbsence () = {
35- let nbAbsence = getInteger(absenceKey)
36- match nbAbsence {
37- case t: Int =>
38- t
39- case _ =>
40- 0
41- }
23+func testValid (e) = {
24+ let studentAddress = addressFromStringValue(take(e, 35))
25+ let studentStatus = takeRight(e, (size(e) - 36))
26+ unit
4227 }
4328
4429
4530 @Callable(i)
46-func validationPresence (presence,addressToLease) = {
47- let nbPresence = getNbPresence()
48- let nbCours = getNbCours()
49- let nbAbsence = getNbAbsence()
50- if ((presence == "présent"))
51- then {
52- let leasableBalance = (wavesBalance(this).available - 10000000)
53- let lease = Lease(addressFromStringValue(addressToLease), leasableBalance)
54- let leaseId = calculateLeaseId(lease)
55- $Tuple2([IntegerEntry(presenceKey, (nbPresence + 1)), IntegerEntry(totalCours, (nbCours + 1)), BinaryEntry(leaseIdKey, leaseId), lease], 0)
56- }
57- else $Tuple2([IntegerEntry(absenceKey, (nbPresence + 1)), IntegerEntry(totalCours, (nbCours + 1)), LeaseCancel(getBinaryValue(leaseIdKey))], 0)
31+func createOrModifyClass (nom,eleves) = [StringEntry(getClassName(nom, i.caller), eleves)]
32+
33+
34+
35+@Callable(i)
36+func deleteClass (nom) = [DeleteEntry(getClassName(nom, i.caller))]
37+
38+
39+
40+@Callable(i)
41+func ajouterValidateur (address) = [StringEntry(nodeValidatrice, address)]
42+
43+
44+
45+@Callable(i)
46+func faireAppel (classe,eleves) = {
47+ let leasedEtudiants = {
48+ let $l = eleves
49+ let $s = size($l)
50+ let $acc0 = nil
51+ func $f0_1 ($a,$i) = if (($i >= $s))
52+ then $a
53+ else validerEleve($a, $l[$i])
54+
55+ func $f0_2 ($a,$i) = if (($i >= $s))
56+ then $a
57+ else throw("List size exceeds 30")
58+
59+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
60+ }
61+[StringEntry(classeEnCours, getClassName(classe, i.caller)), BooleanEntry(estEnCours, true)]
5862 }
63+
64+
65+
66+@Callable(i)
67+func faireAppelEleve () = {
68+ let res = invoke(addressFromStringValue("3N9bnBDbTLpgTYvhezFE8rSJyMEBBTH927Q"), "validationPresence", ["présent", getStringValue(nodeValidatrice)], nil)
69+ if ((res == res))
70+ then match res {
71+ case t: Int =>
72+[IntegerEntry("balance_available", t)]
73+ case _ =>
74+ throw("Incorrect invoke result")
75+ }
76+ else throw("Strict value is not equal to itself.")
77+ }
78+
79+
80+
81+@Callable(i)
82+func arreterCours () = [StringEntry(classeEnCours, ""), BooleanEntry(estEnCours, false)]
5983
6084

github/deemru/w8io/3ef1775 
57.98 ms