tx · Cbv5Xs8XHPw8UUVSKGqxyxdSepQosWmq2SkBZvABh8Ji

3MyDGEoKp1gF4LSRknk9vSuDEyrwuYXcQEQ:  -0.01000000 Waves

2022.05.12 12:02 [2048256] smart account 3MyDGEoKp1gF4LSRknk9vSuDEyrwuYXcQEQ > SELF 0.00000000 Waves

{ "type": 13, "id": "Cbv5Xs8XHPw8UUVSKGqxyxdSepQosWmq2SkBZvABh8Ji", "fee": 1000000, "feeAssetId": null, "timestamp": 1652346147294, "version": 2, "chainId": 84, "sender": "3MyDGEoKp1gF4LSRknk9vSuDEyrwuYXcQEQ", "senderPublicKey": "BhRnrwd6wVHSkSaWXCjQRjaoXcpCdUW2hkJD6V7uVDxN", "proofs": [ "EZKwrvPX8ffmPvP6EbecequyphEZi2EbnYWnLTVnDCWe4LEZ1ynY68srG3BfffRks7xem6UUFKgJJXjr2N85oop" ], "script": "base64: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", "height": 2048256, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5A6T118BKsE1cgCirdCjgbpXvEQctyqoTynXcath5y4X Next: 3QxT7VHwoqyP44YtTufoHN4FY8kUrCLhsQa8k6WZ77ha Diff:
OldNewDifferences
88 let assetsAddress = base58'3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb'
99
1010 let nationsAddress = base58'3MvyzDtzWWV5MZ1GP8JfQhhQqiGU4Nbifdy'
11+
12+let marketplaceAddress = base58'3Mra7mjPipcQd5sJaRmXK8xgS4scb8gPF4A'
1113
1214 func tryGetInteger (key) = match getInteger(this, key) {
1315 case b: Int =>
5355 func internalTransfer (fromAddress,toAddress,amount) = (internalPay(fromAddress, amount) ++ internalDeposit(toAddress, amount))
5456
5557
56-func checkAdmin (caller) = if (if (if ((caller == adminAddress))
58+func checkAdmin (caller) = if (if (if (if ((caller == adminAddress))
5759 then true
5860 else (caller == this))
5961 then true
6062 else (caller.bytes == nationsAddress))
6163 then true
62- else (caller.bytes == assetsAddress)
64+ else (caller.bytes == assetsAddress))
65+ then true
66+ else (caller.bytes == marketplaceAddress)
6367
6468
6569 @Callable(i)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let shinywggid = base58'AFQS5E4ELtxex3iANtWtUU2V2oWJZSo8VVnK8z3VFmqf'
55
66 let adminAddress = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
77
88 let assetsAddress = base58'3N8WDKbqGox5Eky326PHHT7rUyrby5MXdmb'
99
1010 let nationsAddress = base58'3MvyzDtzWWV5MZ1GP8JfQhhQqiGU4Nbifdy'
11+
12+let marketplaceAddress = base58'3Mra7mjPipcQd5sJaRmXK8xgS4scb8gPF4A'
1113
1214 func tryGetInteger (key) = match getInteger(this, key) {
1315 case b: Int =>
1416 b
1517 case _ =>
1618 0
1719 }
1820
1921
2022 func tryGetBoolean (key) = match getBoolean(this, key) {
2123 case b: Boolean =>
2224 b
2325 case _ =>
2426 false
2527 }
2628
2729
2830 func getTreasuryKey (nationid) = (nationid + "_Treasury")
2931
3032
3133 func internalDeposit (addressStr,amountIn) = {
3234 let amount = tryGetInteger((addressStr + "_Deposit"))
3335 [IntegerEntry((addressStr + "_Deposit"), (amount + amountIn))]
3436 }
3537
3638
3739 func internalPay (addressStr,amount) = {
3840 let deposited = tryGetInteger((addressStr + "_Deposit"))
3941 if ((0 > (deposited - amount)))
4042 then throw("Not enough deposit.")
4143 else if (((deposited - amount) == 0))
4244 then [DeleteEntry((addressStr + "_Deposit"))]
4345 else [IntegerEntry((addressStr + "_Deposit"), (deposited - amount))]
4446 }
4547
4648
4749 func internalReserve (addressStr,amount) = {
4850 let reservedAmount = tryGetInteger((addressStr + "_Reserved"))
4951 [IntegerEntry((addressStr + "_Reserved"), (reservedAmount + amount))]
5052 }
5153
5254
5355 func internalTransfer (fromAddress,toAddress,amount) = (internalPay(fromAddress, amount) ++ internalDeposit(toAddress, amount))
5456
5557
56-func checkAdmin (caller) = if (if (if ((caller == adminAddress))
58+func checkAdmin (caller) = if (if (if (if ((caller == adminAddress))
5759 then true
5860 else (caller == this))
5961 then true
6062 else (caller.bytes == nationsAddress))
6163 then true
62- else (caller.bytes == assetsAddress)
64+ else (caller.bytes == assetsAddress))
65+ then true
66+ else (caller.bytes == marketplaceAddress)
6367
6468
6569 @Callable(i)
6670 func Deposit () = {
6771 let addressStr = toString(i.originCaller)
6872 let pmt = i.payments[0]
6973 if ((pmt == pmt))
7074 then {
7175 let amountIn = value(i.payments[0].amount)
7276 if ((amountIn == amountIn))
7377 then {
7478 let assetIn = pmt.assetId
7579 if ((assetIn == assetIn))
7680 then if ((assetIn != shinywggid))
7781 then throw("Only $HEG payments allowed")
7882 else {
7983 let amount = tryGetInteger((addressStr + "_Deposit"))
8084 $Tuple2(internalDeposit(addressStr, (amount + amountIn)), (amount + amountIn))
8185 }
8286 else throw("Strict value is not equal to itself.")
8387 }
8488 else throw("Strict value is not equal to itself.")
8589 }
8690 else throw("Strict value is not equal to itself.")
8791 }
8892
8993
9094
9195 @Callable(i)
9296 func Pay (addressStr,amount) = if (!(checkAdmin(i.caller)))
9397 then throw("you are not authorized to perform this operation")
9498 else $Tuple2(internalPay(addressStr, amount), amount)
9599
96100
97101
98102 @Callable(i)
99103 func CallerPay (amount) = {
100104 let callerAddr = toString(i.caller)
101105 internalPay(callerAddr, amount)
102106 }
103107
104108
105109
106110 @Callable(i)
107111 func transferCoins (fromAddress,toAddress,amount) = if (if ((i.caller != adminAddress))
108112 then (i.caller.bytes != assetsAddress)
109113 else false)
110114 then throw("you are not authorized to perform this operation")
111115 else $Tuple2(internalTransfer(fromAddress, toAddress, amount), amount)
112116
113117
114118
115119 @Callable(i)
116120 func callerTransferCoins (toAddress,amount) = internalTransfer(toString(i.caller), toAddress, amount)
117121
118122
119123
120124 @Callable(i)
121125 func arbitraryAddCoins (toAddress,amount) = if (if (if ((i.caller != adminAddress))
122126 then (i.caller.bytes != assetsAddress)
123127 else false)
124128 then (i.caller.bytes != nationsAddress)
125129 else false)
126130 then throw("you are not authorized to perform this operation")
127131 else $Tuple2(internalDeposit(toAddress, amount), amount)
128132
129133
130134
131135 @Callable(i)
132136 func Redeem () = {
133137 let addressStr = toString(i.caller)
134138 let reservedAmount = tryGetInteger((addressStr + "_Reserved"))
135139 if ((reservedAmount == 0))
136140 then throw("Nothing to redeem")
137141 else [DeleteEntry((addressStr + "_Reserved")), ScriptTransfer(i.caller, reservedAmount, shinywggid)]
138142 }
139143
140144
141145
142146 @Callable(i)
143147 func addReward (addressStr,amount) = if (!(checkAdmin(i.caller)))
144148 then throw("you are not authorized to perform this operation")
145149 else {
146150 let reservedAmount = tryGetInteger((addressStr + "_Reserved"))
147151 $Tuple2([IntegerEntry((addressStr + "_Reserved"), (reservedAmount + amount))], (reservedAmount + amount))
148152 }
149153
150154
151155
152156 @Callable(i)
153157 func increaseNationWallet (NationKey,amount) = if (!(checkAdmin(i.caller)))
154158 then throw("you are not authorized to perform this operation")
155159 else {
156160 let key = getTreasuryKey(NationKey)
157161 let reservedAmount = tryGetInteger(key)
158162 $Tuple2([IntegerEntry(key, (reservedAmount + amount))], (reservedAmount + amount))
159163 }
160164
161165
162166
163167 @Callable(i)
164168 func decreaseNationWallet (NationKey,amount) = if (!(checkAdmin(i.caller)))
165169 then throw("you are not authorized to perform this operation")
166170 else {
167171 let key = getTreasuryKey(NationKey)
168172 let reservedAmount = tryGetInteger(key)
169173 $Tuple2([IntegerEntry(key, (reservedAmount - amount))], amount)
170174 }
171175
172176

github/deemru/w8io/169f3d6 
45.34 ms