tx · JQUSrNwvcpHMkBi1rwd9mRYKvJi3KS2oLTNKoJ6VLzM

3MwwmRTwTh2hpQprGouEAzmDUnjb83PtzVG:  -0.01000000 Waves

2021.08.12 16:35 [1655223] smart account 3MwwmRTwTh2hpQprGouEAzmDUnjb83PtzVG > SELF 0.00000000 Waves

{ "type": 13, "id": "JQUSrNwvcpHMkBi1rwd9mRYKvJi3KS2oLTNKoJ6VLzM", "fee": 1000000, "feeAssetId": null, "timestamp": 1628775327977, "version": 2, "chainId": 84, "sender": "3MwwmRTwTh2hpQprGouEAzmDUnjb83PtzVG", "senderPublicKey": "6pJkrwfWyhZjm3LoQWRjjNVaLt5CQzqfggzXyqr7nrwA", "proofs": [ "5t6dMJZBakMrwhiYu9ZPojjEoWoTodGqY5No66PAg8uuzYv2i4QzC4fpm19bwCq9hvQu32guS4qvyU6kM9y8Umxy" ], "script": "base64:AAIFAAAAAAAAABIIAhIICgYICAgICAESBAoCCAEAAAAXAAAAAANTRVACAAAAAl9fAAAAAApQb29sQWN0aXZlAAAAAAAAAAABAAAAAA9Qb29sUHV0RGlzYWJsZWQAAAAAAAAAAAIAAAAAE1Bvb2xNYXRjaGVyRGlzYWJsZWQAAAAAAAAAAAMAAAAADFBvb2xTaHV0ZG93bgAAAAAAAAAABAAAAAASaWR4SW50ZXJuYWxBc3NldElkAAAAAAAAAAABAAAAAA9pZHhSZXN1dEFjdGlvbnMAAAAAAAAAAAIAAAAAIGlkeElmQXNzZXRJZENhbGN1bGF0aW9uUGVyZm9ybWVkAAAAAAAAAAADAQAAABZrZXlOZXh0SW50ZXJuYWxBc3NldElkAAAAAAIAAAAXJXNfX25leHRJbnRlcm5hbEFzc2V0SWQBAAAAEWtleVBvb2xTY3JpcHRIYXNoAAAAAAIAAAAWJXMlc19fcG9vbF9fc2NyaXB0SGFzaAEAAAAfa2V5TWFwcGluZ3NJbnRlcm5hbDJiYXNlQXNzZXRJZAAAAAEAAAARaW50ZXJuYWxCYXNlQXNzZXQJAAEsAAAAAgIAAAAoJXMlcyVkX19tYXBwaW5nc19faW50ZXJuYWwyYmFzZUFzc2V0SWRfXwkAAaQAAAABBQAAABFpbnRlcm5hbEJhc2VBc3NldAEAAAAfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZAAAAAEAAAAMYmFzZUFzc2V0U3RyCQABLAAAAAICAAAAKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAAAADGJhc2VBc3NldFN0cgEAAAANa2V5UG9vbENvbmZpZwAAAAIAAAATYW1vdW50QXNzZXRJbnRlcm5hbAAAABJwcmljZUFzc2V0SW50ZXJuYWwJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIJWQlZCVzX18FAAAAE2Ftb3VudEFzc2V0SW50ZXJuYWwCAAAAAl9fBQAAABJwcmljZUFzc2V0SW50ZXJuYWwCAAAACF9fY29uZmlnAQAAAB1rZXlNYXBwaW5nTHBBc3NldFRvUG9vbEFzc2V0cwAAAAEAAAAKbHBBc3NldFN0cgkAASwAAAACCQABLAAAAAICAAAACCVzJXMlc19fBQAAAApscEFzc2V0U3RyAgAAABhfX21hcHBpbmdzX19scEFzc2V0MlBvb2wBAAAAHWtleU1hcHBpbmdQb29sQXNzZXRzVG9McGFzc2V0AAAAAgAAABhpbnRlcm5hbEFtb3VudEFzc2V0SWRTdHIAAAAXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAKJWQlZCVzJXNfXwUAAAAYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyAgAAAAJfXwUAAAAXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHICAAAAGF9fbWFwcGluZ3NfX2xwQXNzZXQyUG9vbAEAAAApa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMAAAABAAAAE3Bvb2xDb250cmFjdEFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAAAglcyVzJXNfXwUAAAATcG9vbENvbnRyYWN0QWRkcmVzcwIAAAAgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAAAAKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzAAAAAgAAABhpbnRlcm5hbEFtb3VudEFzc2V0SWRTdHIAAAAXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAKJWQlZCVzJXNfXwkAAaQAAAABBQAAABhpbnRlcm5hbEFtb3VudEFzc2V0SWRTdHICAAAAAl9fCQABpAAAAAEFAAAAF2ludGVybmFsUHJpY2VBc3NldElkU3RyAgAAACBfX21hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkJAAEsAAAAAgIAAAAVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQAAAANrZXkBAAAAEGdldEJvb2xlYW5PckZhaWwAAAABAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQkAASwAAAACAgAAABVObyBkYXRhIGZvciB0aGlzLmtleT0FAAAAA2tleQEAAAAMZ2V0SW50T3JGYWlsAAAAAQAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkJAAEsAAAAAgIAAAAVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQAAAANrZXkBAAAAC2RhdGFQb29sQ2ZnAAAACgAAAAtwb29sQWRkcmVzcwAAAApwb29sU3RhdHVzAAAACWxwQXNzZXRJZAAAAA5hbW91bnRBc3NldFN0cgAAAA1wcmljZUFzc2V0U3RyAAAAE2Ftb3VudEFzc2V0RGVjaW1hbHMAAAAScHJpY2VBc3NldERlY2ltYWxzAAAAFWFtb3VudEFzc2V0SW50ZXJuYWxJZAAAABRwcmljZUFzc2V0SW50ZXJuYWxJZAAAAApwb29sV2VpZ2h0CQAEuQAAAAIJAARMAAAAAgIAAAAWJXMlZCVzJXMlcyVkJWQlZCVkJWQlZAkABEwAAAACBQAAAAtwb29sQWRkcmVzcwkABEwAAAACBQAAAApwb29sU3RhdHVzCQAETAAAAAIFAAAACWxwQXNzZXRJZAkABEwAAAACBQAAAA5hbW91bnRBc3NldFN0cgkABEwAAAACBQAAAA1wcmljZUFzc2V0U3RyCQAETAAAAAIJAAGkAAAAAQUAAAATYW1vdW50QXNzZXREZWNpbWFscwkABEwAAAACCQABpAAAAAEFAAAAEnByaWNlQXNzZXREZWNpbWFscwkABEwAAAACCQABpAAAAAEFAAAAFWFtb3VudEFzc2V0SW50ZXJuYWxJZAkABEwAAAACCQABpAAAAAEFAAAAFHByaWNlQXNzZXRJbnRlcm5hbElkCQAETAAAAAIJAAGkAAAAAQUAAAAKcG9vbFdlaWdodAUAAAADbmlsBQAAAANTRVABAAAAFWRhdGFNYXBwaW5nUG9vbEFzc2V0cwAAAAIAAAAWaW50ZXJuYWxBbW91bnRBc3NldFN0cgAAABVpbnRlcm5hbFByaWNlQXNzZXRTdHIJAAS5AAAAAgkABEwAAAACAgAAAAQlZCVkCQAETAAAAAIJAAGkAAAAAQUAAAAWaW50ZXJuYWxBbW91bnRBc3NldFN0cgkABEwAAAACCQABpAAAAAEFAAAAFWludGVybmFsUHJpY2VBc3NldFN0cgUAAAADbmlsBQAAAANTRVABAAAAGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlAAAAAgAAAAphc3NldElkU3RyAAAAC2luY3JlbWVudG9yBAAAAA9pbnRlcm5hbEFzc2V0SWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQAAAABBQAAAAphc3NldElkU3RyAAAAAAAAAAAABAAAABhjdXJyZW50SW5kZXhPZkludGVybmFsSWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAFmtleU5leHRJbnRlcm5hbEFzc2V0SWQAAAAAAAAAAAAAAAAABAAAAAZyZXN1bHQDCQAAAAAAAAIFAAAAD2ludGVybmFsQXNzZXRJZAAAAAAAAAAAAAQAAAASbmV3SW50ZXJuYWxBc3NldElkCQAAZAAAAAIFAAAAGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZAUAAAALaW5jcmVtZW50b3IJAAUVAAAAAwUAAAASbmV3SW50ZXJuYWxBc3NldElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAWa2V5TmV4dEludGVybmFsQXNzZXRJZAAAAAAFAAAAEm5ld0ludGVybmFsQXNzZXRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQAAAABBQAAAAphc3NldElkU3RyBQAAABJuZXdJbnRlcm5hbEFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQAAAABBQAAABJuZXdJbnRlcm5hbEFzc2V0SWQFAAAACmFzc2V0SWRTdHIFAAAAA25pbAYJAAUVAAAAAwUAAAAPaW50ZXJuYWxBc3NldElkBQAAAANuaWwHBQAAAAZyZXN1bHQAAAACAAAAAWkBAAAAD2FjdGl2YXRlTmV3UG9vbAAAAAYAAAALcG9vbEFkZHJlc3MAAAAOYW1vdW50QXNzZXRTdHIAAAANcHJpY2VBc3NldFN0cgAAAAtscEFzc2V0TmFtZQAAAAxscEFzc2V0RGVzY3IAAAAKcG9vbFdlaWdodAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABJwZXJtaXNzaW9ucyBkZW5pZWQDCQEAAAAJaXNEZWZpbmVkAAAAAQkABCIAAAABCQEAAAApa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMAAAABBQAAAAtwb29sQWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAANUG9vbCBhZGRyZXNzIAUAAAALcG9vbEFkZHJlc3MCAAAAFCBhbHJlYWR5IHJlZ2lzdGVyZWQuBAAAABdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YQkBAAAAGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlAAAAAgUAAAAOYW1vdW50QXNzZXRTdHIAAAAAAAAAAAEEAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAgFAAAAF2ludGVybmFsQW1vdW50QXNzZXREYXRhAAAAAl8xBAAAABZpbnRlcm5hbFByaWNlQXNzZXREYXRhCQEAAAAaZ2V0SW50ZXJuYWxBc3NldElkT3JDcmVhdGUAAAACBQAAAA1wcmljZUFzc2V0U3RyAwgFAAAAF2ludGVybmFsQW1vdW50QXNzZXREYXRhAAAAAl8zAAAAAAAAAAACAAAAAAAAAAABBAAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAgFAAAAFmludGVybmFsUHJpY2VBc3NldERhdGEAAAACXzEEAAAAFXBvb2xBY2NvdW50U2NyaXB0SGFzaAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD8QAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3Bvb2xBZGRyZXNzCQABLAAAAAICAAAAKU5vIHNjcmlwdCBoYXMgYmVlbiBmb3VuZCBvbiBwb29sIGFjY291bnQgBQAAAAtwb29sQWRkcmVzcwQAAAAcZXRoYWxvblBvb2xBY2NvdW50U2NyaXB0SGFzaAkBAAAAEUBleHRyTmF0aXZlKDEwNTcpAAAAAQkBAAAAEWtleVBvb2xTY3JpcHRIYXNoAAAAAAQAAAAKcG9vbENvbmZpZwkABB0AAAACBQAAAAR0aGlzCQEAAAANa2V5UG9vbENvbmZpZwAAAAIJAAGkAAAAAQUAAAAVaW50ZXJuYWxBbW91bnRBc3NldElkCQABpAAAAAEFAAAAFGludGVybmFsUHJpY2VBc3NldElkAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAACnBvb2xDb25maWcJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAVQb29sIAUAAAAOYW1vdW50QXNzZXRTdHICAAAAAS8FAAAADXByaWNlQXNzZXRTdHICAAAAHCBoYXMgYWxyZWFkeSBiZWVuIGFjdGl2YXRlZC4EAAAAD3Bvb2xDb25maWdWYWx1ZQkBAAAABXZhbHVlAAAAAQkABB0AAAACBQAAAAR0aGlzCQEAAAANa2V5UG9vbENvbmZpZwAAAAIJAAGkAAAAAQUAAAAVaW50ZXJuYWxBbW91bnRBc3NldElkCQABpAAAAAEFAAAAFGludGVybmFsUHJpY2VBc3NldElkBAAAABhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQJAAP8AAAABAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALcG9vbEFkZHJlc3MCAAAACGFjdGl2YXRlCQAETAAAAAIFAAAADmFtb3VudEFzc2V0U3RyCQAETAAAAAIFAAAADXByaWNlQXNzZXRTdHIJAARMAAAAAgUAAAALbHBBc3NldE5hbWUJAARMAAAAAgUAAAAMbHBBc3NldERlc2NyCQAETAAAAAIFAAAACnBvb2xXZWlnaHQFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAABhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQFAAAAGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdAQAAAAMbHBBc3NldElkU3RyCQEAAAALdmFsdWVPckVsc2UAAAACBQAAABhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQCAAAAAAMJAAAAAAAAAgUAAAAMbHBBc3NldElkU3RyAgAAAAAJAAACAAAAAQIAAAAvRmFpbHVyZSBkdXJpbmcgZGFwcDJkYXBwIGNhbGwgYWN0aXZhdGUgb24gUG9vbC4EAAAAFGFtb3VudEFzc2V0c0RlY2ltYWxzAwkAAAAAAAACBQAAAA5hbW91bnRBc3NldFN0cgIAAAAAAAAAAAAAAAAICAkBAAAABXZhbHVlAAAAAQkAA+wAAAABCQACWQAAAAEFAAAADmFtb3VudEFzc2V0U3RyAAAACGRlY2ltYWxzBAAAABNwcmljZUFzc2V0c0RlY2ltYWxzCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABCQACWQAAAAEFAAAADXByaWNlQXNzZXRTdHIAAAAIZGVjaW1hbHMJAAUUAAAAAgkABE4AAAACCQAETgAAAAIIBQAAABdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YQAAAAJfMggFAAAAFmludGVybmFsUHJpY2VBc3NldERhdGEAAAACXzIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWtleVBvb2xDb25maWcAAAACCQABpAAAAAEFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAkAAaQAAAABBQAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAkBAAAAC2RhdGFQb29sQ2ZnAAAACgUAAAALcG9vbEFkZHJlc3MJAAGkAAAAAQUAAAAKUG9vbEFjdGl2ZQUAAAAMbHBBc3NldElkU3RyBQAAAA5hbW91bnRBc3NldFN0cgUAAAANcHJpY2VBc3NldFN0cgUAAAAUYW1vdW50QXNzZXRzRGVjaW1hbHMFAAAAE3ByaWNlQXNzZXRzRGVjaW1hbHMFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAUAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQFAAAACnBvb2xXZWlnaHQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAHWtleU1hcHBpbmdMcEFzc2V0VG9Qb29sQXNzZXRzAAAAAQUAAAAMbHBBc3NldElkU3RyCQEAAAAVZGF0YU1hcHBpbmdQb29sQXNzZXRzAAAAAgUAAAAVaW50ZXJuYWxBbW91bnRBc3NldElkBQAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAda2V5TWFwcGluZ1Bvb2xBc3NldHNUb0xwYXNzZXQAAAACCQABpAAAAAEFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAkAAaQAAAABBQAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAkAASwAAAACAgAAAAQlc19fBQAAAAxscEFzc2V0SWRTdHIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzAAAAAQUAAAALcG9vbEFkZHJlc3MJAQAAABVkYXRhTWFwcGluZ1Bvb2xBc3NldHMAAAACBQAAABVpbnRlcm5hbEFtb3VudEFzc2V0SWQFAAAAFGludGVybmFsUHJpY2VBc3NldElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAClrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcwAAAAIFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAUAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQJAAEsAAAAAgIAAAAEJXNfXwUAAAALcG9vbEFkZHJlc3MFAAAAA25pbAIAAAAHc3VjY2VzcwkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAKbWFuYWdlUG9vbAAAAAIAAAARbHBDb250cmFjdEFkZHJlc3MAAAAJbmV3U3RhdHVzAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAEnBlcm1pc3Npb25zIGRlbmllZAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXldMQtc", "height": 1655223, "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 SEP = "__"
5+
6+let PoolActive = 1
7+
8+let PoolPutDisabled = 2
9+
10+let PoolMatcherDisabled = 3
11+
12+let PoolShutdown = 4
13+
14+let idxInternalAssetId = 1
15+
16+let idxResutActions = 2
17+
18+let idxIfAssetIdCalculationPerformed = 3
19+
20+func keyNextInternalAssetId () = "%s__nextInternalAssetId"
21+
22+
23+func keyPoolScriptHash () = "%s%s__pool__scriptHash"
24+
25+
26+func keyMappingsInternal2baseAssetId (internalBaseAsset) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(internalBaseAsset))
27+
28+
29+func keyMappingsBaseAsset2internalId (baseAssetStr) = ("%s%s%s__mappings__baseAsset2internalId__" + baseAssetStr)
30+
31+
32+func keyPoolConfig (amountAssetInternal,priceAssetInternal) = (((("%d%d%s__" + amountAssetInternal) + "__") + priceAssetInternal) + "__config")
33+
34+
35+func keyMappingLpAssetToPoolAssets (lpAssetStr) = (("%s%s%s__" + lpAssetStr) + "__mappings__lpAsset2Pool")
36+
37+
38+func keyMappingPoolAssetsToLpasset (internalAmountAssetIdStr,internalPriceAssetIdStr) = (((("%d%d%s%s__" + internalAmountAssetIdStr) + "__") + internalPriceAssetIdStr) + "__mappings__lpAsset2Pool")
39+
40+
41+func keyMappingPoolContractAddressToPoolAssets (poolContractAddress) = (("%s%s%s__" + poolContractAddress) + "__mappings__poolContract2LpAsset")
42+
43+
44+func keyMappingPoolAssetsToPoolContractAddress (internalAmountAssetIdStr,internalPriceAssetIdStr) = (((("%d%d%s%s__" + toString(internalAmountAssetIdStr)) + "__") + toString(internalPriceAssetIdStr)) + "__mappings__lpAsset2PoolContract")
45+
46+
47+func getStringOrFail (key) = valueOrErrorMessage(getString(this, key), ("No data for this.key=" + key))
48+
49+
50+func getBooleanOrFail (key) = valueOrErrorMessage(getBoolean(this, key), ("No data for this.key=" + key))
51+
52+
53+func getIntOrFail (key) = valueOrErrorMessage(getInteger(this, key), ("No data for this.key=" + key))
54+
55+
56+func dataPoolCfg (poolAddress,poolStatus,lpAssetId,amountAssetStr,priceAssetStr,amountAssetDecimals,priceAssetDecimals,amountAssetInternalId,priceAssetInternalId,poolWeight) = makeString(["%s%d%s%s%s%d%d%d%d%d%d", poolAddress, poolStatus, lpAssetId, amountAssetStr, priceAssetStr, toString(amountAssetDecimals), toString(priceAssetDecimals), toString(amountAssetInternalId), toString(priceAssetInternalId), toString(poolWeight)], SEP)
57+
58+
59+func dataMappingPoolAssets (internalAmountAssetStr,internalPriceAssetStr) = makeString(["%d%d", toString(internalAmountAssetStr), toString(internalPriceAssetStr)], SEP)
60+
61+
62+func getInternalAssetIdOrCreate (assetIdStr,incrementor) = {
63+ let internalAssetId = valueOrElse(getInteger(this, keyMappingsBaseAsset2internalId(assetIdStr)), 0)
64+ let currentIndexOfInternalId = valueOrElse(getInteger(this, keyNextInternalAssetId()), 0)
65+ let result = if ((internalAssetId == 0))
66+ then {
67+ let newInternalAssetId = (currentIndexOfInternalId + incrementor)
68+ $Tuple3(newInternalAssetId, [IntegerEntry(keyNextInternalAssetId(), newInternalAssetId), IntegerEntry(keyMappingsBaseAsset2internalId(assetIdStr), newInternalAssetId), StringEntry(keyMappingsInternal2baseAssetId(newInternalAssetId), assetIdStr)], true)
69+ }
70+ else $Tuple3(internalAssetId, nil, false)
71+ result
72+ }
73+
74+
75+@Callable(i)
76+func activateNewPool (poolAddress,amountAssetStr,priceAssetStr,lpAssetName,lpAssetDescr,poolWeight) = if ((i.caller != this))
77+ then throw("permissions denied")
78+ else if (isDefined(getString(keyMappingPoolContractAddressToPoolAssets(poolAddress))))
79+ then throw((("Pool address " + poolAddress) + " already registered."))
80+ else {
81+ let internalAmountAssetData = getInternalAssetIdOrCreate(amountAssetStr, 1)
82+ let internalAmountAssetId = internalAmountAssetData._1
83+ let internalPriceAssetData = getInternalAssetIdOrCreate(priceAssetStr, if (internalAmountAssetData._3)
84+ then 2
85+ else 1)
86+ let internalPriceAssetId = internalPriceAssetData._1
87+ let poolAccountScriptHash = valueOrErrorMessage(scriptHash(addressFromStringValue(poolAddress)), ("No script has been found on pool account " + poolAddress))
88+ let ethalonPoolAccountScriptHash = getBinaryValue(keyPoolScriptHash())
89+ let poolConfig = getString(this, keyPoolConfig(toString(internalAmountAssetId), toString(internalPriceAssetId)))
90+ if (isDefined(poolConfig))
91+ then throw((((("Pool " + amountAssetStr) + "/") + priceAssetStr) + " has already been activated."))
92+ else {
93+ let poolConfigValue = value(getString(this, keyPoolConfig(toString(internalAmountAssetId), toString(internalPriceAssetId))))
94+ let poolActivateInvokeResult = invoke(addressFromStringValue(poolAddress), "activate", [amountAssetStr, priceAssetStr, lpAssetName, lpAssetDescr, poolWeight], nil)
95+ if ((poolActivateInvokeResult == poolActivateInvokeResult))
96+ then {
97+ let lpAssetIdStr = valueOrElse(poolActivateInvokeResult, "")
98+ if ((lpAssetIdStr == ""))
99+ then throw("Failure during dapp2dapp call activate on Pool.")
100+ else {
101+ let amountAssetsDecimals = if ((amountAssetStr == ""))
102+ then 8
103+ else value(assetInfo(fromBase58String(amountAssetStr))).decimals
104+ let priceAssetsDecimals = value(assetInfo(fromBase58String(priceAssetStr))).decimals
105+ $Tuple2(((internalAmountAssetData._2 ++ internalPriceAssetData._2) ++ [StringEntry(keyPoolConfig(toString(internalAmountAssetId), toString(internalPriceAssetId)), dataPoolCfg(poolAddress, toString(PoolActive), lpAssetIdStr, amountAssetStr, priceAssetStr, amountAssetsDecimals, priceAssetsDecimals, internalAmountAssetId, internalPriceAssetId, poolWeight)), StringEntry(keyMappingLpAssetToPoolAssets(lpAssetIdStr), dataMappingPoolAssets(internalAmountAssetId, internalPriceAssetId)), StringEntry(keyMappingPoolAssetsToLpasset(toString(internalAmountAssetId), toString(internalPriceAssetId)), ("%s__" + lpAssetIdStr)), StringEntry(keyMappingPoolContractAddressToPoolAssets(poolAddress), dataMappingPoolAssets(internalAmountAssetId, internalPriceAssetId)), StringEntry(keyMappingPoolAssetsToPoolContractAddress(internalAmountAssetId, internalPriceAssetId), ("%s__" + poolAddress))]), "success")
106+ }
107+ }
108+ else throw("Strict value is not equal to itself.")
109+ }
110+ }
111+
112+
113+
114+@Callable(i)
115+func managePool (lpContractAddress,newStatus) = if ((i.caller != this))
116+ then throw("permissions denied")
117+ else nil
118+
119+
120+@Verifier(tx)
121+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
122+

github/deemru/w8io/169f3d6 
17.52 ms