tx · eRhpXC1HR3iWSD4wiDgDYADB4ytQ2WHGmfswn29dGJz

3MrQ4g9YCsAN2Wr4QUXiWAPhNPv7DGdQNWb:  -0.00500000 Waves

2023.03.16 22:58 [2493029] smart account 3MrQ4g9YCsAN2Wr4QUXiWAPhNPv7DGdQNWb > SELF 0.00000000 Waves

{ "type": 13, "id": "eRhpXC1HR3iWSD4wiDgDYADB4ytQ2WHGmfswn29dGJz", "fee": 500000, "feeAssetId": null, "timestamp": 1678996698597, "version": 2, "chainId": 84, "sender": "3MrQ4g9YCsAN2Wr4QUXiWAPhNPv7DGdQNWb", "senderPublicKey": "2VQGRNRWyFAZvjDtkgZwdZcTwZvBJJ61n8zJfYYxm5eK", "proofs": [ "67bGVpkLEi2NTZ3pQqN6jm3Wje1SZMdwkznzQvCec8SxTQbycRqMs2DfHBMDRiwERgVZ925vusqyTqvkE4FtdrUr" ], "script": "base64:BgJCCAISBAoCGBgSBQoDCBgYEgQKAggIEgQKAggIEgQKAggIEgUKAwgICBIDCgECEgUKAwgICBIECgIICBIGCgQIAQEBCgAOY29sbGVjdGlvbk5hbWUJARFAZXh0ck5hdGl2ZSgxMDU4KQECDmNvbGxlY3Rpb25OYW1lAAZzeW1ib2wJARFAZXh0ck5hdGl2ZSgxMDU4KQECBnN5bWJvbAALZGVzY3JpcHRpb24JARFAZXh0ck5hdGl2ZSgxMDU4KQECC2Rlc2NyaXB0aW9uAAt0b3RhbEFtb3VudAkBEUBleHRyTmF0aXZlKDEwNTUpAQILdG90YWxBbW91bnQACGRBcHBKc29uCQEHQWRkcmVzcwEJANkEAQIjM01yR2FaVlJoa25FR2ZISjE5dHRVUE5uRFJvRnFjSGhWTjcADHRva2VuUGF5bWVudAkBB0FkZHJlc3MBCQERQGV4dHJOYXRpdmUoMTA1NykBAgx0b2tlblBheW1lbnQBDG9ubHlJbnRlcm5hbAEGY2FsbGVyAwkAAAIFBmNhbGxlcgUEdGhpcwUEdW5pdAkAAgECEk9ubHkgaW50ZXJuYWwgY2FsbAENdHJhbnNmZXJPck5vdAICdG8HYXNzZXRJZAMJAAACBQJ0bwUEdGhpcwkBC1N0cmluZ0VudHJ5AgIO0LrQvtGB0YLRi9C70YwCDtC60L7RgdGC0YvQu9GMCQEOU2NyaXB0VHJhbnNmZXIDBQJ0bwABBQdhc3NldElkAQ5wYXJzZUlkdG9Bc3NldAEHYXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUHYXNzZXRJZAIcQ2FuJ3QgZmluZCBhc3NldCBieSBhc3NldCBpZAEPY2hlY2tBc3NldE93bmVyAgZjYWxsZXIHYXNzZXRJZAMJAAACCQDwBwIFBmNhbGxlcgkA2QQBBQdhc3NldElkAAEFBHVuaXQJAAIBAhBPbmx5IGFzc2V0IG93bmVyCgFpARBtYWtlSlNPTkludGVybmFsAgdhcnJLZXlzCWFyclZhbHVlcwkBC3ZhbHVlT3JFbHNlAgkBDG9ubHlJbnRlcm5hbAEIBQFpBmNhbGxlcgQDcmVzCQD8BwQFCGRBcHBKc29uAghtYWtlSlNPTgkAzAgCBQdhcnJLZXlzCQDMCAIFCWFyclZhbHVlcwUDbmlsBQNuaWwDCQAAAgUDcmVzBQNyZXMJAJQKAgUDbmlsBQNyZXMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERYWRkVG9KU09OSW50ZXJuYWwDBGpzb24HYXJyS2V5cwlhcnJWYWx1ZXMJAQt2YWx1ZU9yRWxzZQIJAQxvbmx5SW50ZXJuYWwBCAUBaQZjYWxsZXIEA3JlcwkA/AcEBQhkQXBwSnNvbgIJYWRkVG9KU09OCQDMCAIFBGpzb24JAMwIAgUHYXJyS2V5cwkAzAgCBQlhcnJWYWx1ZXMFA25pbAUDbmlsAwkAAAIFA3JlcwUDcmVzCQCUCgIFA25pbAUDcmVzCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFXJlYWRCeUpTT05LZXlJbnRlcm5hbAIEanNvbgNrZXkJAQt2YWx1ZU9yRWxzZQIJAQxvbmx5SW50ZXJuYWwBCAUBaQZjYWxsZXIEA3JlcwkA/AcEBQhkQXBwSnNvbgINcmVhZEJ5SlNPTktleQkAzAgCBQRqc29uCQDMCAIFA2tleQUDbmlsBQNuaWwDCQAAAgUDcmVzBQNyZXMJAJQKAgUDbmlsBQNyZXMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEXZGVsZXRlQnlKU09OS2V5SW50ZXJuYWwCBGpzb24Da2V5CQELdmFsdWVPckVsc2UCCQEMb25seUludGVybmFsAQgFAWkGY2FsbGVyBANyZXMJAPwHBAUIZEFwcEpzb24CD2RlbGV0ZUJ5SlNPTktleQkAzAgCBQRqc29uCQDMCAIFA2tleQUDbmlsBQNuaWwDCQAAAgUDcmVzBQNyZXMJAJQKAgUDbmlsBQNyZXMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQETc3RvcmFnZUpzb25JbnRlcm5hbAIHanNvbktleQpqc29uU3RyaW5nCQELdmFsdWVPckVsc2UCCQEMb25seUludGVybmFsAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIFB2pzb25LZXkFCmpzb25TdHJpbmcFA25pbAFpAQdzZXRVc2VyAwdhc3NldElkBHVzZXIHZXhwaXJlcwQDcmVzCQD8BwQFCGRBcHBKc29uAghtYWtlSlNPTgkAzAgCCQDMCAICBHVzZXIJAMwIAgIHZXhwaXJlcwUDbmlsCQDMCAIJAMwIAgUEdXNlcgkAzAgCBQdleHBpcmVzBQNuaWwFA25pbAUDbmlsAwkAAAIFA3JlcwUDcmVzCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICAgd1c2VyT2YtBQdhc3NldElkCgABQAUDcmVzAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwUDbmlsBQNyZXMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEPc2V0VG9rZW5QYXltZW50AQdhc3NldElkCQELdmFsdWVPckVsc2UCCQEMb25seUludGVybmFsAQgFAWkGY2FsbGVyCQDMCAIJAQtCaW5hcnlFbnRyeQICDHRva2VuUGF5bWVudAUHYXNzZXRJZAUDbmlsAWkBBGluaXQDDmNvbGxlY3Rpb25OYW1lBnN5bWJvbAtkZXNjcmlwdGlvbgkBC3ZhbHVlT3JFbHNlAgkBDG9ubHlJbnRlcm5hbAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCAg5jb2xsZWN0aW9uTmFtZQUOY29sbGVjdGlvbk5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgIGc3ltYm9sBQZzeW1ib2wJAMwIAgkBC1N0cmluZ0VudHJ5AgILZGVzY3JpcHRpb24FC2Rlc2NyaXB0aW9uCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgt0b3RhbEFtb3VudAAABQNuaWwBaQEEbWludAICdG8IdG9rZW5VUkkJAQt2YWx1ZU9yRWxzZQIJAQxvbmx5SW50ZXJuYWwBCAUBaQZjYWxsZXIEB3Rva2VuSWQJAGQCBQt0b3RhbEFtb3VudAABBAdwcmVOYW1lCQCsAgIJAKwCAgUGc3ltYm9sAgEjCQCkAwEFB3Rva2VuSWQEBG5hbWUDCQBnAgAQCQCxAgEFB3ByZU5hbWUFB3ByZU5hbWUJAKQDAQUHdG9rZW5JZAQFYXNzZXQJAMMIBwUEbmFtZQkArAICCQCsAgICBnt1cmk6IgUIdG9rZW5VUkkCAiJ9AAEAAAcFBHVuaXQFBmhlaWdodAQHYXNzZXRJZAkAuAgBBQVhc3NldAQJdG9BZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUCdG8ECHRyYW5zZmVyCQENdHJhbnNmZXJPck5vdAIFCXRvQWRkcmVzcwUHYXNzZXRJZAMJAAACBQh0cmFuc2ZlcgUIdHJhbnNmZXIJAMwIAgUFYXNzZXQJAMwIAgUIdHJhbnNmZXIJAMwIAgkBDEludGVnZXJFbnRyeQICC3RvdGFsQW1vdW50BQd0b2tlbklkCQDMCAIJAQtTdHJpbmdFbnRyeQIFBG5hbWUFCHRva2VuVVJJBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIaW5pdExlbmQEB2Fzc2V0SWQPdGltZVVuaXRTZWNvbmRzDXRpbWVVbml0UHJpY2UNdGltZVVuaXRDb3VudAkBC3ZhbHVlT3JFbHNlAgkBD2NoZWNrQXNzZXRPd25lcgIIBQFpBmNhbGxlcgUHYXNzZXRJZAQFYXNzZXQJAQ5wYXJzZUlkdG9Bc3NldAEFB2Fzc2V0SWQECHRva2VuVXJpCAUFYXNzZXQLZGVzY3JpcHRpb24EBWxlbmRzCQERQGV4dHJOYXRpdmUoMTA1OCkBAgVMZW5kcwQEcmVzMQkA/AcEBQhkQXBwSnNvbgINcmVhZEJ5SlNPTktleQkAzAgCBQVsZW5kcwkAzAgCAgVjb3VudAUDbmlsBQNuaWwEBmxlbmRJZAkAZAIJAQ1wYXJzZUludFZhbHVlAQoAAUAFBHJlczEDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQUBQAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nAAEEBHJlczIJAPwHBAUIZEFwcEpzb24CCG1ha2VKU09OCQDMCAIJAMwIAgISc3VwcG9ydGVkSW50ZXJmYWNlCQDMCAICCGFzc2V0ZElkCQDMCAICCHRva2VuVXJpCQDMCAICBW93bmVyCQDMCAICD3RpbWVVbml0U2Vjb25kcwkAzAgCAg10aW1lVW5pdFByaWNlCQDMCAICDXRpbWVVbml0Q291bnQJAMwIAgIOc3RhcnRUaW1lc3RhbXAJAMwIAgIMZW5kVGltZXN0YW1wCQDMCAICB2RlcG9zaXQJAMwIAgIHY2xhaW1lZAkAzAgCAgVyZW50cwUDbmlsCQDMCAIJAMwIAgAACQDMCAIFB2Fzc2V0SWQJAMwIAgUIdG9rZW5VcmkJAMwIAggFAWkGY2FsbGVyCQDMCAIFD3RpbWVVbml0U2Vjb25kcwkAzAgCBQ10aW1lVW5pdFByaWNlCQDMCAIFDXRpbWVVbml0Q291bnQJAMwIAggFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkAZAIIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQBoAgUPdGltZVVuaXRTZWNvbmRzBQ10aW1lVW5pdENvdW50CQDMCAIAAAkAzAgCBwkAzAgCAg17ImNvdW50IjoiMCJ9BQNuaWwFA25pbAUDbmlsAwkAAAIFBHJlczIFBHJlczIJAMwIAgkBC1N0cmluZ0VudHJ5AgIFTGVuZHMKAAFABQRyZXMyAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAOLBJvU=", "height": 2493029, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BsCrNyVKeMHgGDJcaeAF4GMprBkgQ72cvqucJ1g9ftAC Next: Bgc366aQ2T1tEam2r6AE3DYdSodG8owVmXG6tyBBF7eU Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let collectionName = getStringValue("collectionName")
55
66 let symbol = getStringValue("symbol")
77
88 let description = getStringValue("description")
99
1010 let totalAmount = getIntegerValue("totalAmount")
1111
1212 let dAppJson = Address(fromBase58String("3MrGaZVRhknEGfHJ19ttUPNnDRoFqcHhVN7"))
1313
1414 let tokenPayment = Address(getBinaryValue("tokenPayment"))
1515
1616 func onlyInternal (caller) = if ((caller == this))
1717 then unit
1818 else throw("Only internal call")
1919
2020
2121 func transferOrNot (to,assetId) = if ((to == this))
2222 then StringEntry("костыль", "костыль")
2323 else ScriptTransfer(to, 1, assetId)
2424
2525
2626 func parseIdtoAsset (assetId) = valueOrErrorMessage(assetInfo(fromBase58String(assetId)), "Can't find asset by asset id")
2727
2828
2929 func checkAssetOwner (caller,assetId) = if ((assetBalance(caller, fromBase58String(assetId)) == 1))
3030 then unit
3131 else throw("Only asset owner")
3232
3333
3434 @Callable(i)
3535 func makeJSONInternal (arrKeys,arrValues) = valueOrElse(onlyInternal(i.caller), {
3636 let res = invoke(dAppJson, "makeJSON", [arrKeys, arrValues], nil)
3737 if ((res == res))
3838 then $Tuple2(nil, res)
3939 else throw("Strict value is not equal to itself.")
4040 })
4141
4242
4343
4444 @Callable(i)
4545 func addToJSONInternal (json,arrKeys,arrValues) = valueOrElse(onlyInternal(i.caller), {
4646 let res = invoke(dAppJson, "addToJSON", [json, arrKeys, arrValues], nil)
4747 if ((res == res))
4848 then $Tuple2(nil, res)
4949 else throw("Strict value is not equal to itself.")
5050 })
5151
5252
5353
5454 @Callable(i)
5555 func readByJSONKeyInternal (json,key) = valueOrElse(onlyInternal(i.caller), {
5656 let res = invoke(dAppJson, "readByJSONKey", [json, key], nil)
5757 if ((res == res))
5858 then $Tuple2(nil, res)
5959 else throw("Strict value is not equal to itself.")
6060 })
6161
6262
6363
6464 @Callable(i)
6565 func deleteByJSONKeyInternal (json,key) = valueOrElse(onlyInternal(i.caller), {
6666 let res = invoke(dAppJson, "deleteByJSONKey", [json, key], nil)
6767 if ((res == res))
6868 then $Tuple2(nil, res)
6969 else throw("Strict value is not equal to itself.")
7070 })
7171
7272
7373
7474 @Callable(i)
7575 func storageJsonInternal (jsonKey,jsonString) = valueOrElse(onlyInternal(i.caller), [StringEntry(jsonKey, jsonString)])
7676
7777
7878
7979 @Callable(i)
8080 func setUser (assetId,user,expires) = {
8181 let res = invoke(dAppJson, "makeJSON", [["user", "expires"], [user, expires]], nil)
8282 if ((res == res))
8383 then $Tuple2([StringEntry(("userOf-" + assetId), {
8484 let @ = res
8585 if ($isInstanceOf(@, "String"))
8686 then @
8787 else throw(($getType(@) + " couldn't be cast to String"))
8888 })], res)
8989 else throw("Strict value is not equal to itself.")
9090 }
9191
9292
9393
9494 @Callable(i)
9595 func setTokenPayment (assetId) = valueOrElse(onlyInternal(i.caller), [BinaryEntry("tokenPayment", assetId)])
9696
9797
9898
9999 @Callable(i)
100100 func init (collectionName,symbol,description) = valueOrElse(onlyInternal(i.caller), [StringEntry("collectionName", collectionName), StringEntry("symbol", symbol), StringEntry("description", description), IntegerEntry("totalAmount", 0)])
101101
102102
103103
104104 @Callable(i)
105105 func mint (to,tokenURI) = valueOrElse(onlyInternal(i.caller), {
106106 let tokenId = (totalAmount + 1)
107107 let preName = ((symbol + "#") + toString(tokenId))
108108 let name = if ((16 >= size(preName)))
109109 then preName
110110 else toString(tokenId)
111111 let asset = Issue(name, (("{uri:\"" + tokenURI) + "\"}"), 1, 0, false, unit, height)
112112 let assetId = calculateAssetId(asset)
113113 let toAddress = Address(fromBase58String(to))
114114 let transfer = transferOrNot(toAddress, assetId)
115115 if ((transfer == transfer))
116116 then [asset, transfer, IntegerEntry("totalAmount", tokenId), StringEntry(name, tokenURI)]
117117 else throw("Strict value is not equal to itself.")
118118 })
119119
120120
121121
122122 @Callable(i)
123123 func initLend (assetId,timeUnitSeconds,timeUnitPrice,timeUnitCount) = valueOrElse(checkAssetOwner(i.caller, assetId), {
124124 let asset = parseIdtoAsset(assetId)
125125 let tokenUri = asset.description
126126 let lends = getStringValue("Lends")
127127 let res1 = invoke(dAppJson, "readByJSONKey", [lends, "count"], nil)
128128 let lendId = (parseIntValue({
129129 let @ = res1
130130 if ($isInstanceOf(@, "String"))
131131 then @
132132 else throw(($getType(@) + " couldn't be cast to String"))
133133 }) + 1)
134134 let res2 = invoke(dAppJson, "makeJSON", [["supportedInterface", "assetdId", "tokenUri", "owner", "timeUnitSeconds", "timeUnitPrice", "timeUnitCount", "startTimestamp", "endTimestamp", "deposit", "claimed", "rents"], [0, assetId, tokenUri, i.caller, timeUnitSeconds, timeUnitPrice, timeUnitCount, lastBlock.timestamp, (lastBlock.timestamp + (timeUnitSeconds * timeUnitCount)), 0, false, "{\"count\":\"0\"}"]], nil)
135135 if ((res2 == res2))
136136 then [StringEntry("Lends", {
137137 let @ = res2
138138 if ($isInstanceOf(@, "String"))
139139 then @
140140 else throw(($getType(@) + " couldn't be cast to String"))
141141 })]
142142 else throw("Strict value is not equal to itself.")
143143 })
144144
145145

github/deemru/w8io/873ac7e 
39.49 ms