1 | | - | {-# STDLIB_VERSION 3 #-} |
---|
2 | | - | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | | - | {-# CONTENT_TYPE DAPP #-} |
---|
4 | | - | let issuer = Address(base58'3issuerAddress') |
---|
5 | | - | |
---|
6 | | - | let assetId = base58'6mUSqVGteY6pQitcbXFzJd2C7r85dn31pdHS9LzEuxQu' |
---|
7 | | - | |
---|
8 | | - | func randomizer (inv) = { |
---|
9 | | - | let ultimoJogo = match getBinary(this, "ultimoJogo") { |
---|
10 | | - | case s: ByteVector => |
---|
11 | | - | s |
---|
12 | | - | case a: Unit => |
---|
13 | | - | base58'4gEivd7cGhPHTZ' |
---|
14 | | - | case _ => |
---|
15 | | - | throw() |
---|
16 | | - | } |
---|
17 | | - | let rand = (((((ultimoJogo + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height)) |
---|
18 | | - | sha256(rand) |
---|
19 | | - | } |
---|
20 | | - | |
---|
21 | | - | |
---|
22 | | - | func apostaWBT (inv) = { |
---|
23 | | - | let playLimit = assetBalance(this, assetId) |
---|
24 | | - | let payment = extract(inv.payment) |
---|
25 | | - | if (isDefined(inv.payment)) |
---|
26 | | - | then throw("Você não pode apostar com Waves.") |
---|
27 | | - | else if ((payment.assetId != assetId)) |
---|
28 | | - | then throw("Você deve fazer o pagamento em SendToken") |
---|
29 | | - | else if ((payment.amount > playLimit)) |
---|
30 | | - | then throw(("O pagamento deve ser menor que " + toString(playLimit))) |
---|
31 | | - | else { |
---|
32 | | - | let randhash = randomizer(inv) |
---|
33 | | - | let transfere = TransferSet([ScriptTransfer(inv.caller, ((payment.amount * 190) / 100), assetId)]) |
---|
34 | | - | let gravaUltimaJogada = WriteSet([DataEntry("ultimoJogo", randhash)]) |
---|
35 | | - | if ((500 > (toInt(randhash) % 1000))) |
---|
36 | | - | then ScriptResult(gravaUltimaJogada, transfere) |
---|
37 | | - | else ScriptResult(gravaUltimaJogada, TransferSet(nil)) |
---|
38 | | - | } |
---|
39 | | - | } |
---|
40 | | - | |
---|
41 | | - | |
---|
42 | | - | @Callable(inv) |
---|
43 | | - | func lotto () = apostaWBT(inv) |
---|
44 | | - | |
---|
45 | | - | |
---|
46 | | - | |
---|
47 | | - | @Callable(inv) |
---|
48 | | - | func default () = apostaWBT(inv) |
---|
49 | | - | |
---|
50 | | - | |
---|
| 1 | + | # no script |
---|