tx · CG7hf4jQBokeyxpdNztgLMVbiBfm9TNVTh2uR4ZyGkCd

3MsbQEX2ZYzmZCjAgXnCyUcSyqywYeYeH2D:  -0.00300000 Waves

2023.03.24 22:02 [2504491] smart account 3MsbQEX2ZYzmZCjAgXnCyUcSyqywYeYeH2D > SELF 0.00000000 Waves

{ "type": 13, "id": "CG7hf4jQBokeyxpdNztgLMVbiBfm9TNVTh2uR4ZyGkCd", "fee": 300000, "feeAssetId": null, "timestamp": 1679684537013, "version": 2, "chainId": 84, "sender": "3MsbQEX2ZYzmZCjAgXnCyUcSyqywYeYeH2D", "senderPublicKey": "tKD81bAA6usSu5MUXtUF46ZMUoqPcS2EHcwweYtDgQL", "proofs": [ "29NwSyAM25BAyDBHjU4KGYFvT2phSCyV8yPGScV896cVbq3abr6ecXpWtiQBWBN1qWD3FGSnTeRurVKvtXEwN72h" ], "script": "base64:BgIQCAISBAoCCAgSBAoCCAgSAAwABmFkbWluMQIsQmd4cENtNHd4Ylc4U0tMUEtabmY0S1UyRDZaVTI5b3Y4TWdacmthU0FxcFkABmFkbWluMgIAABZrZXlfZmFybU5mdF9uZXh0TnVtYmVyAhJmYXJtTmZ0X25leHROdW1iZXIADGZhcm1OZnRfbmFtZQILQ2F0dGxlIE5GVCAAC2Nvd05mdF9uYW1lAgdDb3cgTkZUABNmYXJtTmZ0X2Rlc2NyaXB0aW9uAjd7ImRlc2NyaXB0aW9uIjogIk5GVCBmb3IgYXNzb3RpYXRlZCBjYXR0bGUiLCAiaW1hZ2UiOiAiAARsaXZlAgZBQ1RJVkUABGRlYWQCCElOQUNUSVZFAAZmYXR0ZW4CBkZBVFRFTgENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEMdHJ5R2V0U3RyaW5nAQNrZXkEByRtYXRjaDAJAJ0IAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAAQVhbGxvdwEJY2FsbGVyUGJrBgMBaQEMcmVnaXN0ZXJGYXJtAgdhZGRyZXNzBnBhcmFtcwQJY2FsbGVyUGJrCQDYBAEIBQFpD2NhbGxlclB1YmxpY0tleQMJAQVhbGxvdwEFCWNhbGxlclBiawQJcmVjaXBpZW50CQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzBAVwX2FycgkAvAkCBQZwYXJhbXMCAXwECyR0MDE0ODMxNTU1CQCVCgMJAJEDAgUFcF9hcnIAAAkAkQMCBQVwX2FycgABCQCRAwIFBXBfYXJyAAIECGZhcm1OYW1lCAULJHQwMTQ4MzE1NTUCXzEEDGZhcm1Mb2NhdGlvbggFCyR0MDE0ODMxNTU1Al8yBAlpbWFnZUxpbmsIBQskdDAxNDgzMTU1NQJfMwQHbmV4dE51bQkBDXRyeUdldEludGVnZXIBBRZrZXlfZmFybU5mdF9uZXh0TnVtYmVyAwkAAAIFB25leHROdW0FB25leHROdW0EBWlzc3VlCQDCCAUJAKwCAgUMZmFybU5mdF9uYW1lCQCkAwEFB25leHROdW0JAKwCAgkArAICBRNmYXJtTmZ0X2Rlc2NyaXB0aW9uBQlpbWFnZUxpbmsCAiJ9AAEAAAcEAmlkCQC4CAEFBWlzc3VlCQCUCgIJAMwIAgUFaXNzdWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUJcmVjaXBpZW50AAEFAmlkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRZrZXlfZmFybU5mdF9uZXh0TnVtYmVyCQBkAgUHbmV4dE51bQABCQDMCAIJAQxCb29sZWFuRW50cnkCCQCsAgIJAKwCAgIFZmFybV8FB2FkZHJlc3MCB19zdGF0dXMGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgVmYXJtXwUHYWRkcmVzcwIFX25hbWUFCGZhcm1OYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgVmYXJtXwUHYWRkcmVzcwIJX2xvY2F0aW9uBQxmYXJtTG9jYXRpb24FA25pbAkAlgoEBQduZXh0TnVtBQhmYXJtTmFtZQUMZmFybUxvY2F0aW9uBQlpbWFnZUxpbmsJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAhJOb3QgYWxsb3dlZCBjYWxsZXIBaQELcmVnaXN0ZXJDb3cCB2FkZHJlc3MGcGFyYW1zBAljYWxsZXJQYmsJANgEAQgFAWkPY2FsbGVyUHVibGljS2V5AwkBBWFsbG93AQUJY2FsbGVyUGJrBAlyZWNpcGllbnQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MEBXBfYXJyCQC8CQIFBnBhcmFtcwUGcGFyYW1zBAskdDAyNjYxMjgxMAkAmQoHCQCRAwIFBXBfYXJyAAAJAJEDAgUFcF9hcnIAAQkAkQMCBQVwX2FycgACCQCRAwIFBXBfYXJyAAMJAJEDAgUFcF9hcnIABAkAkQMCBQVwX2FycgAFCQCRAwIFBXBfYXJyAAYEB2Nvd0NvZGUIBQskdDAyNjYxMjgxMAJfMQQRYm9ybmVkRmFybUFkZHJlc3MIBQskdDAyNjYxMjgxMAJfMgQFZ2VuZXMIBQskdDAyNjYxMjgxMAJfMwQIbW90aGVySWQIBQskdDAyNjYxMjgxMAJfNAQIZmF0aGVySWQIBQskdDAyNjYxMjgxMAJfNQQEdHlwZQgFCyR0MDI2NjEyODEwAl82BAlpbWFnZUxpbmsIBQskdDAyNjYxMjgxMAJfNwQLZGVzY3JpcHRpb24JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg17ImNvd0NvZGUiOiAiBQdjb3dDb2RlAhkiLCAiYm9ybmVkRmFybUFkZHJlc3MiOiAiBRFib3JuZWRGYXJtQWRkcmVzcwINIiwgImdlbmVzIjogIgUFZ2VuZXMCECIsICJtb3RoZXJJZCI6ICIFCG1vdGhlcklkAhAiLCAiZmF0aGVySWQiOiAiBQhmYXRoZXJJZAIMIiwgInR5cGUiOiAiBQR0eXBlAhEiLCAiaW1hZ2VMaW5rIjogIgUJaW1hZ2VMaW5rAgEiBAVpc3N1ZQkAwggFBQtjb3dOZnRfbmFtZQkArAICCQCsAgIFC2Rlc2NyaXB0aW9uBQlpbWFnZUxpbmsCAiJ9AAEAAAcEAmlkCQC4CAEFBWlzc3VlCQDMCAIFBWlzc3VlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFCXJlY2lwaWVudAABBQJpZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICBWZhcm1fBQdhZGRyZXNzAgVfY293XwkA2AQBBQJpZAIHX3N0YXR1cwUEbGl2ZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIEY293XwkA2AQBBQJpZAIGX293bmVyBQdhZGRyZXNzBQNuaWwJAAIBAhJOb3QgYWxsb3dlZCBjYWxsZXIBaQEEaW5pdAAECWNhbGxlclBiawkA2AQBCAUBaQ9jYWxsZXJQdWJsaWNLZXkDCQEFYWxsb3cBBQljYWxsZXJQYmsEB25leHROdW0JAQ10cnlHZXRJbnRlZ2VyAQIWa2V5X2Zhcm1OZnRfbmV4dE51bWJlcgMJAQIhPQIFB25leHROdW0AAAkAAgECH0NvbnRyYWN0IGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFFmtleV9mYXJtTmZ0X25leHROdW1iZXIAAQUDbmlsCQACAQISTm90IGFsbG93ZWQgY2FsbGVyAICXHoc=", "height": 2504491, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let admin1 = "BgxpCm4wxbW8SKLPKZnf4KU2D6ZU29ov8MgZrkaSAqpY"
5+
6+let admin2 = ""
7+
8+let key_farmNft_nextNumber = "farmNft_nextNumber"
9+
10+let farmNft_name = "Cattle NFT "
11+
12+let cowNft_name = "Cow NFT"
13+
14+let farmNft_description = "{\"description\": \"NFT for assotiated cattle\", \"image\": \""
15+
16+let live = "ACTIVE"
17+
18+let dead = "INACTIVE"
19+
20+let fatten = "FATTEN"
21+
22+func tryGetInteger (key) = match getInteger(this, key) {
23+ case b: Int =>
24+ b
25+ case _ =>
26+ 0
27+}
28+
29+
30+func tryGetString (key) = match getString(this, key) {
31+ case a: String =>
32+ a
33+ case _ =>
34+ ""
35+}
36+
37+
38+func allow (callerPbk) = true
39+
40+
41+@Callable(i)
42+func registerFarm (address,params) = {
43+ let callerPbk = toBase58String(i.callerPublicKey)
44+ if (allow(callerPbk))
45+ then {
46+ let recipient = addressFromStringValue(address)
47+ let p_arr = split_4C(params, "|")
48+ let $t014831555 = $Tuple3(p_arr[0], p_arr[1], p_arr[2])
49+ let farmName = $t014831555._1
50+ let farmLocation = $t014831555._2
51+ let imageLink = $t014831555._3
52+ let nextNum = tryGetInteger(key_farmNft_nextNumber)
53+ if ((nextNum == nextNum))
54+ then {
55+ let issue = Issue((farmNft_name + toString(nextNum)), ((farmNft_description + imageLink) + "\"}"), 1, 0, false)
56+ let id = calculateAssetId(issue)
57+ $Tuple2([issue, ScriptTransfer(recipient, 1, id), IntegerEntry(key_farmNft_nextNumber, (nextNum + 1)), BooleanEntry((("farm_" + address) + "_status"), true), StringEntry((("farm_" + address) + "_name"), farmName), StringEntry((("farm_" + address) + "_location"), farmLocation)], $Tuple4(nextNum, farmName, farmLocation, imageLink))
58+ }
59+ else throw("Strict value is not equal to itself.")
60+ }
61+ else throw("Not allowed caller")
62+ }
63+
64+
65+
66+@Callable(i)
67+func registerCow (address,params) = {
68+ let callerPbk = toBase58String(i.callerPublicKey)
69+ if (allow(callerPbk))
70+ then {
71+ let recipient = addressFromStringValue(address)
72+ let p_arr = split_4C(params, params)
73+ let $t026612810 = $Tuple7(p_arr[0], p_arr[1], p_arr[2], p_arr[3], p_arr[4], p_arr[5], p_arr[6])
74+ let cowCode = $t026612810._1
75+ let bornedFarmAddress = $t026612810._2
76+ let genes = $t026612810._3
77+ let motherId = $t026612810._4
78+ let fatherId = $t026612810._5
79+ let type = $t026612810._6
80+ let imageLink = $t026612810._7
81+ let description = (((((((((((((("{\"cowCode\": \"" + cowCode) + "\", \"bornedFarmAddress\": \"") + bornedFarmAddress) + "\", \"genes\": \"") + genes) + "\", \"motherId\": \"") + motherId) + "\", \"fatherId\": \"") + fatherId) + "\", \"type\": \"") + type) + "\", \"imageLink\": \"") + imageLink) + "\"")
82+ let issue = Issue(cowNft_name, ((description + imageLink) + "\"}"), 1, 0, false)
83+ let id = calculateAssetId(issue)
84+[issue, ScriptTransfer(recipient, 1, id), StringEntry((((("farm_" + address) + "_cow_") + toBase58String(id)) + "_status"), live), StringEntry((("cow_" + toBase58String(id)) + "_owner"), address)]
85+ }
86+ else throw("Not allowed caller")
87+ }
88+
89+
90+
91+@Callable(i)
92+func init () = {
93+ let callerPbk = toBase58String(i.callerPublicKey)
94+ if (allow(callerPbk))
95+ then {
96+ let nextNum = tryGetInteger("key_farmNft_nextNumber")
97+ if ((nextNum != 0))
98+ then throw("Contract is already initialized")
99+ else [IntegerEntry(key_farmNft_nextNumber, 1)]
100+ }
101+ else throw("Not allowed caller")
102+ }
103+
104+

github/deemru/w8io/6500d08 
20.05 ms