tx · 4JuAEq9idtYYXPpSW6uyhZhvFXJMk7iLYc9AGRsgVaQ7 3Mr97MBt1TwRZHBK8R1EFDz8S8mxui5U4zB: -0.01400000 Waves 2021.06.04 05:05 [1555003] smart account 3Mr97MBt1TwRZHBK8R1EFDz8S8mxui5U4zB > SELF 0.00000000 Waves
{ "type": 13, "id": "4JuAEq9idtYYXPpSW6uyhZhvFXJMk7iLYc9AGRsgVaQ7", "fee": 1400000, "feeAssetId": null, "timestamp": 1622772396837, "version": 2, "chainId": 84, "sender": "3Mr97MBt1TwRZHBK8R1EFDz8S8mxui5U4zB", "senderPublicKey": "CQ7vntBAYh2QZcKcqiiyEnQWWXsr98ysDptD23Wgxmvb", "proofs": [ "3XBwHC8xqaqi2mCWXcjNwXhohn857iNzubY3gpSTZRtXroQmuF7Qhky8v5QoMBwb7VEXwaTMoh1CihrWFbcLPDi9" ], "script": "base64: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", "height": 1555003, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GwWNB1rwifJaMufyxCAbEwwHRoALT87F91BVDVKj5GCT Next: AmoRKUo7aFbWtwaKs85ytz6kJ27svWnZDFdAUSdXojFS Diff:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let | |
4 | + | let kittenId = "GuobcHvW9WqotnkGUj7JkpcbXtgVfB37TA4JkgSj9Qbb" | |
5 | 5 | ||
6 | - | func handicapIndexRequirements (num) = if ((num > 54)) | |
7 | - | then 54 | |
8 | - | else if ((0 > num)) | |
9 | - | then 0 | |
10 | - | else num | |
6 | + | func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = { | |
7 | + | let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1))) | |
8 | + | let randomHash = sha256((txId + value(randomSeedBlock.vrf))) | |
9 | + | (toInt(randomHash, (offset * 8)) % variants) | |
10 | + | } | |
11 | + | ||
12 | + | ||
13 | + | func generation (num) = if (if ((num > 0)) | |
14 | + | then true | |
15 | + | else (300 >= num)) | |
16 | + | then "G1" | |
17 | + | else if (if ((num > 300)) | |
18 | + | then true | |
19 | + | else (1000 >= num)) | |
20 | + | then "G2" | |
21 | + | else "G3" | |
22 | + | ||
23 | + | ||
24 | + | func geneCode (num) = if ((num == 100)) | |
25 | + | then "II-II-II-II" | |
26 | + | else if (if ((num >= 1)) | |
27 | + | then (3 >= num) | |
28 | + | else false) | |
29 | + | then "BB-BB-BB-BB" | |
30 | + | else if (if ((num > 3)) | |
31 | + | then (8 >= num) | |
32 | + | else false) | |
33 | + | then "CC-CC-CC-CC" | |
34 | + | else if (if ((num > 8)) | |
35 | + | then (15 >= num) | |
36 | + | else false) | |
37 | + | then "DD-DD-DD-DD" | |
38 | + | else if (if ((num > 15)) | |
39 | + | then (24 >= num) | |
40 | + | else false) | |
41 | + | then "EE-EE-EE-EE" | |
42 | + | else if (if ((num > 24)) | |
43 | + | then (35 >= num) | |
44 | + | else false) | |
45 | + | then "FF-FF-FF-FF" | |
46 | + | else if (if ((num > 35)) | |
47 | + | then (48 >= num) | |
48 | + | else false) | |
49 | + | then "GG-GG-GG-GG" | |
50 | + | else if (if ((num > 48)) | |
51 | + | then (51 >= num) | |
52 | + | else false) | |
53 | + | then "AA-AA-AA-AA" | |
54 | + | else "HH-HH-HH-HH" | |
11 | 55 | ||
12 | 56 | ||
13 | 57 | @Callable(i) | |
14 | - | func resultHandicap (scoreDifferential1,scoreDifferential2,scoreDifferential3,currentKey) = { | |
15 | - | let scoreDifferentialLowest = max([scoreDifferential1, scoreDifferential2, scoreDifferential3]) | |
16 | - | let result = (scoreDifferentialLowest - 2) | |
17 | - | let handicapIndex = handicapIndexRequirements(result) | |
18 | - | $Tuple2([IntegerEntry((currentKey + "_handicapIndex"), handicapIndex), Reissue(handiId, handicapIndex, false), ScriptTransfer(i.caller, handicapIndex, handiId)], handicapIndex) | |
58 | + | func giveBirthKitten () = { | |
59 | + | let pmt = i.payments[0] | |
60 | + | let pmtId = toBase58String(value(pmt.assetId)) | |
61 | + | if ((pmtId != kittenId)) | |
62 | + | then throw("Please send Kitten token.") | |
63 | + | else { | |
64 | + | let kittenAmount = pmt.amount | |
65 | + | if ((kittenAmount > 300)) | |
66 | + | then throw("Amount of Kitten tokens sent is 3 tokens.") | |
67 | + | else if ((300 > kittenAmount)) | |
68 | + | then throw("Amount of Kitten tokens sent is 3 tokens.") | |
69 | + | else { | |
70 | + | let issueQuantity = match getInteger(this, "issueQuantity") { | |
71 | + | case a: Int => | |
72 | + | a | |
73 | + | case _ => | |
74 | + | 0 | |
75 | + | } | |
76 | + | let newQuantity = (issueQuantity + 1) | |
77 | + | let generationType = generation(newQuantity) | |
78 | + | let issueNft = Issue("Kitten(=^・^=)", ("generation:" + generationType), 1, 0, false) | |
79 | + | let issueNftId = calculateAssetId(issueNft) | |
80 | + | let blockHeight = lastBlock.height | |
81 | + | let typeRandom = getRandomNumber(100, issueNftId, blockHeight, 0) | |
82 | + | let genetype = geneCode(typeRandom) | |
83 | + | [issueNft, ScriptTransfer(i.caller, 1, issueNftId), StringEntry(toBase58String(value(issueNftId)), genetype), IntegerEntry("issueQuantity", newQuantity)] | |
84 | + | } | |
85 | + | } | |
19 | 86 | } | |
20 | 87 | ||
21 | 88 |
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let | |
4 | + | let kittenId = "GuobcHvW9WqotnkGUj7JkpcbXtgVfB37TA4JkgSj9Qbb" | |
5 | 5 | ||
6 | - | func handicapIndexRequirements (num) = if ((num > 54)) | |
7 | - | then 54 | |
8 | - | else if ((0 > num)) | |
9 | - | then 0 | |
10 | - | else num | |
6 | + | func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = { | |
7 | + | let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1))) | |
8 | + | let randomHash = sha256((txId + value(randomSeedBlock.vrf))) | |
9 | + | (toInt(randomHash, (offset * 8)) % variants) | |
10 | + | } | |
11 | + | ||
12 | + | ||
13 | + | func generation (num) = if (if ((num > 0)) | |
14 | + | then true | |
15 | + | else (300 >= num)) | |
16 | + | then "G1" | |
17 | + | else if (if ((num > 300)) | |
18 | + | then true | |
19 | + | else (1000 >= num)) | |
20 | + | then "G2" | |
21 | + | else "G3" | |
22 | + | ||
23 | + | ||
24 | + | func geneCode (num) = if ((num == 100)) | |
25 | + | then "II-II-II-II" | |
26 | + | else if (if ((num >= 1)) | |
27 | + | then (3 >= num) | |
28 | + | else false) | |
29 | + | then "BB-BB-BB-BB" | |
30 | + | else if (if ((num > 3)) | |
31 | + | then (8 >= num) | |
32 | + | else false) | |
33 | + | then "CC-CC-CC-CC" | |
34 | + | else if (if ((num > 8)) | |
35 | + | then (15 >= num) | |
36 | + | else false) | |
37 | + | then "DD-DD-DD-DD" | |
38 | + | else if (if ((num > 15)) | |
39 | + | then (24 >= num) | |
40 | + | else false) | |
41 | + | then "EE-EE-EE-EE" | |
42 | + | else if (if ((num > 24)) | |
43 | + | then (35 >= num) | |
44 | + | else false) | |
45 | + | then "FF-FF-FF-FF" | |
46 | + | else if (if ((num > 35)) | |
47 | + | then (48 >= num) | |
48 | + | else false) | |
49 | + | then "GG-GG-GG-GG" | |
50 | + | else if (if ((num > 48)) | |
51 | + | then (51 >= num) | |
52 | + | else false) | |
53 | + | then "AA-AA-AA-AA" | |
54 | + | else "HH-HH-HH-HH" | |
11 | 55 | ||
12 | 56 | ||
13 | 57 | @Callable(i) | |
14 | - | func resultHandicap (scoreDifferential1,scoreDifferential2,scoreDifferential3,currentKey) = { | |
15 | - | let scoreDifferentialLowest = max([scoreDifferential1, scoreDifferential2, scoreDifferential3]) | |
16 | - | let result = (scoreDifferentialLowest - 2) | |
17 | - | let handicapIndex = handicapIndexRequirements(result) | |
18 | - | $Tuple2([IntegerEntry((currentKey + "_handicapIndex"), handicapIndex), Reissue(handiId, handicapIndex, false), ScriptTransfer(i.caller, handicapIndex, handiId)], handicapIndex) | |
58 | + | func giveBirthKitten () = { | |
59 | + | let pmt = i.payments[0] | |
60 | + | let pmtId = toBase58String(value(pmt.assetId)) | |
61 | + | if ((pmtId != kittenId)) | |
62 | + | then throw("Please send Kitten token.") | |
63 | + | else { | |
64 | + | let kittenAmount = pmt.amount | |
65 | + | if ((kittenAmount > 300)) | |
66 | + | then throw("Amount of Kitten tokens sent is 3 tokens.") | |
67 | + | else if ((300 > kittenAmount)) | |
68 | + | then throw("Amount of Kitten tokens sent is 3 tokens.") | |
69 | + | else { | |
70 | + | let issueQuantity = match getInteger(this, "issueQuantity") { | |
71 | + | case a: Int => | |
72 | + | a | |
73 | + | case _ => | |
74 | + | 0 | |
75 | + | } | |
76 | + | let newQuantity = (issueQuantity + 1) | |
77 | + | let generationType = generation(newQuantity) | |
78 | + | let issueNft = Issue("Kitten(=^・^=)", ("generation:" + generationType), 1, 0, false) | |
79 | + | let issueNftId = calculateAssetId(issueNft) | |
80 | + | let blockHeight = lastBlock.height | |
81 | + | let typeRandom = getRandomNumber(100, issueNftId, blockHeight, 0) | |
82 | + | let genetype = geneCode(typeRandom) | |
83 | + | [issueNft, ScriptTransfer(i.caller, 1, issueNftId), StringEntry(toBase58String(value(issueNftId)), genetype), IntegerEntry("issueQuantity", newQuantity)] | |
84 | + | } | |
85 | + | } | |
19 | 86 | } | |
20 | 87 | ||
21 | 88 | ||
22 | 89 | @Verifier(tx) | |
23 | 90 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
24 | 91 |
github/deemru/w8io/026f985 26.65 ms ◑