tx · DqVoz49SV6DEVwfvJQWz2jtXTXCTDkLKeWQLMqxRXHbz

3MxVdvDL4s4dEkYw1XCyGAj1Y7V9X2JWLck:  -0.01400000 Waves

2022.09.05 14:19 [2215750] smart account 3MxVdvDL4s4dEkYw1XCyGAj1Y7V9X2JWLck > SELF 0.00000000 Waves

{ "type": 13, "id": "DqVoz49SV6DEVwfvJQWz2jtXTXCTDkLKeWQLMqxRXHbz", "fee": 1400000, "feeAssetId": null, "timestamp": 1662376768120, "version": 2, "chainId": 84, "sender": "3MxVdvDL4s4dEkYw1XCyGAj1Y7V9X2JWLck", "senderPublicKey": "3CWmd5VB2UepRqtK3SWsRvokaMBCsjjDmPp7xT5okuJJ", "proofs": [ "3ysN3csKfsCHQWK8RdFsLYu9EkwKk3tX2GFhFPewhpZKro4fHiDCDwXWG5ksbJDZTwxCRcNKwr3Z9nmGFicM4NdL" ], "script": "base64:AAIFAAAAAAAAADQIAhIDCgEIEgMKAQgSCAoGCAEEAQEBEgMKAQQSABIAEgASAwoBCBIGCgQICAEBEgQKAggIAAAAJAAAAAALa2V5TUFjY1BLZXkCAAAACW1hc3Rlcl9wawAAAAANa2V5QmFja3VwUEtleQIAAAAHYmFja19wawAAAAAId2Fyc1BLZXkCAAAAB3dhcnNfcGsBAAAABmdldFN0cgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAgAAAAAAAAAADm1BY2NQS2V5U3RyaW5nCQEAAAAGZ2V0U3RyAAAAAQUAAAALa2V5TUFjY1BLZXkAAAAAEGJhY2t1cFBLZXlTdHJpbmcJAQAAAAZnZXRTdHIAAAABBQAAAA1rZXlCYWNrdXBQS2V5AQAAAAxnZXRCYWNrdXBLZXkAAAAAAwkAAAAAAAACBQAAABBiYWNrdXBQS2V5U3RyaW5nAgAAAAAIBQAAAAR0aGlzAAAABWJ5dGVzCQACWQAAAAEFAAAAEGJhY2t1cFBLZXlTdHJpbmcAAAAACG1BY2NQS2V5CQACWQAAAAEFAAAADm1BY2NQS2V5U3RyaW5nAAAAAAhtQWNjQWRkcgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAIbUFjY1BLZXkAAAAACmZlZVBlcmNlbnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACG1BY2NBZGRyCQABLAAAAAIJAAEsAAAAAgIAAAACZl8JAAQlAAAAAQUAAAAEdGhpcwIAAAAEX2ZlZQAAAAAOc3Rha2luZ0FkZHJlc3MJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAhtQWNjQWRkcgkAASwAAAACCQABLAAAAAICAAAAAmZfCQAEJQAAAAEFAAAABHRoaXMCAAAADl9zdGFrZV9hZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAACZl8JAAQlAAAAAQUAAAAEdGhpcwIAAAAaX3N0YWtlX2FkZHJlc3Mgbm90IGRlZmluZWQAAAAACHdBY2NQS2V5CQACWQAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAhtQWNjQWRkcgUAAAAId2Fyc1BLZXkJAAEsAAAAAgUAAAAId2Fyc1BLZXkCAAAADCBub3QgZGVmaW5lZAAAAAAPa1RvdGFsTGlxdWlkaXR5AgAAAA90b3RhbF9saXF1aWRpdHkAAAAADGtJbml0aWFsaXplZAIAAAALSU5JVElBTElaRUQAAAAAE2tMaXF1aWRpdHlUaHJlc2hvbGQCAAAAE0xJUVVJRElUWV9USFJFU0hPTEQAAAAAE2tUb3RhbEZhcm1pbmdSZXdhcmQCAAAAFHRvdGFsX2Zhcm1pbmdfcmV3YXJkAAAAAA1rU2hhcmVBc3NldElkAgAAAA5TSEFSRV9BU1NFVF9JRAAAAAAOa0luY3ViYXRvckRhcHACAAAADklOQ1VCQVRPUl9EQVBQAAAAAAxrQnJlZWRlckRhcHACAAAADEJSRUVERVJfREFQUAAAAAAMa0Zhcm1pbmdEYXBwAgAAAAxGQVJNSU5HX0RBUFAAAAAAEGtNYXJrZXRQcm94eURhcHACAAAAFk1BUktFVFBMQUNFX1BST1hZX0RBUFAAAAAADGtBdWN0aW9uRGFwcAIAAAAMQVVDVElPTl9EQVBQAAAAAAdrTG9ja2VkAgAAAAZMT0NLRUQAAAAAEGtDZW9Db2xsZWN0ZWRGZWUCAAAAEWNlb19jb2xsZWN0ZWRfZmVlAAAAABdrQ2VvQ29sbGVjdGVkRmVlT3ZlcmFsbAIAAAAPY2VvX2ZlZV9vdmVyYWxsAAAAABJrTG9ja2VkSW52ZXN0bWVudHMCAAAAEmxvY2tlZF9pbnZlc3RtZW50cwAAAAAQa2V5VG90YWxDb21wb3VuZAIAAAAOdG90YWxfY29tcG91bmQAAAAAD2tleUdsb2JhbFN0YWtlZAIAAAANZ2xvYmFsX3N0YWtlZAEAAAAGZ2V0SW50AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAAB2dldEJvb2wAAAAB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AAAADHNoYXJlQXNzZXRJZAkBAAAAD2dldFNoYXJlQXNzZXRJZAAAAAAEAAAAEmZhcm1pbmdEYXBwQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAB2dldFN0ckEAAAACBQAAAAhtQWNjQWRkcgIAAAAMRkFSTUlOR19EQVBQBAAAAA51bnN0YWtlZFJld2FyZAkAA/wAAAAEBQAAABJmYXJtaW5nRGFwcEFkZHJlc3MFAAAACGZ1bmN0aW9uCQAETAAAAAIFAAAAB2Fzc2V0SWQFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAA51bnN0YWtlZFJld2FyZAUAAAAOdW5zdGFrZWRSZXdhcmQEAAAABnJld2FyZAQAAAAHJG1hdGNoMAUAAAAOdW5zdGFrZWRSZXdhcmQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADaW50BQAAAAckbWF0Y2gwBQAAAANpbnQJAAACAAAAAQIAAAAWRXJyb3IgZHVyaW5nIHVuc3Rha2luZwQAAAANY3VycmVudENlb0ZlZQkBAAAABmdldEludAAAAAEFAAAAEGtDZW9Db2xsZWN0ZWRGZWUEAAAADWNlb0ZlZU92ZXJhbGwJAQAAAAZnZXRJbnQAAAABBQAAABdrQ2VvQ29sbGVjdGVkRmVlT3ZlcmFsbAQAAAAOZmFybUNlb0ZlZVNpemUJAABrAAAAAwUAAAAGcmV3YXJkBQAAAApmZWVQZXJjZW50AAAAAAAAAABkBAAAAAthbW91bnRUb1BheQkAAGUAAAACBQAAAAZyZXdhcmQFAAAADmZhcm1DZW9GZWVTaXplBAAAAAV0b3BVcAkAA/wAAAAEBQAAAA5zdGFraW5nQWRkcmVzcwIAAAALdG9wVXBSZXdhcmQFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAKZWdnQXNzZXRJZAUAAAALYW1vdW50VG9QYXkFAAAAA25pbAMJAAAAAAAAAgUAAAAFdG9wVXAFAAAABXRvcFVwCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABBrQ2VvQ29sbGVjdGVkRmVlCQAAZAAAAAIFAAAADWN1cnJlbnRDZW9GZWUFAAAADmZhcm1D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", "height": 2215750, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let keyMAccPKey = "master_pk"
5+
6+let keyBackupPKey = "back_pk"
7+
8+let warsPKey = "wars_pk"
9+
10+func getStr (key) = match getString(this, key) {
11+ case b: String =>
12+ b
13+ case _ =>
14+ ""
15+}
16+
17+
18+let mAccPKeyString = getStr(keyMAccPKey)
19+
20+let backupPKeyString = getStr(keyBackupPKey)
21+
22+func getBackupKey () = if ((backupPKeyString == ""))
23+ then this.bytes
24+ else fromBase58String(backupPKeyString)
25+
26+
27+let mAccPKey = fromBase58String(mAccPKeyString)
28+
29+let mAccAddr = addressFromPublicKey(mAccPKey)
30+
31+let feePercent = getIntegerValue(mAccAddr, (("f_" + toString(this)) + "_fee"))
32+
33+let stakingAddress = addressFromStringValue(valueOrErrorMessage(getString(mAccAddr, (("f_" + toString(this)) + "_stake_address")), (("f_" + toString(this)) + "_stake_address not defined")))
34+
35+let wAccPKey = fromBase58String(valueOrErrorMessage(getString(mAccAddr, warsPKey), (warsPKey + " not defined")))
36+
37+let kTotalLiquidity = "total_liquidity"
38+
39+let kInitialized = "INITIALIZED"
40+
41+let kLiquidityThreshold = "LIQUIDITY_THRESHOLD"
42+
43+let kTotalFarmingReward = "total_farming_reward"
44+
45+let kShareAssetId = "SHARE_ASSET_ID"
46+
47+let kIncubatorDapp = "INCUBATOR_DAPP"
48+
49+let kBreederDapp = "BREEDER_DAPP"
50+
51+let kFarmingDapp = "FARMING_DAPP"
52+
53+let kMarketProxyDapp = "MARKETPLACE_PROXY_DAPP"
54+
55+let kAuctionDapp = "AUCTION_DAPP"
56+
57+let kLocked = "LOCKED"
58+
59+let kCeoCollectedFee = "ceo_collected_fee"
60+
61+let kCeoCollectedFeeOverall = "ceo_fee_overall"
62+
63+let kLockedInvestments = "locked_investments"
64+
65+let keyTotalCompound = "total_compound"
66+
67+let keyGlobalStaked = "global_staked"
68+
69+func getInt (key) = match getInteger(this, key) {
70+ case b: Int =>
71+ b
72+ case _ =>
73+ 0
74+}
75+
76+
77+func getBool (key) = match getBoolean(this, key) {
78+ case b: Boolean =>
79+ b
80+ case _ =>
81+ unit
82+}
83+
84+
85+func getStrA (a,k) = match getString(a, k) {
86+ case b: String =>
87+ b
88+ case _ =>
89+ ""
90+}
91+
92+
93+func getIntA (address,key) = match getInteger(address, key) {
94+ case b: Int =>
95+ b
96+ case _ =>
97+ 0
98+}
99+
100+
101+func getMarketProxyAddr () = getStrA(mAccAddr, kMarketProxyDapp)
102+
103+
104+func getEggId () = fromBase58String(getStringValue(mAccAddr, "EGG_ASSET_ID"))
105+
106+
107+func getShareAssetId () = fromBase58String(getStr(kShareAssetId))
108+
109+
110+func asInt (value) = match value {
111+ case int: Int =>
112+ int
113+ case _ =>
114+ throw("wrong type, expected: Int")
115+}
116+
117+
118+@Callable(i)
119+func initMasterKey (publicKey) = if ((i.caller != this))
120+ then throw("You cannot do this action")
121+ else if ((mAccPKeyString != ""))
122+ then throw("Master public key already set, you can't override!")
123+ else [StringEntry(keyMAccPKey, publicKey)]
124+
125+
126+
127+@Callable(i)
128+func initBackupKey (publicKey) = if ((i.caller != addressFromPublicKey(mAccPKey)))
129+ then throw("You cannot do this action")
130+ else [StringEntry(keyBackupPKey, publicKey)]
131+
132+
133+
134+@Callable(i)
135+func initCollectiveFarm (name,minimumThreshold,migration,totalFarmingReward,totalLiquidity,totalFarmToken) = if ((mAccPKeyString == ""))
136+ then throw("First initiatie a master public key!")
137+ else if ((i.callerPublicKey != mAccPKey))
138+ then throw("_1")
139+ else if ((getBool(kInitialized) != unit))
140+ then throw("_2")
141+ else if (if ((migration == false))
142+ then if ((i.payments[0].amount != 10000000))
143+ then true
144+ else (i.payments[0].assetId != getEggId())
145+ else false)
146+ then throw("_20")
147+ else {
148+ let shareTokens = if (migration)
149+ then totalFarmToken
150+ else 10000000
151+ let shareToken = Issue(name, (("Team token for the \"" + name) + "\" collective farm"), shareTokens, 8, true)
152+ let totLiquidity = if (migration)
153+ then totalLiquidity
154+ else 10000000
155+ let totFarmingReward = if (migration)
156+ then [IntegerEntry(kTotalFarmingReward, totalFarmingReward)]
157+ else nil
158+ ([StringEntry(kShareAssetId, toBase58String(calculateAssetId(shareToken))), BooleanEntry(kInitialized, true), IntegerEntry(kTotalLiquidity, totLiquidity), shareToken, ScriptTransfer(i.caller, shareTokens, calculateAssetId(shareToken)), BooleanEntry(kLocked, false), IntegerEntry(kLiquidityThreshold, minimumThreshold)] ++ totFarmingReward)
159+ }
160+
161+
162+
163+@Callable(i)
164+func setLock (s) = if ((i.callerPublicKey != mAccPKey))
165+ then throw("_21")
166+ else [BooleanEntry(kLocked, s)]
167+
168+
169+
170+@Callable(i)
171+func lockInvestments () = if ((i.caller != this))
172+ then throw("You cannot lock this contract")
173+ else [BooleanEntry(kLockedInvestments, true)]
174+
175+
176+
177+@Callable(i)
178+func unlockInvestments () = if ((i.caller != this))
179+ then throw("You cannot lock this contract")
180+ else [BooleanEntry(kLockedInvestments, false)]
181+
182+
183+
184+@Callable(i)
185+func provideLiquidity () = {
186+ let eggAssetId = getEggId()
187+ if (if (if ((i.callerPublicKey != wAccPKey))
188+ then (i.callerPublicKey != mAccPKey)
189+ else false)
190+ then (getBool(kLockedInvestments) == true)
191+ else false)
192+ then throw("Contract is locked for investments by it's CEO. Please invest in another collective farm.")
193+ else if ((getBool(kLocked) == true))
194+ then throw("_22")
195+ else if ((i.payments[0].assetId != eggAssetId))
196+ then throw("_4")
197+ else if ((1000000 > i.payments[0].amount))
198+ then throw("Min amount to invest is 0.01 EGG")
199+ else {
200+ let totalLiquidity = getInt(kTotalLiquidity)
201+ let shareTokensToGive = i.payments[0].amount
202+ let shareTokensId = fromBase58String(getStr(kShareAssetId))
203+ let reissue = Reissue(getShareAssetId(), shareTokensToGive, true)
204+ let kParticipated = (("account_" + toString(i.caller)) + "_participated")
205+ let alreadyParticipated = getBool(kParticipated)
206+ $Tuple2([reissue, ScriptTransfer(i.caller, shareTokensToGive, shareTokensId), IntegerEntry(kTotalLiquidity, (totalLiquidity + value(i.payments[0].amount))), BooleanEntry(kParticipated, true)], shareTokensToGive)
207+ }
208+ }
209+
210+
211+
212+@Callable(i)
213+func claimFarmingRewardProxy (ids) = if ((i.callerPublicKey != mAccPKey))
214+ then throw("_23")
215+ else {
216+ let eggAssetId = getEggId()
217+ let shareAssetId = getShareAssetId()
218+ let farmingDapp = addressFromStringValue(getStrA(mAccAddr, kFarmingDapp))
219+ func claimReward (accum,nftId) = {
220+ let invRes = invoke(farmingDapp, "claimReward", [nftId], nil)
221+ if ((invRes == invRes))
222+ then match invRes {
223+ case int: Int =>
224+ (accum + int)
225+ case _ =>
226+ throw("_5")
227+ }
228+ else throw("Strict value is not equal to itself.")
229+ }
230+
231+ let nftIds = split(ids, ";")
232+ let foldResult = {
233+ let $l = nftIds
234+ let $s = size($l)
235+ let $acc0 = 0
236+ func $f0_1 ($a,$i) = if (($i >= $s))
237+ then $a
238+ else claimReward($a, $l[$i])
239+
240+ func $f0_2 ($a,$i) = if (($i >= $s))
241+ then $a
242+ else throw("List size exceeds 10")
243+
244+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
245+ }
246+ let claimedReward = match foldResult {
247+ case int: Int =>
248+ int
249+ case _ =>
250+ throw("_6")
251+ }
252+ let totalFarmingReward = getInt(kTotalFarmingReward)
253+ let farmCeoFeeSize = fraction(claimedReward, feePercent, 100)
254+ let currentCeoFee = getInt(kCeoCollectedFee)
255+ let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
256+ let amountToPay = (claimedReward - farmCeoFeeSize)
257+ let topUp = invoke(stakingAddress, "topUpReward", nil, [AttachedPayment(eggAssetId, amountToPay)])
258+ if ((topUp == topUp))
259+ then [IntegerEntry(kTotalFarmingReward, (totalFarmingReward + amountToPay)), IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize))]
260+ else throw("Strict value is not equal to itself.")
261+ }
262+
263+
264+
265+@Callable(i)
266+func claimCeoFee (address1,address2,address1Share,address2Share) = if ((0 > address1Share))
267+ then throw("Share 1 can't be negative")
268+ else if ((0 > address2Share))
269+ then throw("Share 2 can't be negative")
270+ else if (((address1Share + address2Share) != 100))
271+ then throw("Sum of shares should be 100")
272+ else if ((getBool(kLocked) == true))
273+ then throw("_22")
274+ else if ((i.caller == this))
275+ then {
276+ let currentCeoCollectedFee = getInt(kCeoCollectedFee)
277+ let address1Reward = if ((address2 == ""))
278+ then currentCeoCollectedFee
279+ else fraction(currentCeoCollectedFee, address1Share, 100)
280+ let address2Reward = if ((address2 == ""))
281+ then 0
282+ else fraction(currentCeoCollectedFee, address2Share, 100)
283+ let scriptTransferAddress2 = if ((address2 == ""))
284+ then nil
285+ else [ScriptTransfer(addressFromStringValue(address2), address2Reward, getEggId())]
286+ (scriptTransferAddress2 ++ [ScriptTransfer(addressFromStringValue(address1), address1Reward, getEggId()), IntegerEntry(kCeoCollectedFee, 0)])
287+ }
288+ else throw("Only manager can call the contract")
289+
290+
291+
292+@Callable(i)
293+func callUnstakeProxy (function,assetId) = if ((getBool(kLocked) == true))
294+ then throw("Contract is locked now")
295+ else if (if ((function != "unstakeNFT"))
296+ then (function != "unstakeJackpot")
297+ else false)
298+ then throw("Bad function name")
299+ else if ((i.caller != this))
300+ then throw("Can be called only by the account")
301+ else {
302+ let eggAssetId = getEggId()
303+ let shareAssetId = getShareAssetId()
304+ let farmingDappAddress = addressFromStringValue(getStrA(mAccAddr, "FARMING_DAPP"))
305+ let unstakedReward = invoke(farmingDappAddress, function, [assetId], nil)
306+ if ((unstakedReward == unstakedReward))
307+ then {
308+ let reward = match unstakedReward {
309+ case int: Int =>
310+ int
311+ case _ =>
312+ throw("Error during unstaking")
313+ }
314+ let currentCeoFee = getInt(kCeoCollectedFee)
315+ let ceoFeeOverall = getInt(kCeoCollectedFeeOverall)
316+ let farmCeoFeeSize = fraction(reward, feePercent, 100)
317+ let amountToPay = (reward - farmCeoFeeSize)
318+ let topUp = invoke(stakingAddress, "topUpReward", nil, [AttachedPayment(eggAssetId, amountToPay)])
319+ if ((topUp == topUp))
320+ then [IntegerEntry(kCeoCollectedFee, (currentCeoFee + farmCeoFeeSize)), IntegerEntry(kCeoCollectedFeeOverall, (ceoFeeOverall + farmCeoFeeSize))]
321+ else throw("Strict value is not equal to itself.")
322+ }
323+ else throw("Strict value is not equal to itself.")
324+ }
325+
326+
327+@Verifier(tx)
328+func verify () = {
329+ let checkStarted = (getInt(kTotalLiquidity) >= getInt(kLiquidityThreshold))
330+ match tx {
331+ case inv: InvokeScriptTransaction =>
332+ let acceptedCallsStaking = ["stakeFarmTokens", "claimReward", "withdrawFarmTokens"]
333+ let acceptedCallsThis = ["callUnstakeProxy", "claimCeoFee", "lockInvestments", "unlockInvestments"]
334+ if (if ((inv.function == "unstakeNFT"))
335+ then true
336+ else (inv.function == "unstakeJackpot"))
337+ then throw("You cannot call these functions directly")
338+ else if (if (if ((addressFromRecipient(inv.dApp) == this))
339+ then (inv.function == "initMasterKey")
340+ else false)
341+ then (mAccPKeyString == "")
342+ else false)
343+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
344+ then true
345+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
346+ else if (if ((sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) == false))
347+ then (sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey()) == false)
348+ else false)
349+ then throw("_100")
350+ else if ((checkStarted == false))
351+ then throw("_14")
352+ else if ((getBool(kLocked) == true))
353+ then throw("_22")
354+ else if (if ((inv.fee > 900000))
355+ then true
356+ else (inv.feeAssetId != unit))
357+ then throw("_15")
358+ else if ((size(inv.payments) > 2))
359+ then throw("_17")
360+ else if (if ((addressFromRecipient(inv.dApp) == this))
361+ then containsElement(acceptedCallsThis, inv.function)
362+ else false)
363+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
364+ then true
365+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
366+ else if (if ((addressFromRecipient(inv.dApp) == addressFromStringValue(getMarketProxyAddr())))
367+ then (inv.function == "callMarketplaceProxy")
368+ else false)
369+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
370+ then true
371+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
372+ else if (if ((addressFromRecipient(inv.dApp) == stakingAddress))
373+ then containsElement(acceptedCallsStaking, inv.function)
374+ else false)
375+ then if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
376+ then true
377+ else sigVerify(tx.bodyBytes, tx.proofs[0], getBackupKey())
378+ else {
379+ let allowedContracts = getStrA(mAccAddr, "allowed_contracts")
380+ let allowedContractsList = split(allowedContracts, ";")
381+ let dappToCall = toString(addressFromRecipient(inv.dApp))
382+ (indexOf(allowedContractsList, dappToCall) != unit)
383+ }
384+ case ss: SetScriptTransaction =>
385+ sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
386+ case mt: MassTransferTransaction =>
387+ sigVerify(tx.bodyBytes, tx.proofs[0], mAccPKey)
388+ case _ =>
389+ false
390+ }
391+ }
392+

github/deemru/w8io/026f985 
30.07 ms