tx · AjoPViQJjYU2gPkrDzGpAEr2xeeL7QhfbB2xmXgVDz39

3NC9wWawxuFG6a3sZdfckGwoMeVhLFjZFwH:  -0.01400000 Waves

2021.03.31 12:18 [1461753] smart account 3NC9wWawxuFG6a3sZdfckGwoMeVhLFjZFwH > SELF 0.00000000 Waves

{ "type": 13, "id": "AjoPViQJjYU2gPkrDzGpAEr2xeeL7QhfbB2xmXgVDz39", "fee": 1400000, "feeAssetId": null, "timestamp": 1617182347040, "version": 1, "sender": "3NC9wWawxuFG6a3sZdfckGwoMeVhLFjZFwH", "senderPublicKey": "HoEvP2nFKMAsffQ9PUyAm6auWisyHgusY9HxDeMASrzZ", "proofs": [ "3U11go97V6g48uZx9aZAs6SNjf7zTxheLrfsyVcTE6pKStEk8rr2d6AYFhbTGTW2dQ91pGXKQBr53BrTcsTqZHiy" ], "script": "base64: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Y2tzCQAETAAAAAIFAAAAFHRvcHVwTWF4TmVnYXRpdmVQYXJ0CQAETAAAAAIFAAAAE3RvcHVwTWFuYWdlckFkZHJlc3MJAARMAAAAAgUAAAATc3VibWl0TGltaXRzQmFzZU1heAkABEwAAAACBQAAABVzdWJtaXRMaW1pdHNCYXNlUmVzZXQJAARMAAAAAgUAAAAUc3VibWl0TGltaXRzU2hhcmVNYXgJAARMAAAAAgUAAAAWc3VibWl0TGltaXRzU2hhcmVSZXNldAkABEwAAAACBQAAAAxhZG1pbkFkZHJlc3MFAAAAA25pbAUAAAADU0VQAQAAAAxkYXRhQXNzZXRDZmcAAAANAAAADXNoYXJlQXNzZXRTdHIAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIAAAAWZGVjaW1hbHNNdWx0Qm90aEFzc2V0cwAAABFkZWNpbWFsc011bHRQcmljZQAAABBnZXREZWxheUluQmxvY2tzAAAAFXRvcHVwSW50ZXJ2YWxJbkJsb2NrcwAAABR0b3B1cE1heE5lZ2F0aXZlUGFydAAAABN0b3B1cE1hbmFnZXJBZGRyZXNzAAAAE3N1Ym1pdExpbWl0c0Jhc2VNYXgAAAAVc3VibWl0TGltaXRzQmFzZVJlc2V0AAAAFHN1Ym1pdExpbWl0c1NoYXJlTWF4AAAAFnN1Ym1pdExpbWl0c1NoYXJlUmVzZXQAAAAMYWRtaW5BZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAYJXMlZCVkJWQlZCVkJWQlcyVkJWQlZCVkCQAETAAAAAIFAAAADXNoYXJlQXNzZXRTdHIJAARMAAAAAgUAAAAUaW50ZXJuYWxCYXNlQXNzZXRTdHIJAARMAAAAAgkAAaQAAAABBQAAABZkZWNpbWFsc011bHRCb3RoQXNzZXRzCQAETAAAAAIJAAGkAAAAAQUAAAARZGVjaW1hbHNNdWx0UHJpY2UJAARMAAAAAgkAAaQAAAABBQAAABBnZXREZWxheUluQmxvY2tzCQAETAAAAAIJAAGkAAAAAQUAAAAVdG9wdXBJbnRlcnZhbEluQmxvY2tzCQAETAAAAAIJAAGkAAAAAQUAAAAUdG9wdXBNYXhOZWdhdGl2ZVBhcnQJAARMAAAAAgUAAAATdG9wdXBNYW5hZ2VyQWRkcmVzcwkABEwA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AAABBQAAAAR2MjEzBAAAAAR2MjE1CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAABHYyMTQAAAAAAAAAAAAEAAAABHYyMTYJAQAAAANmMjYAAAABBQAAAAR2MjEzBAAAAAR2MjE3CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAABHYyMTYAAAAAAAAAAAAEAAAABHYyMTgJAQAAAARmMTU4AAAABAUAAAAEdjIxMwUAAAAEdjIwNwUAAAAEdjIxMAUAAAAEdjIxMgkABR8AAAANCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAFcHJpY2UFAAAABHYyMTcJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABFkZWNpbWFsc011bHRQcmljZQUAAAAEdjIxMgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEGJhc2VBc3NldEJhbGFuY2UIBQAAAAR2MjE4AAAAAl8yCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAACLTEIBQAAAAR2MjE4AAAAAl8zCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATYmFzZUFzc2V0QmFsYW5jZVdDTwgFAAAABHYyMTgAAAACXzQJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAA1zaGFyZUVtaXNzaW9uCAUAAAAEdjIxOAAAAAJfNQkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGWN1cnJJdGVyVG90YWxJbkJhc2VBbW91bnQIBQAAAAR2MjE4AAAAAl82CQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAaY3Vyckl0ZXJUb3RhbEluU2hhcmVBbW91bnQIBQAAAAR2MjE4AAAAAl83CQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAYdG90YWxMb2NrZWRPdXRCYXNlQW1vdW50CAUAAAAEdjIxOAAAAAJfOAkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGXRvdGFsTG9ja2VkT3V0U2hhcmVBbW91bnQIBQAAAAR2MjE4AAAAAl85CQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAWZGVjaW1hbHNNdWx0Qm90aEFzc2V0cwUAAAAEdjIxMQkBAAAADEludGVnZXJFbnRyeQAAAAICAAAACHByaWNlQVRIBQAAAAR2MjE1CQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAARcHJpY2VSZWNhbGN1bGF0ZWQIBQAAAAR2MjE4AAAAAl8xAAAACgAAAAFpAQAAABJhZG1pblJlZ2lzdGVyQXNzZXQAAAAOAAAADGJhc2VBc3NldFN0cgAAAA5zaGFyZUFzc2V0TmFtZQAAAA9zaGFyZUFzc2V0RGVzY3IAAAAQZ2V0RGVsYXlpbkJsb2NrcwAAABZzaHV0ZG93bk1hbmFnZXJBZGRyZXNzAAAACnN0YXJ0UHJpY2UAAAAVdG9wdXBJbnRlcnZhbEluQmxvY2tzAAAAFHRvcHVwTWF4TmVnYXRpdmVQYXJ0AAAAE3RvcHVwTWFuYWdlckFkZHJlc3MAAAATc3VibWl0TGltaXRzQmFzZU1heAAAABVzdWJtaXRMaW1pdHNCYXNlUmVzZXQAAAAUc3VibWl0TGltaXRzU2hhcmVNYXgAAAAWc3VibWl0TGltaXRzU2hhcmVSZXNldAAAAAxhZG1pbkFkZHJlc3MEAAAABHYyMTkJAAJZAAAAAQUAAAAMYmFzZUFzc2V0U3RyBAAAAAR2MjIwCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAAR2MjE5AAAACGRlY2ltYWxzBAAAAAR2MjIxCQAAbAAAAAYAAAAAAAAAAAoAAAAAAAAAAAAFAAAABHYyMjAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABERPV04EAAAABHYyMjIJAABoAAAAAgkAAGgAAAACAAAAAAAAAABkAAAAAAAAAAPoAAAAAAAAAAPoBAAAAAR2MjIzCQAAawAAAAMFAAAAFHRvcHVwTWF4TmVnYXRpdmVQYXJ0AAAAAAAAAABkBQAAAAR2MjIxBAAAAAR2MjI0CQAD8AAAAAIFAAAABHRoaXMFAAAABHYyMTkDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAScGVybWlzc2lvbnMgZGVuaWVkAwkAAAAAAAACBQAAAAR2MjI0AAAAAAAAAAAACQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEFAAAABHRoaXMCAAAAIiBtdXN0IGhhdmUgYW55IGluaXRpYWwgYmFs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", "chainId": 84, "height": 1461753, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: G5Qyv2LyaLoREj5jhgjrwcsPA1PSV5FzcohYFG3hxCCD Next: none Diff:
OldNewDifferences
324324 }
325325
326326
327-func privateCurrentSysParamsREST (v207) = {
328- let v208 = fromBase58String(v207)
329- let v209 = f132(v207)
330- let v210 = v209[v65]
331- let v211 = fromBase58String(v210)
332- let v212 = parseIntValue(v209[v67])
333- let v213 = parseIntValue(v209[v68])
334- let v214 = v209[v66]
335- let v215 = f28(v214)
336- let v216 = valueOrElse(getInteger(this, v215), 0)
337- let v217 = f26(v214)
338- let v218 = valueOrElse(getInteger(this, v217), 0)
339- let v219 = f158(v214, v208, v211, v213)
340- $Tuple13(IntegerEntry("price", v218), IntegerEntry("decimalsMultPrice", v213), IntegerEntry("baseAssetBalance", v219._2), IntegerEntry("-1", v219._3), IntegerEntry("baseAssetBalanceWCO", v219._4), IntegerEntry("shareEmission", v219._5), IntegerEntry("currIterTotalInBaseAmount", v219._6), IntegerEntry("currIterTotalInShareAmount", v219._7), IntegerEntry("totalLockedOutBaseAmount", v219._8), IntegerEntry("totalLockedOutShareAmount", v219._9), IntegerEntry("decimalsMultBothAssets", v212), IntegerEntry("priceATH", v216), IntegerEntry("priceRecalculated", v219._1))
327+func privateCurrentSysParamsREST (baseAssetStr) = {
328+ let v207 = fromBase58String(baseAssetStr)
329+ let v208 = f132(baseAssetStr)
330+ let v209 = v208[v65]
331+ let v210 = fromBase58String(v209)
332+ let v211 = parseIntValue(v208[v67])
333+ let v212 = parseIntValue(v208[v68])
334+ let v213 = v208[v66]
335+ let v214 = f28(v213)
336+ let v215 = valueOrElse(getInteger(this, v214), 0)
337+ let v216 = f26(v213)
338+ let v217 = valueOrElse(getInteger(this, v216), 0)
339+ let v218 = f158(v213, v207, v210, v212)
340+ $Tuple13(IntegerEntry("price", v217), IntegerEntry("decimalsMultPrice", v212), IntegerEntry("baseAssetBalance", v218._2), IntegerEntry("-1", v218._3), IntegerEntry("baseAssetBalanceWCO", v218._4), IntegerEntry("shareEmission", v218._5), IntegerEntry("currIterTotalInBaseAmount", v218._6), IntegerEntry("currIterTotalInShareAmount", v218._7), IntegerEntry("totalLockedOutBaseAmount", v218._8), IntegerEntry("totalLockedOutShareAmount", v218._9), IntegerEntry("decimalsMultBothAssets", v211), IntegerEntry("priceATH", v215), IntegerEntry("priceRecalculated", v218._1))
341341 }
342342
343343
344344 @Callable(i)
345345 func adminRegisterAsset (baseAssetStr,shareAssetName,shareAssetDescr,getDelayinBlocks,shutdownManagerAddress,startPrice,topupIntervalInBlocks,topupMaxNegativePart,topupManagerAddress,submitLimitsBaseMax,submitLimitsBaseReset,submitLimitsShareMax,submitLimitsShareReset,adminAddress) = {
346- let v220 = fromBase58String(baseAssetStr)
347- let v221 = value(assetInfo(v220)).decimals
348- let v222 = pow(10, 0, v221, 0, 0, DOWN)
349- let v223 = ((100 * 1000) * 1000)
350- let v224 = fraction(topupMaxNegativePart, 100, v222)
351- let v225 = assetBalance(this, v220)
346+ let v219 = fromBase58String(baseAssetStr)
347+ let v220 = value(assetInfo(v219)).decimals
348+ let v221 = pow(10, 0, v220, 0, 0, DOWN)
349+ let v222 = ((100 * 1000) * 1000)
350+ let v223 = fraction(topupMaxNegativePart, 100, v221)
351+ let v224 = assetBalance(this, v219)
352352 if ((i.caller != this))
353353 then throw("permissions denied")
354- else if ((v225 == 0))
354+ else if ((v224 == 0))
355355 then throw(((toString(this) + " must have any initial balance of ") + baseAssetStr))
356356 else if (isDefined(getString(this, f23(baseAssetStr))))
357357 then throw((baseAssetStr + " has been already registered"))
361361 then throw("invalid topupManagerAddress")
362362 else if ((0 > getDelayinBlocks))
363363 then throw(("invalid getDelayinBlocks=" + toString(getDelayinBlocks)))
364- else if (if ((0 >= v224))
364+ else if (if ((0 >= v223))
365365 then true
366- else (v224 >= 99))
366+ else (v223 >= 99))
367367 then throw("invalid topupMaxNegativePart parameter")
368368 else {
369- let v226 = f19(v225, startPrice, v223)
370- let v227 = Issue(shareAssetName, shareAssetDescr, v226, v221, true)
371- let v228 = calculateAssetId(v227)
372- let v229 = toBase58String(v228)
373- let v230 = valueOrElse(getInteger(this, f25()), 0)
374- let v231 = toString(v230)
375-[StringEntry(f23(baseAssetStr), dataAssetCfg(v229, v231, v222, v223, getDelayinBlocks, topupIntervalInBlocks, topupMaxNegativePart, topupManagerAddress, submitLimitsBaseMax, submitLimitsBaseReset, submitLimitsShareMax, submitLimitsShareReset, adminAddress)), StringEntry(f41(v230), baseAssetStr), StringEntry(f43(baseAssetStr), v231), StringEntry(f45(v229), baseAssetStr), StringEntry(f47(baseAssetStr), v229), BooleanEntry(f49(v231), false), StringEntry(f51(v231), shutdownManagerAddress), IntegerEntry(f25(), (v230 + 1)), IntegerEntry(f26(v231), startPrice), IntegerEntry(f33(v231, height, lastBlock.timestamp), startPrice), IntegerEntry(f53(v231), 0), f136(f63(v231), submitLimitsBaseMax, submitLimitsShareMax), v227, ScriptTransfer(addressFromStringValue(topupManagerAddress), v226, v228)]
369+ let v225 = f19(v224, startPrice, v222)
370+ let v226 = Issue(shareAssetName, shareAssetDescr, v225, v220, true)
371+ let v227 = calculateAssetId(v226)
372+ let v228 = toBase58String(v227)
373+ let v229 = valueOrElse(getInteger(this, f25()), 0)
374+ let v230 = toString(v229)
375+[StringEntry(f23(baseAssetStr), dataAssetCfg(v228, v230, v221, v222, getDelayinBlocks, topupIntervalInBlocks, topupMaxNegativePart, topupManagerAddress, submitLimitsBaseMax, submitLimitsBaseReset, submitLimitsShareMax, submitLimitsShareReset, adminAddress)), StringEntry(f41(v229), baseAssetStr), StringEntry(f43(baseAssetStr), v230), StringEntry(f45(v228), baseAssetStr), StringEntry(f47(baseAssetStr), v228), BooleanEntry(f49(v230), false), StringEntry(f51(v230), shutdownManagerAddress), IntegerEntry(f25(), (v229 + 1)), IntegerEntry(f26(v230), startPrice), IntegerEntry(f33(v230, height, lastBlock.timestamp), startPrice), IntegerEntry(f53(v230), 0), f136(f63(v230), submitLimitsBaseMax, submitLimitsShareMax), v226, ScriptTransfer(addressFromStringValue(topupManagerAddress), v225, v227)]
376376 }
377377 }
378378
379379
380380
381381 @Callable(i)
382-func adminUpdateCfg (v232,v233,v234) = {
383- let v235 = f132(v232)
384- let v236 = v235[v77]
385- if ((toString(i.caller) != v236))
382+func adminUpdateCfg (baseAssetStr,updateCfgParamIdx,newCfgParamVal) = {
383+ let v231 = f132(baseAssetStr)
384+ let v232 = v231[v77]
385+ if ((toString(i.caller) != v232))
386386 then throw("permissioned denied")
387387 else {
388- func UpdateOrKeep (idx) = if ((idx == v233))
389- then v234
390- else v235[idx]
388+ func UpdateOrKeep (idx) = if ((idx == updateCfgParamIdx))
389+ then newCfgParamVal
390+ else v231[idx]
391391
392- let v237 = dataAssetCfgAllStrings(UpdateOrKeep(v65), UpdateOrKeep(v66), UpdateOrKeep(v67), UpdateOrKeep(v68), UpdateOrKeep(v69), UpdateOrKeep(v70), UpdateOrKeep(v71), UpdateOrKeep(v72), UpdateOrKeep(v73), UpdateOrKeep(v74), UpdateOrKeep(v75), UpdateOrKeep(v76), UpdateOrKeep(v77))
393-[StringEntry(f23(v232), v237)]
392+ let v233 = dataAssetCfgAllStrings(UpdateOrKeep(v65), UpdateOrKeep(v66), UpdateOrKeep(v67), UpdateOrKeep(v68), UpdateOrKeep(v69), UpdateOrKeep(v70), UpdateOrKeep(v71), UpdateOrKeep(v72), UpdateOrKeep(v73), UpdateOrKeep(v74), UpdateOrKeep(v75), UpdateOrKeep(v76), UpdateOrKeep(v77))
393+[StringEntry(f23(baseAssetStr), v233)]
394394 }
395395 }
396396
397397
398398
399399 @Callable(i)
400-func shutdownSubmits (v230) = {
401- let v238 = toString(v230)
402- let v239 = f0(f41(v230))
403- let v240 = f0(f51(v238))
404- if ((1 > size(v239)))
405- then throw("invalid v230")
406- else if ((toString(i.caller) != v240))
400+func shutdownSubmits (v229) = {
401+ let v234 = toString(v229)
402+ let v235 = f0(f41(v229))
403+ let v236 = f0(f51(v234))
404+ if ((1 > size(v235)))
405+ then throw("invalid v229")
406+ else if ((toString(i.caller) != v236))
407407 then throw("access denied")
408- else [BooleanEntry(f49(toString(v230)), true)]
408+ else [BooleanEntry(f49(toString(v229)), true)]
409409 }
410410
411411
413413 @Callable(i)
414414 func submitPut () = {
415415 let pmt = value(i.payments[0])
416- let v241 = pmt.amount
417- let v242 = value(pmt.assetId)
418- let v243 = toBase58String(v242)
419- f163("P", i, v241, v242, v243)
416+ let v237 = pmt.amount
417+ let v238 = value(pmt.assetId)
418+ let v239 = toBase58String(v238)
419+ f163("P", i, v237, v238, v239)
420420 }
421421
422422
424424 @Callable(i)
425425 func submitGet () = {
426426 let pmt = value(i.payments[0])
427- let v244 = pmt.amount
428- let v245 = value(pmt.assetId)
429- let v229 = toBase58String(v245)
430- let v246 = f0(f45(v229))
431- f163("G", i, v244, v245, v246)
427+ let v240 = pmt.amount
428+ let v241 = value(pmt.assetId)
429+ let v228 = toBase58String(v241)
430+ let v242 = f0(f45(v228))
431+ f163("G", i, v240, v241, v242)
432432 }
433433
434434
435435
436436 @Callable(i)
437-func executePut (v247,v248,v249) = f186("P", v247, v248, v249)
437+func executePut (baseAssetStr,userAddressStr,submitTxIdStr) = f186("P", baseAssetStr, userAddressStr, submitTxIdStr)
438438
439439
440440
441441 @Callable(i)
442-func executeGet (v250,v251,v252) = f186("G", v250, v251, v252)
442+func executeGet (baseAssetStr,userAddressStr,submitTxIdStr) = f186("G", baseAssetStr, userAddressStr, submitTxIdStr)
443443
444444
445445
446446 @Callable(i)
447-func operationsMutex (v253) = {
448- let v254 = f132(v253)
449- let v255 = v254[v72]
450- let v231 = v254[v66]
451- if ((toString(i.caller) != v255))
452- then f13(v255)
453- else [f139(v231, height)]
447+func operationsMutex (baseAssetStr) = {
448+ let v243 = f132(baseAssetStr)
449+ let v244 = v243[v72]
450+ let v230 = v243[v66]
451+ if ((toString(i.caller) != v244))
452+ then f13(v244)
453+ else [f139(v230, height)]
454454 }
455455
456456
457457
458458 @Callable(i)
459-func topUpBalance (v256,v257) = {
460- let v220 = fromBase58String(v256)
461- let v258 = f132(v256)
462- let v228 = fromBase58String(v258[v65])
463- let v259 = parseIntValue(v258[v68])
464- let v260 = parseIntValue(v258[v67])
465- let v261 = parseIntValue(v258[v70])
466- let v262 = parseIntValue(v258[v71])
467- let v231 = v258[v66]
468- let v263 = v258[v72]
469- let v264 = parseIntValue(v258[v73])
470- let v265 = parseIntValue(v258[v75])
471- let v266 = f53(v231)
472- let v267 = f2(v266)
473- let v268 = (v267 + 1)
474- let v269 = if ((v257 > 0))
459+func topUpBalance (baseAssetStr,income) = {
460+ let v219 = fromBase58String(baseAssetStr)
461+ let v245 = f132(baseAssetStr)
462+ let v227 = fromBase58String(v245[v65])
463+ let v246 = parseIntValue(v245[v68])
464+ let v247 = parseIntValue(v245[v67])
465+ let v248 = parseIntValue(v245[v70])
466+ let v249 = parseIntValue(v245[v71])
467+ let v230 = v245[v66]
468+ let v250 = v245[v72]
469+ let v251 = parseIntValue(v245[v73])
470+ let v252 = parseIntValue(v245[v75])
471+ let v253 = f53(v230)
472+ let v254 = f2(v253)
473+ let v255 = (v254 + 1)
474+ let v256 = if ((income > 0))
475475 then {
476476 let pmt = value(i.payments[0])
477- let v270 = value(pmt.assetId)
478- if ((v220 != v270))
479- then throw("attached payment's asset id is NOT matched passed v256")
477+ let v257 = value(pmt.assetId)
478+ if ((v219 != v257))
479+ then throw("attached payment's asset id is NOT matched passed baseAssetStr")
480480 else if ((size(i.payments) > 1))
481481 then throw("only one payment can be attached")
482- else if ((pmt.amount != v257))
483- then throw("attached payment.amount is NOT matched passed v257 argument")
482+ else if ((pmt.amount != income))
483+ then throw("attached payment.amount is NOT matched passed income argument")
484484 else true
485485 }
486- else if ((0 > v257))
486+ else if ((0 > income))
487487 then {
488- let v271 = assetBalance(this, v220)
489- let v272 = fraction(v262, v271, v260)
490- if ((-(v257) > v272))
491- then throw(("topup negative v257 couldn't be greater than " + toString(v272)))
488+ let v258 = assetBalance(this, v219)
489+ let v259 = fraction(v249, v258, v247)
490+ if ((-(income) > v259))
491+ then throw(("topup negative income couldn't be greater than " + toString(v259)))
492492 else true
493493 }
494- else throw("zero v257 is not allowed")
495- let v273 = f55(v231, toString(i.caller))
496- let v274 = valueOrElse(getInteger(this, v273), 0)
497- if ((toString(i.caller) != v263))
498- then f13(v263)
499- else if (!(v269))
494+ else throw("zero income is not allowed")
495+ let v260 = f55(v230, toString(i.caller))
496+ let v261 = valueOrElse(getInteger(this, v260), 0)
497+ if ((toString(i.caller) != v250))
498+ then f13(v250)
499+ else if (!(v256))
500500 then throw("validation failed")
501- else if ((v261 > (height - v274)))
502- then throw((("1 topup per " + toString(v261)) + " blocks from the same address is allowed"))
501+ else if ((v248 > (height - v261)))
502+ then throw((("1 topup per " + toString(v248)) + " blocks from the same address is allowed"))
503503 else {
504- let v275 = f142(v231, v220, v257, v228, v259)._1
505- let v276 = f94("topup", "", v231, v275, v259, 0, v220, v228)
506- let v277 = v276._1
507- let v278 = f28(v231)
508- let v279 = valueOrElse(getInteger(this, v278), 0)
509- (((((([IntegerEntry(f26(v231), v275), IntegerEntry(f33(v231, height, lastBlock.timestamp), v275), IntegerEntry(f30(v231, v268), v275), IntegerEntry(v266, v268), IntegerEntry(v278, if ((v275 > v279))
510- then v275
511- else v279), IntegerEntry(v273, height)] :+ TotalLockedStringEntry("DECREMENT", f36(v231), v277)) :+ f139(v231, 0)) :+ f136(f63(v231), v264, v265)) :+ Burn(v228, v277[v78])) :+ Reissue(v228, -(v277[v81]), true)) ++ (if ((0 > v257))
512- then [ScriptTransfer(i.caller, -(v257), v220)]
504+ let v262 = f142(v230, v219, income, v227, v246)._1
505+ let v263 = f94("topup", "", v230, v262, v246, 0, v219, v227)
506+ let v264 = v263._1
507+ let v265 = f28(v230)
508+ let v266 = valueOrElse(getInteger(this, v265), 0)
509+ (((((([IntegerEntry(f26(v230), v262), IntegerEntry(f33(v230, height, lastBlock.timestamp), v262), IntegerEntry(f30(v230, v255), v262), IntegerEntry(v253, v255), IntegerEntry(v265, if ((v262 > v266))
510+ then v262
511+ else v266), IntegerEntry(v260, height)] :+ TotalLockedStringEntry("DECREMENT", f36(v230), v264)) :+ f139(v230, 0)) :+ f136(f63(v230), v251, v252)) :+ Burn(v227, v264[v78])) :+ Reissue(v227, -(v264[v81]), true)) ++ (if ((0 > income))
512+ then [ScriptTransfer(i.caller, -(income), v219)]
513513 else nil))
514514 }
515515 }
517517
518518
519519 @Callable(i)
520-func currentSysParamsREST (v280) = {
521- let v281 = privateCurrentSysParamsREST(v280)
522- let v282 = v281._1.value
523- let v223 = v281._2.value
524- let v225 = v281._3.value
525- let v283 = v281._4.value
526- let v284 = v281._5.value
527- let v285 = v281._6.value
528- let v286 = v281._7.value
529- let v287 = v281._8.value
530- let v288 = v281._9.value
531- let v289 = v281._10.value
532- let v222 = v281._11.value
533- let v290 = v281._12.value
534- let v291 = v281._13.value
535- let v292 = makeString(["startCurrentSysParamsREST", toString(v282), toString(v223), toString(v225), toString(v283), toString(v284), toString(v285), toString(v286), toString(v287), toString(v288), toString(v289), toString(v222), toString(v290), toString(v291), "endCurrentSysParamsREST"], SEP)
536- throw(v292)
520+func currentSysParamsREST (baseAssetStr) = {
521+ let v267 = privateCurrentSysParamsREST(baseAssetStr)
522+ let v268 = v267._1.value
523+ let v222 = v267._2.value
524+ let v224 = v267._3.value
525+ let v269 = v267._4.value
526+ let v270 = v267._5.value
527+ let v271 = v267._6.value
528+ let v272 = v267._7.value
529+ let v273 = v267._8.value
530+ let v274 = v267._9.value
531+ let v275 = v267._10.value
532+ let v221 = v267._11.value
533+ let v276 = v267._12.value
534+ let v277 = v267._13.value
535+ let v278 = makeString(["startCurrentSysParamsREST", toString(v268), toString(v222), toString(v224), toString(v269), toString(v270), toString(v271), toString(v272), toString(v273), toString(v274), toString(v275), toString(v221), toString(v276), toString(v277), "endCurrentSysParamsREST"], SEP)
536+ throw(v278)
537537 }
538538
539539
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let SEP = "__"
55
66 func f0 (key) = valueOrErrorMessage(getString(this, key), ("No data for this.key=" + key))
77
88
99 func f1 (key) = valueOrErrorMessage(getBoolean(this, key), ("No data for this.key=" + key))
1010
1111
1212 func f2 (key) = valueOrErrorMessage(getInteger(this, key), ("No data for this.key=" + key))
1313
1414
1515 func f3 (msg,v4,v5,v6,v7) = throw(((((((((msg + ": baseAsset=") + v4) + " userAddress=") + v5) + " submitTxId=") + v6) + " operation=") + v7))
1616
1717
1818 func f8 (v9,v10,v11,v12) = throw((((((((("submit operation limits have been reached: " + " remainingBaseVal=") + toString(v9)) + " remainingShareVal=") + toString(v10)) + " newRemainingBaseVal=") + toString(v11)) + " newRemainingShareVal=") + toString(v12)))
1919
2020
2121 func f13 (v14) = throw((("opertion denied: only topUpManager=" + v14) + " can send such transactions"))
2222
2323
2424 func f15 (v16,v17,v18) = fraction(v16, v17, v18)
2525
2626
2727 func f19 (v20,v21,v22) = fraction(v20, v22, v21)
2828
2929
3030 func f23 (v24) = ("%s%s%s__config__asset__" + v24)
3131
3232
3333 func f25 () = "%s__nextInternalAssetId"
3434
3535
3636 func f26 (v27) = ("%s%s%d__price__last__" + v27)
3737
3838
3939 func f28 (v29) = ("%s%s%d__price__ath__" + v29)
4040
4141
4242 func f30 (v31,v32) = makeString(["%s%s%d%d__price__byTopUpIdx", v31, toString(v32)], SEP)
4343
4444
4545 func f33 (v34,h,v35) = makeString(["%s%s%d%d%d__price__history", v34, toString(h), toString(v35)], SEP)
4646
4747
4848 func f36 (v37) = ("%s%s%d__total__locked__" + v37)
4949
5050
5151 func f38 (v39,v40) = makeString(["%s%s%d%s__total__locked", v39, v40], SEP)
5252
5353
5454 func f41 (v42) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(v42))
5555
5656
5757 func f43 (v44) = ("%s%s%s__mappings__baseAsset2internalId__" + v44)
5858
5959
6060 func f45 (v46) = ("%s%s%s__mappings__share2baseAssetId__" + v46)
6161
6262
6363 func f47 (v48) = ("%s%s%s__mappings__baseAsset2shareId__" + v48)
6464
6565
6666 func f49 (v50) = ("%s%s%d__shutdown__submit__" + v50)
6767
6868
6969 func f51 (v52) = ("%s%s%d__shutdown__manager__" + v52)
7070
7171
7272 func f53 (v54) = ("%s%s%d__topup__currentIdx__" + v54)
7373
7474
7575 func f55 (v56,v57) = makeString(["%s%s%s%d%s__topup__last__height", v56, v57], SEP)
7676
7777
7878 func f58 (v59) = ("%s%s%d__topup__mutex__" + v59)
7979
8080
8181 func f60 (v61,v62) = makeString(["%s%s%d%d__topup__history", v61, toString(v62)], SEP)
8282
8383
8484 func f63 (v64) = ("%s%s%d__limits__remaining__" + v64)
8585
8686
8787 let v65 = 1
8888
8989 let v66 = 2
9090
9191 let v67 = 3
9292
9393 let v68 = 4
9494
9595 let v69 = 5
9696
9797 let v70 = 6
9898
9999 let v71 = 7
100100
101101 let v72 = 8
102102
103103 let v73 = 9
104104
105105 let v74 = 10
106106
107107 let v75 = 11
108108
109109 let v76 = 12
110110
111111 let v77 = 13
112112
113113 func dataAssetCfgAllStrings (shareAssetStr,internalBaseAssetStr,decimalsMultBothAssets,decimalsMultPrice,getDelayInBlocks,topupIntervalInBlocks,topupMaxNegativePart,topupManagerAddress,submitLimitsBaseMax,submitLimitsBaseReset,submitLimitsShareMax,submitLimitsShareReset,adminAddress) = makeString(["%s%d%d%d%d%d%d%s%d%d%d%d", shareAssetStr, internalBaseAssetStr, decimalsMultBothAssets, decimalsMultPrice, getDelayInBlocks, topupIntervalInBlocks, topupMaxNegativePart, topupManagerAddress, submitLimitsBaseMax, submitLimitsBaseReset, submitLimitsShareMax, submitLimitsShareReset, adminAddress], SEP)
114114
115115
116116 func dataAssetCfg (shareAssetStr,internalBaseAssetStr,decimalsMultBothAssets,decimalsMultPrice,getDelayInBlocks,topupIntervalInBlocks,topupMaxNegativePart,topupManagerAddress,submitLimitsBaseMax,submitLimitsBaseReset,submitLimitsShareMax,submitLimitsShareReset,adminAddress) = makeString(["%s%d%d%d%d%d%d%s%d%d%d%d", shareAssetStr, internalBaseAssetStr, toString(decimalsMultBothAssets), toString(decimalsMultPrice), toString(getDelayInBlocks), toString(topupIntervalInBlocks), toString(topupMaxNegativePart), topupManagerAddress, toString(submitLimitsBaseMax), toString(submitLimitsBaseReset), toString(submitLimitsShareMax), toString(submitLimitsShareReset), adminAddress], SEP)
117117
118118
119119 let v78 = 1
120120
121121 let v79 = 2
122122
123123 let v80 = 3
124124
125125 let v81 = 4
126126
127127 func f82 (v83,v84,v85,v86) = makeString(["%d%d%d%d", toString(v83), toString(v84), toString(v85), toString(v86)], SEP)
128128
129129
130130 func f87 (v88,v89,v90,v91) = [-1, v88, v89, v90, v91]
131131
132132
133133 func f92 (key) = {
134134 let v93 = split(valueOrElse(getString(this, key), f82(0, 0, 0, 0)), SEP)
135135 f87(parseIntValue(v93[v78]), parseIntValue(v93[v79]), parseIntValue(v93[v80]), parseIntValue(v93[v81]))
136136 }
137137
138138
139139 func f94 (v95,v96,v97,v98,v99,v100,v101,v102) = {
140140 let t = (v95 + v96)
141141 if ((t == "submitP"))
142142 then {
143143 let v103 = f87(0, 0, v100, 0)
144144 let v104 = v103
145145 $Tuple4(v103, v104, 0, fromBase58String(""))
146146 }
147147 else if ((t == "submitG"))
148148 then {
149149 let v105 = f87(v100, 0, 0, 0)
150150 let v106 = v105
151151 $Tuple4(v105, v106, 0, fromBase58String(""))
152152 }
153153 else if ((t == "executeP"))
154154 then {
155155 let v107 = f19(v100, v98, v99)
156156 let v108 = f87(0, 0, 0, v107)
157157 let v109 = f87(0, 0, v100, 0)
158158 $Tuple4(v108, v109, v107, v102)
159159 }
160160 else if ((t == "executeG"))
161161 then {
162162 let v110 = f15(v100, v98, v99)
163163 let v111 = f87(0, v110, 0, 0)
164164 let v112 = f87(v100, 0, 0, 0)
165165 $Tuple4(v111, v112, v110, v101)
166166 }
167167 else if ((t == "topup"))
168168 then {
169169 let v113 = f92(f36(v97))
170170 let v114 = v113[v80]
171171 let v115 = v113[v78]
172172 let v116 = f87(v115, (-1 * f15(v115, v98, v99)), v114, (-1 * f19(v114, v98, v99)))
173173 $Tuple4(v116, nil, 0, fromBase58String(""))
174174 }
175175 else throw(("Unsupported Type " + t))
176176 }
177177
178178
179179 func TotalLockedStringEntry (action,key,diff) = {
180180 func f117 (a,b) = if ((action == "INCREMENT"))
181181 then (a + b)
182182 else if ((action == "DECREMENT"))
183183 then (a - b)
184184 else throw(("Unsupported action " + action))
185185
186186 let v118 = f92(key)
187187 StringEntry(key, f82(f117(v118[v78], diff[v78]), f117(v118[v79], diff[v79]), f117(v118[v80], diff[v80]), f117(v118[v81], diff[v81])))
188188 }
189189
190190
191191 func f119 (v120,v121,v122,txId) = makeString(["%s%d%s%s", v120, v121, v122, txId], SEP)
192192
193193
194194 let v123 = 1
195195
196196 let v124 = 2
197197
198198 let v125 = 3
199199
200200 let v126 = 4
201201
202202 let v127 = 5
203203
204204 let v128 = 6
205205
206206 let v129 = 7
207207
208208 let v130 = 8
209209
210210 let v131 = 9
211211
212212 func privateDataOperationAllStrings (status,inAssetAmount,price,outAssetAmount,startHeight,startTimestamp,endHeight,endTimestamp,lock) = makeString(["%s%d%d%d%d%d%d%d%d", status, inAssetAmount, price, outAssetAmount, startHeight, startTimestamp, endHeight, endTimestamp, lock], SEP)
213213
214214
215215 func dataOperation (status,inAssetAmount,price,outAssetAmount,startHeight,startTimestamp,endHeight,endTimestamp,topupUnlockIdx) = privateDataOperationAllStrings(status, toString(inAssetAmount), toString(price), toString(outAssetAmount), toString(startHeight), toString(startTimestamp), toString(endHeight), toString(endTimestamp), toString(topupUnlockIdx))
216216
217217
218218 func dataOperationExecutionUpdate (currOperArray,newStatus,newPrice,newOutAmount) = privateDataOperationAllStrings(newStatus, currOperArray[v124], toString(newPrice), toString(newOutAmount), currOperArray[v127], currOperArray[v128], toString(height), toString(lastBlock.timestamp), currOperArray[v131])
219219
220220
221221 func f132 (v133) = {
222222 let key = f23(v133)
223223 split(f0(key), SEP)
224224 }
225225
226226
227227 let v134 = 1
228228
229229 let v135 = 2
230230
231231 func f136 (key,v137,v138) = StringEntry(key, makeString(["%d%d", toString(v137), toString(v138)], SEP))
232232
233233
234234 func f139 (v140,v141) = IntegerEntry(f58(v140), v141)
235235
236236
237237 func f142 (v143,v144,v145,v146,v147) = {
238238 let v148 = f92(f36(v143))
239239 let v149 = v148[v79]
240240 let v150 = v148[v80]
241241 let v151 = assetBalance(this, v144)
242242 let v152 = (((v151 + v145) - v150) - v149)
243243 let v153 = v148[v81]
244244 let v154 = v148[v78]
245245 let v155 = value(assetInfo(v146)).quantity
246246 if ((0 > v152))
247247 then throw(((("v152 < 0: v151=" + toString(v151)) + " v152=") + toString(v152)))
248248 else {
249249 let v156 = f2(f26(v143))
250250 let v157 = if ((v155 == 0))
251251 then v156
252252 else fraction(v152, v147, v155)
253253 $Tuple9(v157, v151, -1, v152, v155, v150, v154, v149, v153)
254254 }
255255 }
256256
257257
258258 func f158 (v159,v160,v161,v162) = f142(v159, v160, 0, v161, v162)
259259
260260
261261 func f163 (v164,i,v165,v166,v167) = {
262262 let v168 = toBase58String(v166)
263263 let v169 = toString(i.caller)
264264 let v170 = fromBase58String(v167)
265265 let v171 = f132(v167)
266266 let v172 = v171[v65]
267267 let v173 = fromBase58String(v172)
268268 let v174 = parseIntValue(v171[v67])
269269 let v175 = v171[v66]
270270 let v176 = f63(v175)
271271 let v177 = split(f0(v176), SEP)
272272 let v178 = parseIntValue(v177[v134])
273273 let v179 = parseIntValue(v177[v135])
274274 let v180 = valueOrElse(getBoolean(this, f49(v175)), false)
275275 if (v180)
276276 then throw("submit operation is blocked")
277277 else {
278278 let v181 = valueOrElse(getInteger(this, f58(v175)), 0)
279279 if (((v181 + 60) > height))
280280 then throw("submit operations are blocked by topup manager")
281281 else {
282282 let v182 = f94("submit", v164, v175, 0, 0, v165, v170, v173)
283283 let v183 = (v178 - v182._2[v80])
284284 let v184 = (v179 - v182._2[v78])
285285 if (if ((0 > v183))
286286 then true
287287 else (0 > v184))
288288 then f8(v178, v179, v183, v184)
289289 else {
290290 let v185 = f2(f53(v175))
291291 ((([StringEntry(f119(v164, v175, v169, toBase58String(i.transactionId)), dataOperation("PENDING", v165, 0, 0, height, lastBlock.timestamp, 0, 0, (v185 + 1)))] :+ TotalLockedStringEntry("INCREMENT", f36(v175), v182._1)) :+ TotalLockedStringEntry("INCREMENT", f38(v175, v169), v182._2)) :+ f136(v176, v183, v184))
292292 }
293293 }
294294 }
295295 }
296296
297297
298298 func f186 (v187,v188,v189,v190) = {
299299 let v191 = addressFromStringValue(v189)
300300 let v192 = f132(v188)
301301 let v193 = fromBase58String(v192[v65])
302302 let v194 = v192[v66]
303303 let v195 = parseIntValue(v192[v68])
304304 let v196 = fromBase58String(v188)
305305 let v197 = f119(v187, v194, v189, v190)
306306 let v198 = split(f0(v197), SEP)
307307 let v199 = v198[v123]
308308 let v200 = parseIntValue(v198[v124])
309309 let v201 = parseIntValue(v198[v131])
310310 let v202 = f2(f53(v194))
311311 let v203 = f2(f30(v194, v201))
312312 if ((v199 != "PENDING"))
313313 then f3("Status is not PENDING", v188, v189, v190, v187)
314314 else if ((v201 > v202))
315315 then f3(((("OperLock[" + toString(v201)) + "] > ") + toString(v202)), v188, v189, v190, v187)
316316 else {
317317 let v204 = f94("execute", v187, v194, v203, v195, v200, v196, v193)
318318 let v205 = v204._3
319319 let v206 = if ((v204._4 == v196))
320320 then [ScriptTransfer(v191, v205, v196)]
321321 else [ScriptTransfer(v191, v205, v193)]
322322 (((v206 :+ StringEntry(v197, dataOperationExecutionUpdate(v198, "FINISHED", v203, v205))) :+ TotalLockedStringEntry("DECREMENT", f36(v194), v204._1)) :+ TotalLockedStringEntry("DECREMENT", f38(v194, v189), v204._2))
323323 }
324324 }
325325
326326
327-func privateCurrentSysParamsREST (v207) = {
328- let v208 = fromBase58String(v207)
329- let v209 = f132(v207)
330- let v210 = v209[v65]
331- let v211 = fromBase58String(v210)
332- let v212 = parseIntValue(v209[v67])
333- let v213 = parseIntValue(v209[v68])
334- let v214 = v209[v66]
335- let v215 = f28(v214)
336- let v216 = valueOrElse(getInteger(this, v215), 0)
337- let v217 = f26(v214)
338- let v218 = valueOrElse(getInteger(this, v217), 0)
339- let v219 = f158(v214, v208, v211, v213)
340- $Tuple13(IntegerEntry("price", v218), IntegerEntry("decimalsMultPrice", v213), IntegerEntry("baseAssetBalance", v219._2), IntegerEntry("-1", v219._3), IntegerEntry("baseAssetBalanceWCO", v219._4), IntegerEntry("shareEmission", v219._5), IntegerEntry("currIterTotalInBaseAmount", v219._6), IntegerEntry("currIterTotalInShareAmount", v219._7), IntegerEntry("totalLockedOutBaseAmount", v219._8), IntegerEntry("totalLockedOutShareAmount", v219._9), IntegerEntry("decimalsMultBothAssets", v212), IntegerEntry("priceATH", v216), IntegerEntry("priceRecalculated", v219._1))
327+func privateCurrentSysParamsREST (baseAssetStr) = {
328+ let v207 = fromBase58String(baseAssetStr)
329+ let v208 = f132(baseAssetStr)
330+ let v209 = v208[v65]
331+ let v210 = fromBase58String(v209)
332+ let v211 = parseIntValue(v208[v67])
333+ let v212 = parseIntValue(v208[v68])
334+ let v213 = v208[v66]
335+ let v214 = f28(v213)
336+ let v215 = valueOrElse(getInteger(this, v214), 0)
337+ let v216 = f26(v213)
338+ let v217 = valueOrElse(getInteger(this, v216), 0)
339+ let v218 = f158(v213, v207, v210, v212)
340+ $Tuple13(IntegerEntry("price", v217), IntegerEntry("decimalsMultPrice", v212), IntegerEntry("baseAssetBalance", v218._2), IntegerEntry("-1", v218._3), IntegerEntry("baseAssetBalanceWCO", v218._4), IntegerEntry("shareEmission", v218._5), IntegerEntry("currIterTotalInBaseAmount", v218._6), IntegerEntry("currIterTotalInShareAmount", v218._7), IntegerEntry("totalLockedOutBaseAmount", v218._8), IntegerEntry("totalLockedOutShareAmount", v218._9), IntegerEntry("decimalsMultBothAssets", v211), IntegerEntry("priceATH", v215), IntegerEntry("priceRecalculated", v218._1))
341341 }
342342
343343
344344 @Callable(i)
345345 func adminRegisterAsset (baseAssetStr,shareAssetName,shareAssetDescr,getDelayinBlocks,shutdownManagerAddress,startPrice,topupIntervalInBlocks,topupMaxNegativePart,topupManagerAddress,submitLimitsBaseMax,submitLimitsBaseReset,submitLimitsShareMax,submitLimitsShareReset,adminAddress) = {
346- let v220 = fromBase58String(baseAssetStr)
347- let v221 = value(assetInfo(v220)).decimals
348- let v222 = pow(10, 0, v221, 0, 0, DOWN)
349- let v223 = ((100 * 1000) * 1000)
350- let v224 = fraction(topupMaxNegativePart, 100, v222)
351- let v225 = assetBalance(this, v220)
346+ let v219 = fromBase58String(baseAssetStr)
347+ let v220 = value(assetInfo(v219)).decimals
348+ let v221 = pow(10, 0, v220, 0, 0, DOWN)
349+ let v222 = ((100 * 1000) * 1000)
350+ let v223 = fraction(topupMaxNegativePart, 100, v221)
351+ let v224 = assetBalance(this, v219)
352352 if ((i.caller != this))
353353 then throw("permissions denied")
354- else if ((v225 == 0))
354+ else if ((v224 == 0))
355355 then throw(((toString(this) + " must have any initial balance of ") + baseAssetStr))
356356 else if (isDefined(getString(this, f23(baseAssetStr))))
357357 then throw((baseAssetStr + " has been already registered"))
358358 else if ((toString(addressFromStringValue(shutdownManagerAddress)) != shutdownManagerAddress))
359359 then throw("invalid shutdownManagerAddress")
360360 else if ((toString(addressFromStringValue(topupManagerAddress)) != topupManagerAddress))
361361 then throw("invalid topupManagerAddress")
362362 else if ((0 > getDelayinBlocks))
363363 then throw(("invalid getDelayinBlocks=" + toString(getDelayinBlocks)))
364- else if (if ((0 >= v224))
364+ else if (if ((0 >= v223))
365365 then true
366- else (v224 >= 99))
366+ else (v223 >= 99))
367367 then throw("invalid topupMaxNegativePart parameter")
368368 else {
369- let v226 = f19(v225, startPrice, v223)
370- let v227 = Issue(shareAssetName, shareAssetDescr, v226, v221, true)
371- let v228 = calculateAssetId(v227)
372- let v229 = toBase58String(v228)
373- let v230 = valueOrElse(getInteger(this, f25()), 0)
374- let v231 = toString(v230)
375-[StringEntry(f23(baseAssetStr), dataAssetCfg(v229, v231, v222, v223, getDelayinBlocks, topupIntervalInBlocks, topupMaxNegativePart, topupManagerAddress, submitLimitsBaseMax, submitLimitsBaseReset, submitLimitsShareMax, submitLimitsShareReset, adminAddress)), StringEntry(f41(v230), baseAssetStr), StringEntry(f43(baseAssetStr), v231), StringEntry(f45(v229), baseAssetStr), StringEntry(f47(baseAssetStr), v229), BooleanEntry(f49(v231), false), StringEntry(f51(v231), shutdownManagerAddress), IntegerEntry(f25(), (v230 + 1)), IntegerEntry(f26(v231), startPrice), IntegerEntry(f33(v231, height, lastBlock.timestamp), startPrice), IntegerEntry(f53(v231), 0), f136(f63(v231), submitLimitsBaseMax, submitLimitsShareMax), v227, ScriptTransfer(addressFromStringValue(topupManagerAddress), v226, v228)]
369+ let v225 = f19(v224, startPrice, v222)
370+ let v226 = Issue(shareAssetName, shareAssetDescr, v225, v220, true)
371+ let v227 = calculateAssetId(v226)
372+ let v228 = toBase58String(v227)
373+ let v229 = valueOrElse(getInteger(this, f25()), 0)
374+ let v230 = toString(v229)
375+[StringEntry(f23(baseAssetStr), dataAssetCfg(v228, v230, v221, v222, getDelayinBlocks, topupIntervalInBlocks, topupMaxNegativePart, topupManagerAddress, submitLimitsBaseMax, submitLimitsBaseReset, submitLimitsShareMax, submitLimitsShareReset, adminAddress)), StringEntry(f41(v229), baseAssetStr), StringEntry(f43(baseAssetStr), v230), StringEntry(f45(v228), baseAssetStr), StringEntry(f47(baseAssetStr), v228), BooleanEntry(f49(v230), false), StringEntry(f51(v230), shutdownManagerAddress), IntegerEntry(f25(), (v229 + 1)), IntegerEntry(f26(v230), startPrice), IntegerEntry(f33(v230, height, lastBlock.timestamp), startPrice), IntegerEntry(f53(v230), 0), f136(f63(v230), submitLimitsBaseMax, submitLimitsShareMax), v226, ScriptTransfer(addressFromStringValue(topupManagerAddress), v225, v227)]
376376 }
377377 }
378378
379379
380380
381381 @Callable(i)
382-func adminUpdateCfg (v232,v233,v234) = {
383- let v235 = f132(v232)
384- let v236 = v235[v77]
385- if ((toString(i.caller) != v236))
382+func adminUpdateCfg (baseAssetStr,updateCfgParamIdx,newCfgParamVal) = {
383+ let v231 = f132(baseAssetStr)
384+ let v232 = v231[v77]
385+ if ((toString(i.caller) != v232))
386386 then throw("permissioned denied")
387387 else {
388- func UpdateOrKeep (idx) = if ((idx == v233))
389- then v234
390- else v235[idx]
388+ func UpdateOrKeep (idx) = if ((idx == updateCfgParamIdx))
389+ then newCfgParamVal
390+ else v231[idx]
391391
392- let v237 = dataAssetCfgAllStrings(UpdateOrKeep(v65), UpdateOrKeep(v66), UpdateOrKeep(v67), UpdateOrKeep(v68), UpdateOrKeep(v69), UpdateOrKeep(v70), UpdateOrKeep(v71), UpdateOrKeep(v72), UpdateOrKeep(v73), UpdateOrKeep(v74), UpdateOrKeep(v75), UpdateOrKeep(v76), UpdateOrKeep(v77))
393-[StringEntry(f23(v232), v237)]
392+ let v233 = dataAssetCfgAllStrings(UpdateOrKeep(v65), UpdateOrKeep(v66), UpdateOrKeep(v67), UpdateOrKeep(v68), UpdateOrKeep(v69), UpdateOrKeep(v70), UpdateOrKeep(v71), UpdateOrKeep(v72), UpdateOrKeep(v73), UpdateOrKeep(v74), UpdateOrKeep(v75), UpdateOrKeep(v76), UpdateOrKeep(v77))
393+[StringEntry(f23(baseAssetStr), v233)]
394394 }
395395 }
396396
397397
398398
399399 @Callable(i)
400-func shutdownSubmits (v230) = {
401- let v238 = toString(v230)
402- let v239 = f0(f41(v230))
403- let v240 = f0(f51(v238))
404- if ((1 > size(v239)))
405- then throw("invalid v230")
406- else if ((toString(i.caller) != v240))
400+func shutdownSubmits (v229) = {
401+ let v234 = toString(v229)
402+ let v235 = f0(f41(v229))
403+ let v236 = f0(f51(v234))
404+ if ((1 > size(v235)))
405+ then throw("invalid v229")
406+ else if ((toString(i.caller) != v236))
407407 then throw("access denied")
408- else [BooleanEntry(f49(toString(v230)), true)]
408+ else [BooleanEntry(f49(toString(v229)), true)]
409409 }
410410
411411
412412
413413 @Callable(i)
414414 func submitPut () = {
415415 let pmt = value(i.payments[0])
416- let v241 = pmt.amount
417- let v242 = value(pmt.assetId)
418- let v243 = toBase58String(v242)
419- f163("P", i, v241, v242, v243)
416+ let v237 = pmt.amount
417+ let v238 = value(pmt.assetId)
418+ let v239 = toBase58String(v238)
419+ f163("P", i, v237, v238, v239)
420420 }
421421
422422
423423
424424 @Callable(i)
425425 func submitGet () = {
426426 let pmt = value(i.payments[0])
427- let v244 = pmt.amount
428- let v245 = value(pmt.assetId)
429- let v229 = toBase58String(v245)
430- let v246 = f0(f45(v229))
431- f163("G", i, v244, v245, v246)
427+ let v240 = pmt.amount
428+ let v241 = value(pmt.assetId)
429+ let v228 = toBase58String(v241)
430+ let v242 = f0(f45(v228))
431+ f163("G", i, v240, v241, v242)
432432 }
433433
434434
435435
436436 @Callable(i)
437-func executePut (v247,v248,v249) = f186("P", v247, v248, v249)
437+func executePut (baseAssetStr,userAddressStr,submitTxIdStr) = f186("P", baseAssetStr, userAddressStr, submitTxIdStr)
438438
439439
440440
441441 @Callable(i)
442-func executeGet (v250,v251,v252) = f186("G", v250, v251, v252)
442+func executeGet (baseAssetStr,userAddressStr,submitTxIdStr) = f186("G", baseAssetStr, userAddressStr, submitTxIdStr)
443443
444444
445445
446446 @Callable(i)
447-func operationsMutex (v253) = {
448- let v254 = f132(v253)
449- let v255 = v254[v72]
450- let v231 = v254[v66]
451- if ((toString(i.caller) != v255))
452- then f13(v255)
453- else [f139(v231, height)]
447+func operationsMutex (baseAssetStr) = {
448+ let v243 = f132(baseAssetStr)
449+ let v244 = v243[v72]
450+ let v230 = v243[v66]
451+ if ((toString(i.caller) != v244))
452+ then f13(v244)
453+ else [f139(v230, height)]
454454 }
455455
456456
457457
458458 @Callable(i)
459-func topUpBalance (v256,v257) = {
460- let v220 = fromBase58String(v256)
461- let v258 = f132(v256)
462- let v228 = fromBase58String(v258[v65])
463- let v259 = parseIntValue(v258[v68])
464- let v260 = parseIntValue(v258[v67])
465- let v261 = parseIntValue(v258[v70])
466- let v262 = parseIntValue(v258[v71])
467- let v231 = v258[v66]
468- let v263 = v258[v72]
469- let v264 = parseIntValue(v258[v73])
470- let v265 = parseIntValue(v258[v75])
471- let v266 = f53(v231)
472- let v267 = f2(v266)
473- let v268 = (v267 + 1)
474- let v269 = if ((v257 > 0))
459+func topUpBalance (baseAssetStr,income) = {
460+ let v219 = fromBase58String(baseAssetStr)
461+ let v245 = f132(baseAssetStr)
462+ let v227 = fromBase58String(v245[v65])
463+ let v246 = parseIntValue(v245[v68])
464+ let v247 = parseIntValue(v245[v67])
465+ let v248 = parseIntValue(v245[v70])
466+ let v249 = parseIntValue(v245[v71])
467+ let v230 = v245[v66]
468+ let v250 = v245[v72]
469+ let v251 = parseIntValue(v245[v73])
470+ let v252 = parseIntValue(v245[v75])
471+ let v253 = f53(v230)
472+ let v254 = f2(v253)
473+ let v255 = (v254 + 1)
474+ let v256 = if ((income > 0))
475475 then {
476476 let pmt = value(i.payments[0])
477- let v270 = value(pmt.assetId)
478- if ((v220 != v270))
479- then throw("attached payment's asset id is NOT matched passed v256")
477+ let v257 = value(pmt.assetId)
478+ if ((v219 != v257))
479+ then throw("attached payment's asset id is NOT matched passed baseAssetStr")
480480 else if ((size(i.payments) > 1))
481481 then throw("only one payment can be attached")
482- else if ((pmt.amount != v257))
483- then throw("attached payment.amount is NOT matched passed v257 argument")
482+ else if ((pmt.amount != income))
483+ then throw("attached payment.amount is NOT matched passed income argument")
484484 else true
485485 }
486- else if ((0 > v257))
486+ else if ((0 > income))
487487 then {
488- let v271 = assetBalance(this, v220)
489- let v272 = fraction(v262, v271, v260)
490- if ((-(v257) > v272))
491- then throw(("topup negative v257 couldn't be greater than " + toString(v272)))
488+ let v258 = assetBalance(this, v219)
489+ let v259 = fraction(v249, v258, v247)
490+ if ((-(income) > v259))
491+ then throw(("topup negative income couldn't be greater than " + toString(v259)))
492492 else true
493493 }
494- else throw("zero v257 is not allowed")
495- let v273 = f55(v231, toString(i.caller))
496- let v274 = valueOrElse(getInteger(this, v273), 0)
497- if ((toString(i.caller) != v263))
498- then f13(v263)
499- else if (!(v269))
494+ else throw("zero income is not allowed")
495+ let v260 = f55(v230, toString(i.caller))
496+ let v261 = valueOrElse(getInteger(this, v260), 0)
497+ if ((toString(i.caller) != v250))
498+ then f13(v250)
499+ else if (!(v256))
500500 then throw("validation failed")
501- else if ((v261 > (height - v274)))
502- then throw((("1 topup per " + toString(v261)) + " blocks from the same address is allowed"))
501+ else if ((v248 > (height - v261)))
502+ then throw((("1 topup per " + toString(v248)) + " blocks from the same address is allowed"))
503503 else {
504- let v275 = f142(v231, v220, v257, v228, v259)._1
505- let v276 = f94("topup", "", v231, v275, v259, 0, v220, v228)
506- let v277 = v276._1
507- let v278 = f28(v231)
508- let v279 = valueOrElse(getInteger(this, v278), 0)
509- (((((([IntegerEntry(f26(v231), v275), IntegerEntry(f33(v231, height, lastBlock.timestamp), v275), IntegerEntry(f30(v231, v268), v275), IntegerEntry(v266, v268), IntegerEntry(v278, if ((v275 > v279))
510- then v275
511- else v279), IntegerEntry(v273, height)] :+ TotalLockedStringEntry("DECREMENT", f36(v231), v277)) :+ f139(v231, 0)) :+ f136(f63(v231), v264, v265)) :+ Burn(v228, v277[v78])) :+ Reissue(v228, -(v277[v81]), true)) ++ (if ((0 > v257))
512- then [ScriptTransfer(i.caller, -(v257), v220)]
504+ let v262 = f142(v230, v219, income, v227, v246)._1
505+ let v263 = f94("topup", "", v230, v262, v246, 0, v219, v227)
506+ let v264 = v263._1
507+ let v265 = f28(v230)
508+ let v266 = valueOrElse(getInteger(this, v265), 0)
509+ (((((([IntegerEntry(f26(v230), v262), IntegerEntry(f33(v230, height, lastBlock.timestamp), v262), IntegerEntry(f30(v230, v255), v262), IntegerEntry(v253, v255), IntegerEntry(v265, if ((v262 > v266))
510+ then v262
511+ else v266), IntegerEntry(v260, height)] :+ TotalLockedStringEntry("DECREMENT", f36(v230), v264)) :+ f139(v230, 0)) :+ f136(f63(v230), v251, v252)) :+ Burn(v227, v264[v78])) :+ Reissue(v227, -(v264[v81]), true)) ++ (if ((0 > income))
512+ then [ScriptTransfer(i.caller, -(income), v219)]
513513 else nil))
514514 }
515515 }
516516
517517
518518
519519 @Callable(i)
520-func currentSysParamsREST (v280) = {
521- let v281 = privateCurrentSysParamsREST(v280)
522- let v282 = v281._1.value
523- let v223 = v281._2.value
524- let v225 = v281._3.value
525- let v283 = v281._4.value
526- let v284 = v281._5.value
527- let v285 = v281._6.value
528- let v286 = v281._7.value
529- let v287 = v281._8.value
530- let v288 = v281._9.value
531- let v289 = v281._10.value
532- let v222 = v281._11.value
533- let v290 = v281._12.value
534- let v291 = v281._13.value
535- let v292 = makeString(["startCurrentSysParamsREST", toString(v282), toString(v223), toString(v225), toString(v283), toString(v284), toString(v285), toString(v286), toString(v287), toString(v288), toString(v289), toString(v222), toString(v290), toString(v291), "endCurrentSysParamsREST"], SEP)
536- throw(v292)
520+func currentSysParamsREST (baseAssetStr) = {
521+ let v267 = privateCurrentSysParamsREST(baseAssetStr)
522+ let v268 = v267._1.value
523+ let v222 = v267._2.value
524+ let v224 = v267._3.value
525+ let v269 = v267._4.value
526+ let v270 = v267._5.value
527+ let v271 = v267._6.value
528+ let v272 = v267._7.value
529+ let v273 = v267._8.value
530+ let v274 = v267._9.value
531+ let v275 = v267._10.value
532+ let v221 = v267._11.value
533+ let v276 = v267._12.value
534+ let v277 = v267._13.value
535+ let v278 = makeString(["startCurrentSysParamsREST", toString(v268), toString(v222), toString(v224), toString(v269), toString(v270), toString(v271), toString(v272), toString(v273), toString(v274), toString(v275), toString(v221), toString(v276), toString(v277), "endCurrentSysParamsREST"], SEP)
536+ throw(v278)
537537 }
538538
539539

github/deemru/w8io/873ac7e 
115.19 ms