tx · GppojEQNZwoerhApmhxUekxdHpzmgoq4P3ynuyyVn8jr

3N4UhavKsWv4dPmmhtaYT573ALxuvsAp6M4:  -0.05000000 Waves

2022.06.07 01:07 [2085072] smart account 3N4UhavKsWv4dPmmhtaYT573ALxuvsAp6M4 > SELF 0.00000000 Waves

{ "type": 13, "id": "GppojEQNZwoerhApmhxUekxdHpzmgoq4P3ynuyyVn8jr", "fee": 5000000, "feeAssetId": null, "timestamp": 1654553226276, "version": 2, "chainId": 84, "sender": "3N4UhavKsWv4dPmmhtaYT573ALxuvsAp6M4", "senderPublicKey": "5nJ4v4Wx6sdXhiDZNrpW7m1aSDsTgTgFJVBgmPMPtbUM", "proofs": [ "3B7yAcEFaFw5CbH4YqDqThUynp83MLyVHa8tm4U2YfsKu9WYPVTdEpmdSDZYQEyuzRrL69HsiBhMTdpJhyeaekiz" ], "script": "base64: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", "height": 2085072, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 32FJDu9NSLhXDAKd38oVAr5gnxBUvrxpnindoexU5gJb Next: BdqtMbDCNtdJcdzZWkxnE5Nb9BAACt7T7o5g3u9JZYqf Diff:
OldNewDifferences
44 let staker = "staker"
55
66 let admin = "admin_"
7+
8+let assetIdCall = "Asset ID"
79
810 func getI (key) = getInteger(this, key)
911
9597 }
9698
9799
98-func incrementEntryIndex (key) = {
99- let uIndex = getI(key)
100- if (isDefined(uIndex))
101- then (value(uIndex) + 1)
102- else 0
103- }
104-
105-
106100 @Callable(i)
107101 func init (stakerAddress) = [writeConstString(staker, stakerAddress), writeConstString(admin, toBase58String(this.bytes))]
108102
110104
111105 @Callable(i)
112106 func getAssetIdByTicker (AssetTicker) = {
113- let run = invoke(addressFromStringValue(getSV("staker")), "_getAssetIdByTicker", [AssetTicker], nil)
114- if ((run == run))
115- then nil
107+ let checks = adminOnly(i)
108+ if ((checks == checks))
109+ then {
110+ let stakerAddress = toBytes(getSV("staker"))
111+ let run = invoke(Address(stakerAddress), "_getAssetIdByTicker", [AssetTicker], nil)
112+ match run {
113+ case a: String =>
114+[StringEntry(assetIdCall, a)]
115+ case _ =>
116+ nil
117+ }
118+ }
116119 else throw("Strict value is not equal to itself.")
117120 }
118121
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let staker = "staker"
55
66 let admin = "admin_"
7+
8+let assetIdCall = "Asset ID"
79
810 func getI (key) = getInteger(this, key)
911
1012
1113 func getS (key) = getString(this, key)
1214
1315
1416 func getIV (key) = value(getInteger(this, key))
1517
1618
1719 func getSV (key) = value(getString(this, key))
1820
1921
2022 func throwIf (condition,error) = if (condition)
2123 then throw(error)
2224 else true
2325
2426
2527 let thirtyDaysLockPeriod = 30
2628
2729 let sixtyDaysLockPeriod = 60
2830
2931 let ninetyDaysLockPeriod = 90
3032
3133 func throwOrReturnI (val,error) = match val {
3234 case val: Int =>
3335 val
3436 case _ =>
3537 throw(error)
3638 }
3739
3840
3941 func throwOrReturnS (val,error) = match val {
4042 case val: String =>
4143 val
4244 case _ =>
4345 throw(error)
4446 }
4547
4648
4749 func writeInt (key,value) = if ((0 > value))
4850 then throw(((("writing negative value " + toString(value)) + " for key ") + key))
4951 else IntegerEntry(key, value)
5052
5153
5254 func writeStr (key,value) = if ((" " == value))
5355 then throw(("writing an empty string " + value))
5456 else StringEntry(key, value)
5557
5658
5759 func writeConstString (key,value) = if (!(isDefined(getS(key))))
5860 then writeStr(key, value)
5961 else throw(("already initialized: " + key))
6062
6163
6264 func writeConstInteger (key,value) = if (!(isDefined(getS(key))))
6365 then writeInt(key, value)
6466 else throw(("already initialized: " + key))
6567
6668
6769 func adminOnly (i) = {
6870 let inputAddress = toBase58String(i.caller.bytes)
6971 let otherAdmin = (admin + inputAddress)
7072 match getS(admin) {
7173 case a: String =>
7274 if ((inputAddress != getS(admin)))
7375 then throw("unauthorized")
7476 else true
7577 case _ =>
7678 match getS(otherAdmin) {
7779 case b: String =>
7880 if ((inputAddress != getS(otherAdmin)))
7981 then throw("unauthorized")
8082 else true
8183 case _ =>
8284 throw("unauthorizd")
8385 }
8486 }
8587 }
8688
8789
8890 func writeConfigValue (key,data) = match data {
8991 case data: String =>
9092 writeConstString(key, data)
9193 case data: Int =>
9294 writeConstInteger(key, data)
9395 case _ =>
9496 throw("unsupported config type")
9597 }
9698
9799
98-func incrementEntryIndex (key) = {
99- let uIndex = getI(key)
100- if (isDefined(uIndex))
101- then (value(uIndex) + 1)
102- else 0
103- }
104-
105-
106100 @Callable(i)
107101 func init (stakerAddress) = [writeConstString(staker, stakerAddress), writeConstString(admin, toBase58String(this.bytes))]
108102
109103
110104
111105 @Callable(i)
112106 func getAssetIdByTicker (AssetTicker) = {
113- let run = invoke(addressFromStringValue(getSV("staker")), "_getAssetIdByTicker", [AssetTicker], nil)
114- if ((run == run))
115- then nil
107+ let checks = adminOnly(i)
108+ if ((checks == checks))
109+ then {
110+ let stakerAddress = toBytes(getSV("staker"))
111+ let run = invoke(Address(stakerAddress), "_getAssetIdByTicker", [AssetTicker], nil)
112+ match run {
113+ case a: String =>
114+[StringEntry(assetIdCall, a)]
115+ case _ =>
116+ nil
117+ }
118+ }
116119 else throw("Strict value is not equal to itself.")
117120 }
118121
119122

github/deemru/w8io/169f3d6 
33.53 ms