tx · 4Bs7nNk5WQeViKPhhkbE7wHgs8i3oEDffzmuTzj7bm9f

3MzcHAM4DcpYKt1ZAMibQmqU69pKQ6qz3i4:  -0.00300000 Waves

2023.03.25 01:00 [2504672] smart account 3MzcHAM4DcpYKt1ZAMibQmqU69pKQ6qz3i4 > SELF 0.00000000 Waves

{ "type": 13, "id": "4Bs7nNk5WQeViKPhhkbE7wHgs8i3oEDffzmuTzj7bm9f", "fee": 300000, "feeAssetId": null, "timestamp": 1679695211349, "version": 2, "chainId": 84, "sender": "3MzcHAM4DcpYKt1ZAMibQmqU69pKQ6qz3i4", "senderPublicKey": "DoAid1WtwHRuonKq6xKkbxijk1QQhXG75vdyuUM7n7NN", "proofs": [ "3YjeicsenVX7QcPjGBuAfVFGJTxfu1WMf6sb5zTS74ZPbsg11vTeHsYNtJYksQsdGGBaTmANpqxQBokSdehUmq36" ], "script": "base64:BgIQCAISBAoCCAgSBAoCCAgSAAwABmFkbWluMQIsRjF5akRkaG9XY3RHUDl5bUdyQmtUZE5IbUVmUHF2TXRpQ0ZYbU43aVhOZ3IABmFkbWluMgIAABZrZXlfZmFybU5mdF9uZXh0TnVtYmVyAhJmYXJtTmZ0X25leHROdW1iZXIADGZhcm1OZnRfbmFtZQILQ2F0dGxlIE5GVCAAC2Nvd05mdF9uYW1lAgdDb3cgTkZUABNmYXJtTmZ0X2Rlc2NyaXB0aW9uAjd7ImRlc2NyaXB0aW9uIjogIk5GVCBmb3IgYXNzb3RpYXRlZCBjYXR0bGUiLCAiaW1hZ2UiOiAiAARsaXZlAgZBQ1RJVkUABGRlYWQCCElOQUNUSVZFAAZmYXR0ZW4CBkZBVFRFTgENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEMdHJ5R2V0U3RyaW5nAQNrZXkEByRtYXRjaDAJAJ0IAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAAQVhbGxvdwEJY2FsbGVyUGJrAwMJAAACBQljYWxsZXJQYmsFBmFkbWluMQYJAAACBQljYWxsZXJQYmsFBmFkbWluMgYHAwFpAQxyZWdpc3RlckZhcm0CB2FkZHJlc3MGcGFyYW1zBAljYWxsZXJQYmsJANgEAQgFAWkPY2FsbGVyUHVibGljS2V5AwkBBWFsbG93AQUJY2FsbGVyUGJrBAlyZWNpcGllbnQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MEBXBfYXJyCQC8CQIFBnBhcmFtcwIBfAQLJHQwMTQ5NjE1NjgJAJUKAwkAkQMCBQVwX2FycgAACQCRAwIFBXBfYXJyAAEJAJEDAgUFcF9hcnIAAgQIZmFybU5hbWUIBQskdDAxNDk2MTU2OAJfMQQMZmFybUxvY2F0aW9uCAULJHQwMTQ5NjE1NjgCXzIECWltYWdlTGluawgFCyR0MDE0OTYxNTY4Al8zBAduZXh0TnVtCQENdHJ5R2V0SW50ZWdlcgEFFmtleV9mYXJtTmZ0X25leHROdW1iZXIDCQAAAgUHbmV4dE51bQUHbmV4dE51bQQFaXNzdWUJAMIIBQkArAICBQxmYXJtTmZ0X25hbWUJAKQDAQUHbmV4dE51bQkArAICCQCsAgIFE2Zhcm1OZnRfZGVzY3JpcHRpb24FCWltYWdlTGluawICIn0AAQAABwQCaWQJALgIAQUFaXNzdWUJAJQKAgkAzAgCBQVpc3N1ZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQlyZWNpcGllbnQAAQUCaWQJAMwIAgkBDEludGVnZXJFbnRyeQIFFmtleV9mYXJtTmZ0X25leHROdW1iZXIJAGQCBQduZXh0TnVtAAEJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAKwCAgkArAICAgVmYXJtXwUHYWRkcmVzcwIHX3N0YXR1cwYJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBWZhcm1fBQdhZGRyZXNzAgVfbmFtZQUIZmFybU5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBWZhcm1fBQdhZGRyZXNzAglfbG9jYXRpb24FDGZhcm1Mb2NhdGlvbgUDbmlsCQCWCgQFB25leHROdW0FCGZhcm1OYW1lBQxmYXJtTG9jYXRpb24FCWltYWdlTGluawkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECEk5vdCBhbGxvd2VkIGNhbGxlcgFpAQtyZWdpc3RlckNvdwIHYWRkcmVzcwZwYXJhbXMECWNhbGxlclBiawkA2AQBCAUBaQ9jYWxsZXJQdWJsaWNLZXkDCQEFYWxsb3cBBQljYWxsZXJQYmsECXJlY2lwaWVudAkBEUBleHRyTmF0aXZlKDEwNjIpAQUHYWRkcmVzcwQFcF9hcnIJALwJAgUGcGFyYW1zBQZwYXJhbXMECyR0MDI2NzQyODIzCQCZCgcJAJEDAgUFcF9hcnIAAAkAkQMCBQVwX2FycgABCQCRAwIFBXBfYXJyAAIJAJEDAgUFcF9hcnIAAwkAkQMCBQVwX2FycgAECQCRAwIFBXBfYXJyAAUJAJEDAgUFcF9hcnIABgQHY293Q29kZQgFCyR0MDI2NzQyODIzAl8xBBFib3JuZWRGYXJtQWRkcmVzcwgFCyR0MDI2NzQyODIzAl8yBAVnZW5lcwgFCyR0MDI2NzQyODIzAl8zBAhtb3RoZXJJZAgFCyR0MDI2NzQyODIzAl80BAhmYXRoZXJJZAgFCyR0MDI2NzQyODIzAl81BAR0eXBlCAULJHQwMjY3NDI4MjMCXzYECWltYWdlTGluawgFCyR0MDI2NzQyODIzAl83BAtkZXNjcmlwdGlvbgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDXsiY293Q29kZSI6ICIFB2Nvd0NvZGUCGSIsICJib3JuZWRGYXJtQWRkcmVzcyI6ICIFEWJvcm5lZEZhcm1BZGRyZXNzAg0iLCAiZ2VuZXMiOiAiBQVnZW5lcwIQIiwgIm1vdGhlcklkIjogIgUIbW90aGVySWQCECIsICJmYXRoZXJJZCI6ICIFCGZhdGhlcklkAgwiLCAidHlwZSI6ICIFBHR5cGUCESIsICJpbWFnZUxpbmsiOiAiBQlpbWFnZUxpbmsCASIEBWlzc3VlCQDCCAUFC2Nvd05mdF9uYW1lCQCsAgIJAKwCAgULZGVzY3JpcHRpb24FCWltYWdlTGluawICIn0AAQAABwQCaWQJALgIAQUFaXNzdWUJAMwIAgUFaXNzdWUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUJcmVjaXBpZW50AAEFAmlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIFZmFybV8FB2FkZHJlc3MCBV9jb3dfCQDYBAEFAmlkAgdfc3RhdHVzBQRsaXZlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgRjb3dfCQDYBAEFAmlkAgZfb3duZXIFB2FkZHJlc3MFA25pbAkAAgECEk5vdCBhbGxvd2VkIGNhbGxlcgFpAQRpbml0AAQJY2FsbGVyUGJrCQDYBAEIBQFpD2NhbGxlclB1YmxpY0tleQMJAQVhbGxvdwEFCWNhbGxlclBiawQHbmV4dE51bQkBDXRyeUdldEludGVnZXIBBRZrZXlfZmFybU5mdF9uZXh0TnVtYmVyAwkBAiE9AgUHbmV4dE51bQAACQACAQkArAICAh9Db250cmFjdCBpcyBhbHJlYWR5IGluaXRpYWxpemVkCQCkAwEFB25leHROdW0JAMwIAgkBDEludGVnZXJFbnRyeQIFFmtleV9mYXJtTmZ0X25leHROdW1iZXIAAQUDbmlsCQACAQISTm90IGFsbG93ZWQgY2FsbGVyADH40dk=", "height": 2504672, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FLcUFkx5m5QCMNuakGjpN8qk4QYG7xkYJTMRKYJCkLjK Next: CKFKmjvtTnEe31yRSn5H1SzxAjxBzit113sNyGDSD2VB Diff:
OldNewDifferences
9999 then {
100100 let nextNum = tryGetInteger(key_farmNft_nextNumber)
101101 if ((nextNum != 0))
102- then throw("Contract is already initialized")
102+ then throw(("Contract is already initialized" + toString(nextNum)))
103103 else [IntegerEntry(key_farmNft_nextNumber, 1)]
104104 }
105105 else throw("Not allowed caller")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let admin1 = "F1yjDdhoWctGP9ymGrBkTdNHmEfPqvMtiCFXmN7iXNgr"
55
66 let admin2 = ""
77
88 let key_farmNft_nextNumber = "farmNft_nextNumber"
99
1010 let farmNft_name = "Cattle NFT "
1111
1212 let cowNft_name = "Cow NFT"
1313
1414 let farmNft_description = "{\"description\": \"NFT for assotiated cattle\", \"image\": \""
1515
1616 let live = "ACTIVE"
1717
1818 let dead = "INACTIVE"
1919
2020 let fatten = "FATTEN"
2121
2222 func tryGetInteger (key) = match getInteger(this, key) {
2323 case b: Int =>
2424 b
2525 case _ =>
2626 0
2727 }
2828
2929
3030 func tryGetString (key) = match getString(this, key) {
3131 case a: String =>
3232 a
3333 case _ =>
3434 ""
3535 }
3636
3737
3838 func allow (callerPbk) = if (if ((callerPbk == admin1))
3939 then true
4040 else (callerPbk == admin2))
4141 then true
4242 else false
4343
4444
4545 @Callable(i)
4646 func registerFarm (address,params) = {
4747 let callerPbk = toBase58String(i.callerPublicKey)
4848 if (allow(callerPbk))
4949 then {
5050 let recipient = addressFromStringValue(address)
5151 let p_arr = split_4C(params, "|")
5252 let $t014961568 = $Tuple3(p_arr[0], p_arr[1], p_arr[2])
5353 let farmName = $t014961568._1
5454 let farmLocation = $t014961568._2
5555 let imageLink = $t014961568._3
5656 let nextNum = tryGetInteger(key_farmNft_nextNumber)
5757 if ((nextNum == nextNum))
5858 then {
5959 let issue = Issue((farmNft_name + toString(nextNum)), ((farmNft_description + imageLink) + "\"}"), 1, 0, false)
6060 let id = calculateAssetId(issue)
6161 $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))
6262 }
6363 else throw("Strict value is not equal to itself.")
6464 }
6565 else throw("Not allowed caller")
6666 }
6767
6868
6969
7070 @Callable(i)
7171 func registerCow (address,params) = {
7272 let callerPbk = toBase58String(i.callerPublicKey)
7373 if (allow(callerPbk))
7474 then {
7575 let recipient = addressFromStringValue(address)
7676 let p_arr = split_4C(params, params)
7777 let $t026742823 = $Tuple7(p_arr[0], p_arr[1], p_arr[2], p_arr[3], p_arr[4], p_arr[5], p_arr[6])
7878 let cowCode = $t026742823._1
7979 let bornedFarmAddress = $t026742823._2
8080 let genes = $t026742823._3
8181 let motherId = $t026742823._4
8282 let fatherId = $t026742823._5
8383 let type = $t026742823._6
8484 let imageLink = $t026742823._7
8585 let description = (((((((((((((("{\"cowCode\": \"" + cowCode) + "\", \"bornedFarmAddress\": \"") + bornedFarmAddress) + "\", \"genes\": \"") + genes) + "\", \"motherId\": \"") + motherId) + "\", \"fatherId\": \"") + fatherId) + "\", \"type\": \"") + type) + "\", \"imageLink\": \"") + imageLink) + "\"")
8686 let issue = Issue(cowNft_name, ((description + imageLink) + "\"}"), 1, 0, false)
8787 let id = calculateAssetId(issue)
8888 [issue, ScriptTransfer(recipient, 1, id), StringEntry((((("farm_" + address) + "_cow_") + toBase58String(id)) + "_status"), live), StringEntry((("cow_" + toBase58String(id)) + "_owner"), address)]
8989 }
9090 else throw("Not allowed caller")
9191 }
9292
9393
9494
9595 @Callable(i)
9696 func init () = {
9797 let callerPbk = toBase58String(i.callerPublicKey)
9898 if (allow(callerPbk))
9999 then {
100100 let nextNum = tryGetInteger(key_farmNft_nextNumber)
101101 if ((nextNum != 0))
102- then throw("Contract is already initialized")
102+ then throw(("Contract is already initialized" + toString(nextNum)))
103103 else [IntegerEntry(key_farmNft_nextNumber, 1)]
104104 }
105105 else throw("Not allowed caller")
106106 }
107107
108108

github/deemru/w8io/873ac7e 
42.07 ms