tx · 32FJDu9NSLhXDAKd38oVAr5gnxBUvrxpnindoexU5gJb

3N4UhavKsWv4dPmmhtaYT573ALxuvsAp6M4:  -0.01000000 Waves

2022.06.06 09:57 [2084165] smart account 3N4UhavKsWv4dPmmhtaYT573ALxuvsAp6M4 > SELF 0.00000000 Waves

{ "type": 13, "id": "32FJDu9NSLhXDAKd38oVAr5gnxBUvrxpnindoexU5gJb", "fee": 1000000, "feeAssetId": null, "timestamp": 1654498658783, "version": 2, "chainId": 84, "sender": "3N4UhavKsWv4dPmmhtaYT573ALxuvsAp6M4", "senderPublicKey": "5nJ4v4Wx6sdXhiDZNrpW7m1aSDsTgTgFJVBgmPMPtbUM", "proofs": [ "nbaqqpRfswKFEtGYUAWkusb5fYdQ7L5FyXTQ9Gi8jwP3KVGxRqs2Q8j5oEYJ7p5btij7NSdkBGE5Wqr8TxHC6fb" ], "script": "base64:AAIFAAAAAAAAAAwIAhIDCgEIEgMKAQgAAAATAAAAAAZzdGFrZXICAAAABnN0YWtlcgAAAAAFYWRtaW4CAAAABmFkbWluXwEAAAAEZ2V0SQAAAAEAAAADa2V5CQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAEZ2V0UwAAAAEAAAADa2V5CQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAFZ2V0SVYAAAABAAAAA2tleQkBAAAABXZhbHVlAAAAAQkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAABWdldFNWAAAAAQAAAANrZXkJAQAAAAV2YWx1ZQAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAAAd0aHJvd0lmAAAAAgAAAAljb25kaXRpb24AAAAFZXJyb3IDBQAAAAljb25kaXRpb24JAAACAAAAAQUAAAAFZXJyb3IGAAAAABR0aGlydHlEYXlzTG9ja1BlcmlvZAAAAAAAAAAAHgAAAAATc2l4dHlEYXlzTG9ja1BlcmlvZAAAAAAAAAAAPAAAAAAUbmluZXR5RGF5c0xvY2tQZXJpb2QAAAAAAAAAAFoBAAAADnRocm93T3JSZXR1cm5JAAAAAgAAAAN2YWwAAAAFZXJyb3IEAAAAByRtYXRjaDAFAAAAA3ZhbAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAN2YWwFAAAAByRtYXRjaDAFAAAAA3ZhbAkAAAIAAAABBQAAAAVlcnJvcgEAAAAOdGhyb3dPclJldHVyblMAAAACAAAAA3ZhbAAAAAVlcnJvcgQAAAAHJG1hdGNoMAUAAAADdmFsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAA3ZhbAUAAAAHJG1hdGNoMAUAAAADdmFsCQAAAgAAAAEFAAAABWVycm9yAQAAAAh3cml0ZUludAAAAAIAAAADa2V5AAAABXZhbHVlAwkAAGYAAAACAAAAAAAAAAAABQAAAAV2YWx1ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABd3cml0aW5nIG5lZ2F0aXZlIHZhbHVlIAkAAaQAAAABBQAAAAV2YWx1ZQIAAAAJIGZvciBrZXkgBQAAAANrZXkJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlAQAAAAh3cml0ZVN0cgAAAAIAAAADa2V5AAAABXZhbHVlAwkAAAAAAAACAgAAAAEgBQAAAAV2YWx1ZQkAAAIAAAABCQABLAAAAAICAAAAGHdyaXRpbmcgYW4gZW1wdHkgc3RyaW5nIAUAAAAFdmFsdWUJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAA2tleQUAAAAFdmFsdWUBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACAAAAA2tleQAAAAV2YWx1ZQMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAQAAAARnZXRTAAAAAQUAAAADa2V5CQEAAAAId3JpdGVTdHIAAAACBQAAAANrZXkFAAAABXZhbHVlCQAAAgAAAAEJAAEsAAAAAgIAAAAVYWxyZWFkeSBpbml0aWFsaXplZDogBQAAAANrZXkBAAAAEXdyaXRlQ29uc3RJbnRlZ2VyAAAAAgAAAANrZXkAAAAFdmFsdWUDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCQEAAAAEZ2V0UwAAAAEFAAAAA2tleQkBAAAACHdyaXRlSW50AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQkAAAIAAAABCQABLAAAAAICAAAAFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUAAAADa2V5AQAAAAlhZG1pbk9ubHkAAAABAAAAAWkEAAAADGlucHV0QWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAApvdGhlckFkbWluCQABLAAAAAIFAAAABWFkbWluBQAAAAxpbnB1dEFkZHJlc3MEAAAAByRtYXRjaDAJAQAAAARnZXRTAAAAAQUAAAAFYWRtaW4DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAMJAQAAAAIhPQAAAAIFAAAADGlucHV0QWRkcmVzcwkBAAAABGdldFMAAAABBQAAAAVhZG1pbgkAAAIAAAABAgAAAAx1bmF1dGhvcml6ZWQGBAAAAAckbWF0Y2gxCQEAAAAEZ2V0UwAAAAEFAAAACm90aGVyQWRtaW4DCQAAAQAAAAIFAAAAByRtYXRjaDECAAAABlN0cmluZwQAAAABYgUAAAAHJG1hdGNoMQMJAQAAAAIhPQAAAAIFAAAADGlucHV0QWRkcmVzcwkBAAAABGdldFMAAAABBQAAAApvdGhlckFkbWluCQAAAgAAAAECAAAADHVuYXV0aG9yaXplZAYJAAACAAAAAQIAAAALdW5hdXRob3JpemQBAAAAEHdyaXRlQ29uZmlnVmFsdWUAAAACAAAAA2tleQAAAARkYXRhBAAAAAckbWF0Y2gwBQAAAARkYXRhAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABGRhdGEFAAAAByRtYXRjaDAJAQAAABB3cml0ZUNvbnN0U3RyaW5nAAAAAgUAAAADa2V5BQAAAARkYXRhAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABGRhdGEFAAAAByRtYXRjaDAJAQAAABF3cml0ZUNvbnN0SW50ZWdlcgAAAAIFAAAAA2tleQUAAAAEZGF0YQkAAAIAAAABAgAAABd1bnN1cHBvcnRlZCBjb25maWcgdHlwZQEAAAATaW5jcmVtZW50RW50cnlJbmRleAAAAAEAAAADa2V5BAAAAAZ1SW5kZXgJAQAAAARnZXRJAAAAAQUAAAADa2V5AwkBAAAACWlzRGVmaW5lZAAAAAEFAAAABnVJbmRleAkAAGQAAAACCQEAAAAFdmFsdWUAAAABBQAAAAZ1SW5kZXgAAAAAAAAAAAEAAAAAAAAAAAAAAAACAAAAAWkBAAAABGluaXQAAAABAAAADXN0YWtlckFkZHJlc3MJAARMAAAAAgkBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACBQAAAAZzdGFrZXIFAAAADXN0YWtlckFkZHJlc3MJAARMAAAAAgkBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACBQAAAAVhZG1pbgkAAlgAAAABCAUAAAAEdGhpcwAAAAVieXRlcwUAAAADbmlsAAAAAWkBAAAAEmdldEFzc2V0SWRCeVRpY2tlcgAAAAEAAAALQXNzZXRUaWNrZXIEAAAAA3J1bgkAA/wAAAAECQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAFZ2V0U1YAAAABAgAAAAZzdGFrZXICAAAAE19nZXRBc3NldElkQnlUaWNrZXIJAARMAAAAAgUAAAALQXNzZXRUaWNrZXIFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAANydW4FAAAAA3J1bgUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAABYjvqY", "height": 2084165, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3HaYY71V9AhhSjqtH3dGZJeNwerW7QrmLrHxzpS2QYue Next: GppojEQNZwoerhApmhxUekxdHpzmgoq4P3ynuyyVn8jr Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let staker = "staker"
5+
6+let admin = "admin_"
7+
8+func getI (key) = getInteger(this, key)
9+
10+
11+func getS (key) = getString(this, key)
12+
13+
14+func getIV (key) = value(getInteger(this, key))
15+
16+
17+func getSV (key) = value(getString(this, key))
18+
19+
20+func throwIf (condition,error) = if (condition)
21+ then throw(error)
22+ else true
23+
24+
25+let thirtyDaysLockPeriod = 30
26+
27+let sixtyDaysLockPeriod = 60
28+
29+let ninetyDaysLockPeriod = 90
30+
31+func throwOrReturnI (val,error) = match val {
32+ case val: Int =>
33+ val
34+ case _ =>
35+ throw(error)
36+}
37+
38+
39+func throwOrReturnS (val,error) = match val {
40+ case val: String =>
41+ val
42+ case _ =>
43+ throw(error)
44+}
45+
46+
47+func writeInt (key,value) = if ((0 > value))
48+ then throw(((("writing negative value " + toString(value)) + " for key ") + key))
49+ else IntegerEntry(key, value)
50+
51+
52+func writeStr (key,value) = if ((" " == value))
53+ then throw(("writing an empty string " + value))
54+ else StringEntry(key, value)
55+
56+
57+func writeConstString (key,value) = if (!(isDefined(getS(key))))
58+ then writeStr(key, value)
59+ else throw(("already initialized: " + key))
60+
61+
62+func writeConstInteger (key,value) = if (!(isDefined(getS(key))))
63+ then writeInt(key, value)
64+ else throw(("already initialized: " + key))
65+
66+
67+func adminOnly (i) = {
68+ let inputAddress = toBase58String(i.caller.bytes)
69+ let otherAdmin = (admin + inputAddress)
70+ match getS(admin) {
71+ case a: String =>
72+ if ((inputAddress != getS(admin)))
73+ then throw("unauthorized")
74+ else true
75+ case _ =>
76+ match getS(otherAdmin) {
77+ case b: String =>
78+ if ((inputAddress != getS(otherAdmin)))
79+ then throw("unauthorized")
80+ else true
81+ case _ =>
82+ throw("unauthorizd")
83+ }
84+ }
85+ }
86+
87+
88+func writeConfigValue (key,data) = match data {
89+ case data: String =>
90+ writeConstString(key, data)
91+ case data: Int =>
92+ writeConstInteger(key, data)
93+ case _ =>
94+ throw("unsupported config type")
95+}
96+
97+
98+func incrementEntryIndex (key) = {
99+ let uIndex = getI(key)
100+ if (isDefined(uIndex))
101+ then (value(uIndex) + 1)
102+ else 0
103+ }
4104
5105
6106 @Callable(i)
7-func call () = {
8- let asset = Issue("Asset", "", 1, 0, true, unit, 0)
9- let assetId = calculateAssetId(asset)
10-[BinaryEntry("bin", base58''), BooleanEntry("bool", true), IntegerEntry("int", 1), StringEntry("str", ""), DeleteEntry("str"), asset, Reissue(assetId, 1, false), Burn(assetId, 1), ScriptTransfer(i.caller, 1, assetId)]
107+func init (stakerAddress) = [writeConstString(staker, stakerAddress), writeConstString(admin, toBase58String(this.bytes))]
108+
109+
110+
111+@Callable(i)
112+func getAssetIdByTicker (AssetTicker) = {
113+ let run = invoke(addressFromStringValue(getSV("staker")), "_getAssetIdByTicker", [AssetTicker], nil)
114+ if ((run == run))
115+ then nil
116+ else throw("Strict value is not equal to itself.")
11117 }
12118
13-
14-@Verifier(tx)
15-func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
16119

github/deemru/w8io/c3f4982 
21.79 ms