tx · Fq86HGWELU4sfuAzEAqkUDcovtdi4CTXKuNbBG21FPmm
3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b: -0.01400000 Waves
2021.02.04 16:17 [1383487] smart account 3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b > SELF 0.00000000 Waves
{
"type": 13,
"id": "Fq86HGWELU4sfuAzEAqkUDcovtdi4CTXKuNbBG21FPmm",
"fee": 1400000,
"feeAssetId": null,
"timestamp": 1612444659329,
"version": 2,
"chainId": 84,
"sender": "3Mt71RiSbWYENDmeyndvwjoJZwUsXfUkR6b",
"senderPublicKey": "3BKFQLeo5ExZ5Y1pt9Ftzsno7aRwzD96zoYVHP3tcLgV",
"proofs": [
"3Ged8kzDvpNnU4UhextJPTUsiZHiUWibFQH2KN6YHi7UGXBrfxKMEZBfZfBm1Gvxh2AbHRGccw9oX8WmkbxgFXs3"
],
"script": "base64:AAIDAAAAAAAAABAIARIGCgQBAQEIEgQKAggIAAAABgAAAAAPbG90dGVyeXBvb2xuYW1lAgAAABVfbG90dGVyeV9hbW91bnRfcG9vbF8AAAAAFmxvdHRlcnlwb29scHJvYmFiaWxpdHkCAAAADl9sb3R0ZXJ5X3Byb2JfAAAAABBsb3R0ZXJ5cG9vbHByaWNlAgAAAA9fbG90dGVyeV9wcmljZV8AAAAADWxvdHRlcnlwcmljZXMCAAAAEF9sb3R0ZXJ5X3ByaWNlc18BAAAACnJhbmRvbWl6ZXIAAAABAAAAA2ludgQAAAAEcmFuZAkAAMsAAAACCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCAUAAAADaW52AAAADXRyYW5zYWN0aW9uSWQIBQAAAANpbnYAAAAPY2FsbGVyUHVibGljS2V5CAUAAAAJbGFzdEJsb2NrAAAAE2dlbmVyYXRpb25TaWduYXR1cmUJAAGaAAAAAQgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAGaAAAAAQgFAAAACWxhc3RCbG9jawAAAAZoZWlnaHQJAAH3AAAAAQUAAAAEcmFuZAEAAAAQZ2V0TG90dGVyeVByaWNlcwAAAAEAAAAEdGVzdAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAA1sb3R0ZXJ5cHJpY2VzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABHRlc3QAAAACAAAAAWkBAAAAEXVwZGF0ZXByb2JhYmlsaXR5AAAABAAAAAtwcm9iYWJpbGl0eQAAAAZhbW91bnQAAAAGcHJpY2VzAAAABXRva2VuBAAAABF1cGRhdGVMb3R0ZXJ5UG9vbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA9sb3R0ZXJ5cG9vbG5hbWUFAAAABXRva2VuBQAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAWbG90dGVyeXBvb2xwcm9iYWJpbGl0eQUAAAAFdG9rZW4FAAAAC3Byb2JhYmlsaXR5BQAAAANuaWwJAQAAAAxTY3JpcHRSZXN1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",
"height": 1383487,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: AyQRDHDoRJH87qaasfJ7YyjVyGDkhdkTZkbdm7EyxNfu
Next: 6ruNEjF1qjMHDTBuGbdbkyQmWnuiBvF9BqVfMCoUyR7c
Diff:
Old | New | | Differences |
---|
5 | 5 | | |
---|
6 | 6 | | let lotterypoolprobability = "_lottery_prob_" |
---|
7 | 7 | | |
---|
| 8 | + | let lotterypoolprice = "_lottery_price_" |
---|
| 9 | + | |
---|
| 10 | + | let lotteryprices = "_lottery_prices_" |
---|
| 11 | + | |
---|
8 | 12 | | func randomizer (inv) = { |
---|
9 | 13 | | let rand = ((((inv.transactionId + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height)) |
---|
10 | 14 | | sha256(rand) |
---|
11 | 15 | | } |
---|
12 | 16 | | |
---|
13 | 17 | | |
---|
| 18 | + | func getLotteryPrices (test) = match getString(this, lotteryprices) { |
---|
| 19 | + | case a: String => |
---|
| 20 | + | a |
---|
| 21 | + | case _ => |
---|
| 22 | + | test |
---|
| 23 | + | } |
---|
| 24 | + | |
---|
| 25 | + | |
---|
14 | 26 | | @Callable(i) |
---|
15 | | - | func updateprobability (probability,amount,token) = { |
---|
| 27 | + | func updateprobability (probability,amount,prices,token) = { |
---|
16 | 28 | | let updateLotteryPool = WriteSet([DataEntry((lotterypoolname + token), amount), DataEntry((lotterypoolprobability + token), probability)]) |
---|
17 | 29 | | ScriptResult(updateLotteryPool, TransferSet(nil)) |
---|
18 | 30 | | } |
---|
|
25 | 37 | | let recipientaddress = addressFromStringValue(walletAddress) |
---|
26 | 38 | | let storedToken = getInteger(this, (lotterypoolname + token)) |
---|
27 | 39 | | let prob = getInteger(this, (lotterypoolprobability + token)) |
---|
| 40 | + | let price = getInteger(this, (lotterypoolprice + token)) |
---|
28 | 41 | | let payment = extract(i.payment) |
---|
29 | 42 | | let randhash = randomizer(i) |
---|
30 | | - | let price = ((payment.amount * 190) / 100) |
---|
31 | | - | let winTransfer = TransferSet([ScriptTransfer(recipientaddress, price, unit)]) |
---|
| 43 | + | let aggPrice = ((payment.amount * 190) / 100) |
---|
| 44 | + | let hasWin = false |
---|
| 45 | + | let winTransfer = TransferSet([ScriptTransfer(recipientaddress, aggPrice, unit)]) |
---|
32 | 46 | | if ((500 > (toInt(randhash) % 1000))) |
---|
33 | 47 | | then { |
---|
34 | | - | let writeSets = WriteSet([DataEntry((callerAddress + "_win_ticket_"), payment.amount), DataEntry((callerAddress + "_win_price"), price), DataEntry((callerAddress + "_win_"), walletAddress)]) |
---|
| 48 | + | let writeSets = WriteSet([DataEntry((callerAddress + "_win_ticket_"), payment.amount), DataEntry((callerAddress + "_win_"), walletAddress)]) |
---|
35 | 49 | | ScriptResult(writeSets, winTransfer) |
---|
36 | 50 | | } |
---|
37 | 51 | | else { |
---|
38 | | - | let writeSets = WriteSet([DataEntry((callerAddress + "_win_assetId_"), ""), DataEntry((callerAddress + "_win_ticket_"), payment.amount), DataEntry((callerAddress + "_win_price"), price), DataEntry((callerAddress + "_win_"), walletAddress)]) |
---|
| 52 | + | let writeSets = WriteSet([DataEntry((callerAddress + "_win_assetId_"), ""), DataEntry((callerAddress + "_win_ticket_"), payment.amount), DataEntry((callerAddress + "_win_"), walletAddress)]) |
---|
39 | 53 | | ScriptResult(writeSets, TransferSet(nil)) |
---|
40 | 54 | | } |
---|
41 | 55 | | } |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 3 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let lotterypoolname = "_lottery_amount_pool_" |
---|
5 | 5 | | |
---|
6 | 6 | | let lotterypoolprobability = "_lottery_prob_" |
---|
7 | 7 | | |
---|
| 8 | + | let lotterypoolprice = "_lottery_price_" |
---|
| 9 | + | |
---|
| 10 | + | let lotteryprices = "_lottery_prices_" |
---|
| 11 | + | |
---|
8 | 12 | | func randomizer (inv) = { |
---|
9 | 13 | | let rand = ((((inv.transactionId + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height)) |
---|
10 | 14 | | sha256(rand) |
---|
11 | 15 | | } |
---|
12 | 16 | | |
---|
13 | 17 | | |
---|
| 18 | + | func getLotteryPrices (test) = match getString(this, lotteryprices) { |
---|
| 19 | + | case a: String => |
---|
| 20 | + | a |
---|
| 21 | + | case _ => |
---|
| 22 | + | test |
---|
| 23 | + | } |
---|
| 24 | + | |
---|
| 25 | + | |
---|
14 | 26 | | @Callable(i) |
---|
15 | | - | func updateprobability (probability,amount,token) = { |
---|
| 27 | + | func updateprobability (probability,amount,prices,token) = { |
---|
16 | 28 | | let updateLotteryPool = WriteSet([DataEntry((lotterypoolname + token), amount), DataEntry((lotterypoolprobability + token), probability)]) |
---|
17 | 29 | | ScriptResult(updateLotteryPool, TransferSet(nil)) |
---|
18 | 30 | | } |
---|
19 | 31 | | |
---|
20 | 32 | | |
---|
21 | 33 | | |
---|
22 | 34 | | @Callable(i) |
---|
23 | 35 | | func startlotto (token,walletAddress) = { |
---|
24 | 36 | | let callerAddress = toBase58String(i.caller.bytes) |
---|
25 | 37 | | let recipientaddress = addressFromStringValue(walletAddress) |
---|
26 | 38 | | let storedToken = getInteger(this, (lotterypoolname + token)) |
---|
27 | 39 | | let prob = getInteger(this, (lotterypoolprobability + token)) |
---|
| 40 | + | let price = getInteger(this, (lotterypoolprice + token)) |
---|
28 | 41 | | let payment = extract(i.payment) |
---|
29 | 42 | | let randhash = randomizer(i) |
---|
30 | | - | let price = ((payment.amount * 190) / 100) |
---|
31 | | - | let winTransfer = TransferSet([ScriptTransfer(recipientaddress, price, unit)]) |
---|
| 43 | + | let aggPrice = ((payment.amount * 190) / 100) |
---|
| 44 | + | let hasWin = false |
---|
| 45 | + | let winTransfer = TransferSet([ScriptTransfer(recipientaddress, aggPrice, unit)]) |
---|
32 | 46 | | if ((500 > (toInt(randhash) % 1000))) |
---|
33 | 47 | | then { |
---|
34 | | - | let writeSets = WriteSet([DataEntry((callerAddress + "_win_ticket_"), payment.amount), DataEntry((callerAddress + "_win_price"), price), DataEntry((callerAddress + "_win_"), walletAddress)]) |
---|
| 48 | + | let writeSets = WriteSet([DataEntry((callerAddress + "_win_ticket_"), payment.amount), DataEntry((callerAddress + "_win_"), walletAddress)]) |
---|
35 | 49 | | ScriptResult(writeSets, winTransfer) |
---|
36 | 50 | | } |
---|
37 | 51 | | else { |
---|
38 | | - | let writeSets = WriteSet([DataEntry((callerAddress + "_win_assetId_"), ""), DataEntry((callerAddress + "_win_ticket_"), payment.amount), DataEntry((callerAddress + "_win_price"), price), DataEntry((callerAddress + "_win_"), walletAddress)]) |
---|
| 52 | + | let writeSets = WriteSet([DataEntry((callerAddress + "_win_assetId_"), ""), DataEntry((callerAddress + "_win_ticket_"), payment.amount), DataEntry((callerAddress + "_win_"), walletAddress)]) |
---|
39 | 53 | | ScriptResult(writeSets, TransferSet(nil)) |
---|
40 | 54 | | } |
---|
41 | 55 | | } |
---|
42 | 56 | | |
---|
43 | 57 | | |
---|
44 | 58 | | @Verifier(tx) |
---|
45 | 59 | | func verify () = match tx { |
---|
46 | 60 | | case _: DataTransaction => |
---|
47 | 61 | | true |
---|
48 | 62 | | case _: SetScriptTransaction => |
---|
49 | 63 | | true |
---|
50 | 64 | | case _ => |
---|
51 | 65 | | sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) |
---|
52 | 66 | | } |
---|
53 | 67 | | |
---|