tx · JDxmFQSjBghuQWgP7VwakK5qvhNPAbAYzLxz7z7a6Ay5

3N9bnBDbTLpgTYvhezFE8rSJyMEBBTH927Q:  -0.01000000 Waves

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

{ "type": 13, "id": "JDxmFQSjBghuQWgP7VwakK5qvhNPAbAYzLxz7z7a6Ay5", "fee": 1000000, "feeAssetId": null, "timestamp": 1643964515469, "version": 2, "chainId": 84, "sender": "3N9bnBDbTLpgTYvhezFE8rSJyMEBBTH927Q", "senderPublicKey": "5tuiuQhSLUFHipVYrx5LHsWSRaDfEFeJCoXdGBKeuwr1", "proofs": [ "3zY5LpjBvBMwse7WwZx6Tt83q3DBh1u4kgPQQzfoEuGkcA8HVCJLfvvPeuJbf6vzUmvuLRHcttnTUyaFq4yf8PfT" ], "script": "base64:AAIFAAAAAAAAASYIAhIECgIICBoQCgFhEgtwcmVzZW5jZUtleRoPCgFiEgphYnNlbmNlS2V5Gg8KAWMSCnRvdGFsQ291cnMaDwoBZBIKbGVhc2VJZEtleRoSCgFlEg1nZXROYlByZXNlbmNlGg8KAWYSCm5iUHJlc2VuY2UaDAoBZxIHJG1hdGNoMBoGCgFoEgF0Gg8KAWkSCmdldE5iQ291cnMaDAoBahIHbmJDb3VycxoRCgFrEgxnZXROYkFic2VuY2UaDgoBbBIJbmJBYnNlbmNlGgYKAW0SAWkaDQoBbhIIcHJlc2VuY2UaEwoBbxIOYWRkcmVzc1RvTGVhc2UaFAoBcBIPbGVhc2FibGVCYWxhbmNlGgoKAXESBWxlYXNlGgwKAXISB2xlYXNlSWQAAAAHAAAAAAFhAgAAAAlwcmVzZW5jZXMAAAAAAWICAAAACGFic2VuY2VzAAAAAAFjAgAAAAp0b3RhbENvdXJzAAAAAAFkAgAAAAdsZWFzZUlkAQAAAAFlAAAAAAQAAAABZgkABB8AAAABBQAAAAFhBAAAAAFnBQAAAAFmAwkAAAEAAAACBQAAAAFnAgAAAANJbnQEAAAAAWgFAAAAAWcFAAAAAWgAAAAAAAAAAAABAAAAAWkAAAAABAAAAAFqCQAEHwAAAAEFAAAAAWMEAAAAAWcFAAAAAWoDCQAAAQAAAAIFAAAAAWcCAAAAA0ludAQAAAABaAUAAAABZwUAAAABaAAAAAAAAAAAAAEAAAABawAAAAAEAAAAAWwJAAQfAAAAAQUAAAABYgQAAAABZwUAAAABbAMJAAABAAAAAgUAAAABZwIAAAADSW50BAAAAAFoBQAAAAFnBQAAAAFoAAAAAAAAAAAAAAAAAQAAAAFtAQAAABJ2YWxpZGF0aW9uUHJlc2VuY2UAAAACAAAAAW4AAAABbwQAAAABZgkBAAAAAWUAAAAABAAAAAFqCQEAAAABaQAAAAAEAAAAAWwJAQAAAAFrAAAAAAMJAAAAAAAAAgUAAAABbgIAAAAIcHLDqXNlbnQEAAAAAXAJAABlAAAAAggJAAPvAAAAAQUAAAAEdGhpcwAAAAlhdmFpbGFibGUAAAAAAACYloAEAAAAAXEJAAREAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAABbwUAAAABcAQAAAABcgkABDkAAAABBQAAAAFxCQAFFAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAAWEJAABkAAAAAgUAAAABZgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAABYwkAAGQAAAACBQAAAAFqAAAAAAAAAAABCQAETAAAAAIJAQAAAAtCaW5hcnlFbnRyeQAAAAIFAAAAAWQFAAAAAXIJAARMAAAAAgUAAAABcQUAAAADbmlsAAAAAAAAAAAACQAFFAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAAWIJAABkAAAAAgUAAAABZgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAABYwkAAGQAAAACBQAAAAFqAAAAAAAAAAABCQAETAAAAAIJAQAAAAtMZWFzZUNhbmNlbAAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDU3KQAAAAEFAAAAAWQFAAAAA25pbAAAAAAAAAAAAAAAAABCE1hP", "height": 1908643, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HXhwf9tXGrBmrEC7aGhYRo2tcj1jvCxxYU9e54eGvRei Next: none Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let estEnCours = "estEnCours"
4+let presenceKey = "presences"
55
6-let classeEnCours = "classeEnCours"
6+let absenceKey = "absences"
77
8-let nodeValidatrice = "validatorNode"
8+let totalCours = "totalCours"
99
10-func getClassName (nom,professeur) = ((nom + "_") + toString(professeur))
10+let leaseIdKey = "leaseId"
1111
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.")
12+func getNbPresence () = {
13+ let nbPresence = getInteger(presenceKey)
14+ match nbPresence {
15+ case t: Int =>
16+ t
17+ case _ =>
18+ 0
19+ }
2020 }
2121
2222
23-func testValid (e) = {
24- let studentAddress = addressFromStringValue(take(e, 35))
25- let studentStatus = takeRight(e, (size(e) - 36))
26- unit
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+ }
2742 }
2843
2944
3045 @Callable(i)
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)]
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)
6258 }
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)]
8359
8460

github/deemru/w8io/3ef1775 
44.85 ms