tx · HwiVxUQE12goMX9e7xzzSmivhRvFA2MXHPmnNjb9ZqTg

3P8heySToZiW7XMrpqVXNaELDaQUXxdibkw:  -0.01000000 Waves

2022.11.28 14:59 [3402401] smart account 3P8heySToZiW7XMrpqVXNaELDaQUXxdibkw > SELF 0.00000000 Waves

{ "type": 13, "id": "HwiVxUQE12goMX9e7xzzSmivhRvFA2MXHPmnNjb9ZqTg", "fee": 1000000, "feeAssetId": null, "timestamp": 1669636876884, "version": 2, "chainId": 87, "sender": "3P8heySToZiW7XMrpqVXNaELDaQUXxdibkw", "senderPublicKey": "NodB62UhtfcYkiMJ9wNq69muahpfZhdnnX3NLQAXPqh", "proofs": [ "5Qq1zM9ewUH7xgzUUfTLgarJQDx7FRBTV5x2qZq96io6fBFVpkLyVdfvaKm1EvUFPW8YRV92NRNjJ4HaP7DQ2vGQ" ], "script": "base64:AAIFAAAAAAAAAA4IAhIDCgEIEgMKAQgSAAAAAAUAAAAADVBBWU1FTlRfQVNTRVQBAAAAIF4bUVzBKfKAGAULbWG+vfYHaU4ivOdwf0xRTRMwdlKzAAAAAA1sYXN0Vm90ZUJsb2NrAAAAAAAAND7FAAAAAAZhZG1QdWIBAAAAIAWV6iDIkHTRekv+Ewy3kPzHsUriDCfiEdPJ03ilW+EAAAAAAAV0ZWFtcwkABEwAAAACAgAAAAlhcmdlbnRpbmEJAARMAAAAAgIAAAAJYXVzdHJhbGlhCQAETAAAAAICAAAAB2JlbGdpdW0JAARMAAAAAgIAAAAGYnJhemlsCQAETAAAAAICAAAACGNhbWVyb29uCQAETAAAAAICAAAABmNhbmFkYQkABEwAAAACAgAAAAljb3N0YXJpY2EJAARMAAAAAgIAAAAGY3JvdGlhCQAETAAAAAICAAAAB2Rlbm1hcmsJAARMAAAAAgIAAAAHZWN1YWRvcgkABEwAAAACAgAAAAdlbmdsYW5kCQAETAAAAAICAAAABmZyYW5jZQkABEwAAAACAgAAAAdnZXJtYW55CQAETAAAAAICAAAABWdoYW5hCQAETAAAAAICAAAABGlyYW4JAARMAAAAAgIAAAAFamFwYW4JAARMAAAAAgIAAAAGbWV4aWNvCQAETAAAAAICAAAAB21vcm9jY28JAARMAAAAAgIAAAALbmV0aGVybGFuZHMJAARMAAAAAgIAAAAGcG9sYW5kCQAETAAAAAICAAAACHBvcnR1Z2FsCQAETAAAAAICAAAABXFhdGFyCQAETAAAAAICAAAAC3NhdWRpYXJhYmlhCQAETAAAAAICAAAAB3NlbmVnYWwJAARMAAAAAgIAAAAGc2VyYmlhCQAETAAAAAICAAAACnNvdXRoa29yZWEJAARMAAAAAgIAAAAFc3BhaW4JAARMAAAAAgIAAAALc3dpdHplcmxhbmQJAARMAAAAAgIAAAAHdHVuaXNpYQkABEwAAAACAgAAAAd1cnVndWF5CQAETAAAAAICAAAAA3VzYQkABEwAAAACAgAAAAV3YWxlcwUAAAADbmlsAQAAAAtpc1BheW1lbnRPawAAAAEAAAABaQQAAAARYWNjZXB0YWJsZUFzc2V0SWQFAAAADVBBWU1FTlRfQVNTRVQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQIAAAAUUGF5bWVudCBub3QgYXR0YWNoZWQEAAAAAXAJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAByRtYXRjaDAIBQAAAAFwAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAB2Fzc2V0SWQFAAAAByRtYXRjaDADCQAAAAAAAAIFAAAAB2Fzc2V0SWQFAAAAEWFjY2VwdGFibGVBc3NldElkCQAAZgAAAAIIBQAAAAFwAAAABmFtb3VudAAAAAAAAAAAAAcJAAACAAAAAQIAAAATV3JvbmcgcGF5bWVudCBhc3NldAAAAAMAAAABaQEAAAAGd2lubmVyAAAAAQAAAAR0ZWFtAwkAAAAAAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAABmFkbVB1YgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAZ3aW5uZXIFAAAABHRlYW0FAAAAA25pbAkAAAIAAAABAgAAABN5b3UgYXJlIG5vdCBhbGxvd2VkAAAAAWkBAAAAEGd1ZXNzVGhlQ2hhbXBpb24AAAABAAAABHRlYW0EAAAACGlzRXhpc3RzCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAFdGVhbXMFAAAABHRlYW0EAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAABcAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAANcGF5bWVudEFtb3VudAgFAAAAAXAAAAAGYW1vdW50BAAAABJ0b3RhbFBheW1lbnRBbW91bnQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwIAAAASdG90YWxQYXltZW50QW1vdW50AAAAAAAAAAAABAAAAAh2b3RlVGVhbQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAEdGVhbQIAAAABXwUAAAAKY3VycmVudEtleQAAAAAAAAAAAAQAAAAGd2lubmVyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMCAAAABndpbm5lcgIAAAAEbnVsbAMJAQAAAAEhAAAAAQUAAAAIaXNFeGlzdHMJAAACAAAAAQIAAAARdGVhbSBuYW1lIGludmFsaWQDCQEAAAABIQAAAAEJAQAAAAtpc1BheW1lbnRPawAAAAEFAAAAAWkJAAACAAAAAQIAAAAWeW91IGhhdmUgdG8gcGF5IHRvIGJldAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAA1sYXN0Vm90ZUJsb2NrCQAAAgAAAAECAAAAFGJldCBkdXJhdGlvbiBpcyBvdmVyAwkBAAAAAiE9AAAAAgUAAAAGd2lubmVyAgAAAARudWxsCQAAAgAAAAECAAAAC2JldCBpcyBvdmVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJ0b3RhbFBheW1lbnRBbW91bnQJAABkAAAAAgUAAAASdG90YWxQYXltZW50QW1vdW50BQAAAA1wYXltZW50QW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEdGVhbQIAAAABXwUAAAAKY3VycmVudEtleQkAAGQAAAACBQAAAAh2b3RlVGVhbQgFAAAAAXAAAAAGYW1vdW50BQAAAANuaWwAAAABaQEAAAAKY2xhaW1Qcml6ZQAAAAAEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAGd2lubmVyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMCAAAABndpbm5lcgIAAAAEbnVsbAMDCQAAZgAAAAIFAAAADWxhc3RWb3RlQmxvY2sFAAAABmhlaWdodAkAAAAAAAACBQAAAAZ3aW5uZXICAAAABG51bGwHCQAAAgAAAAECAAAAF2JldHRpbmcgaXMgc3RpbGwgYWN0aXZlBAAAAAh2b3RlVGVhbQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAGd2lubmVyAgAAAAFfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAAAwkAAGYAAAACBQAAAAh2b3RlVGVhbQAAAAAAAAAAAAQAAAASdG90YWxQYXltZW50QW1vdW50CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMCAAAAEnRvdGFsUGF5bWVudEFtb3VudAAAAAAAAAAAAAQAAAAFc2hhcmUJAABrAAAAAwUAAAAIdm90ZVRlYW0AAAAAAlQL5AAFAAAAEnRvdGFsUGF5bWVudEFtb3VudAQAAAAIZGVzZXJ2ZWQJAABpAAAAAgUAAAASdG90YWxQYXltZW50QW1vdW50AAAAAAJUC+QABAAAAAhsYXN0Q2FsYwkAAGgAAAACBQAAAAhkZXNlcnZlZAUAAAAFc2hhcmUEAAAACWlzQ2xhaW1lZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACmN1cnJlbnRLZXkCAAAABl9jbGFpbQYDCQEAAAABIQAAAAEFAAAACWlzQ2xhaW1lZAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAAAZfY2xhaW0GCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAIbGFzdENhbGMFAAAADVBBWU1FTlRfQVNTRVQFAAAAA25pbAkAAAIAAAABAgAAABN5b3UgYWxyZWFkeSBjbGFpbWVkCQAAAgAAAAECAAAAFHlvdSBhcmUgbm90IGVsaWdpYmxlAAAAAGyGvt0=", "height": 3402401, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: G7PRoq7PQcYh1auf5GbGT9URz4Wkj9eJus7h9c6SHcu8 Next: none Diff:
OldNewDifferences
55
66 let lastVoteBlock = 3423941
77
8-let admPub = base58'9gwRn28SbYUtH4TJjASULCqfmJcvn5c7Lh7pST1RiDCb'
8+let admPub = base58'NodB62UhtfcYkiMJ9wNq69muahpfZhdnnX3NLQAXPqh'
99
1010 let teams = ["argentina", "australia", "belgium", "brazil", "cameroon", "canada", "costarica", "crotia", "denmark", "ecuador", "england", "france", "germany", "ghana", "iran", "japan", "mexico", "morocco", "netherlands", "poland", "portugal", "qatar", "saudiarabia", "senegal", "serbia", "southkorea", "spain", "switzerland", "tunisia", "uruguay", "usa", "wales"]
1111
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let PAYMENT_ASSET = base58'7LMV3s1J4dKpMQZqge5sKYoFkZRLojnnU49aerqos4yg'
55
66 let lastVoteBlock = 3423941
77
8-let admPub = base58'9gwRn28SbYUtH4TJjASULCqfmJcvn5c7Lh7pST1RiDCb'
8+let admPub = base58'NodB62UhtfcYkiMJ9wNq69muahpfZhdnnX3NLQAXPqh'
99
1010 let teams = ["argentina", "australia", "belgium", "brazil", "cameroon", "canada", "costarica", "crotia", "denmark", "ecuador", "england", "france", "germany", "ghana", "iran", "japan", "mexico", "morocco", "netherlands", "poland", "portugal", "qatar", "saudiarabia", "senegal", "serbia", "southkorea", "spain", "switzerland", "tunisia", "uruguay", "usa", "wales"]
1111
1212 func isPaymentOk (i) = {
1313 let acceptableAssetId = PAYMENT_ASSET
1414 if ((size(i.payments) == 0))
1515 then throw("Payment not attached")
1616 else {
1717 let p = i.payments[0]
1818 match p.assetId {
1919 case assetId: ByteVector =>
2020 if ((assetId == acceptableAssetId))
2121 then (p.amount > 0)
2222 else false
2323 case _ =>
2424 throw("Wrong payment asset")
2525 }
2626 }
2727 }
2828
2929
3030 @Callable(i)
3131 func winner (team) = if ((i.callerPublicKey == admPub))
3232 then [StringEntry("winner", team)]
3333 else throw("you are not allowed")
3434
3535
3636
3737 @Callable(i)
3838 func guessTheChampion (team) = {
3939 let isExists = containsElement(teams, team)
4040 let currentKey = toBase58String(i.caller.bytes)
4141 let p = i.payments[0]
4242 let paymentAmount = p.amount
4343 let totalPaymentAmount = valueOrElse(getInteger(this, "totalPaymentAmount"), 0)
4444 let voteTeam = valueOrElse(getInteger(this, ((team + "_") + currentKey)), 0)
4545 let winner = valueOrElse(getString(this, "winner"), "null")
4646 if (!(isExists))
4747 then throw("team name invalid")
4848 else if (!(isPaymentOk(i)))
4949 then throw("you have to pay to bet")
5050 else if ((height > lastVoteBlock))
5151 then throw("bet duration is over")
5252 else if ((winner != "null"))
5353 then throw("bet is over")
5454 else [IntegerEntry("totalPaymentAmount", (totalPaymentAmount + paymentAmount)), IntegerEntry(((team + "_") + currentKey), (voteTeam + p.amount))]
5555 }
5656
5757
5858
5959 @Callable(i)
6060 func claimPrize () = {
6161 let currentKey = toBase58String(i.caller.bytes)
6262 let winner = valueOrElse(getString(this, "winner"), "null")
6363 if (if ((lastVoteBlock > height))
6464 then (winner == "null")
6565 else false)
6666 then throw("betting is still active")
6767 else {
6868 let voteTeam = valueOrElse(getInteger(this, ((winner + "_") + currentKey)), 0)
6969 if ((voteTeam > 0))
7070 then {
7171 let totalPaymentAmount = valueOrElse(getInteger(this, "totalPaymentAmount"), 0)
7272 let share = fraction(voteTeam, 10000000000, totalPaymentAmount)
7373 let deserved = (totalPaymentAmount / 10000000000)
7474 let lastCalc = (deserved * share)
7575 let isClaimed = valueOrElse(getBoolean(this, (currentKey + "_claim")), true)
7676 if (!(isClaimed))
7777 then [BooleanEntry((currentKey + "_claim"), true), ScriptTransfer(i.caller, lastCalc, PAYMENT_ASSET)]
7878 else throw("you already claimed")
7979 }
8080 else throw("you are not eligible")
8181 }
8282 }
8383
8484

github/deemru/w8io/6500d08 
31.80 ms