tx · Hk8i78DkPuAYwsn2dyJ6oxqZhWvHPpqdaSUM2gdFc7EU 3PNze6jf5ZvScSj1cmiq34Jby825MV49gR3: -0.01000000 Waves 2021.07.08 13:32 [2669288] smart account 3PNze6jf5ZvScSj1cmiq34Jby825MV49gR3 > SELF 0.00000000 Waves
{ "type": 13, "id": "Hk8i78DkPuAYwsn2dyJ6oxqZhWvHPpqdaSUM2gdFc7EU", "fee": 1000000, "feeAssetId": null, "timestamp": 1625740377228, "version": 1, "sender": "3PNze6jf5ZvScSj1cmiq34Jby825MV49gR3", "senderPublicKey": "2LTH2FED81uaJjvBKDdpcdgE78Xv26Fs33Yc3Kmz8dih", "proofs": [ "54qVTbTE3SjeF6sEUKy3uvAih3gF2tAnhzbMHwYxCNYQ9ZwMM5ibKw6DzuAJpxQm7nUnqnDrDzP4Z82ugvkxWrRc" ], "script": "base64:AAIFAAAAAAAAAAgIAhIECgIIAQAAAAYAAAAABUhFQURLAgAAAAtoZWFkUG9pbnRlcgAAAAAHUkVCSURYSwIAAAAVbGFzdFNldHRsZW1lbnRQcmljZUlkAAAAAANNQVgAf/////////8BAAAAA2ludgAAAAEAAAAHYWRkcmVzcwQAAAACYTEJAAP8AAAABAUAAAAHYWRkcmVzcwIAAAAHc2V0dGxlMwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAAmExBQAAAAJhMQQAAAACYTIJAAP8AAAABAUAAAAHYWRkcmVzcwIAAAAHc2V0dGxlMwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAAmEyBQAAAAJhMgQAAAACYTMJAAP8AAAABAUAAAAHYWRkcmVzcwIAAAAHc2V0dGxlMwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAAmEzBQAAAAJhMwQAAAACYTQJAAP8AAAABAUAAAAHYWRkcmVzcwIAAAAHc2V0dGxlMwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAAmE0BQAAAAJhNAQAAAACYTUJAAP8AAAABAUAAAAHYWRkcmVzcwIAAAAHc2V0dGxlMwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAAmE1BQAAAAJhNQQAAAACYTYJAAP8AAAABAUAAAAHYWRkcmVzcwIAAAAHc2V0dGxlMwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAAmE2BQAAAAJhNgAAAAAAAAAAAAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEAAAAGY29tbW9uAAAAAQAAAARkYXBwBAAAAAdhZGRyZXNzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQUAAAAEZGFwcAIAAAAdcGFjZXdyYXBwZXI6IGJhZCBkYXBwIGFkZHJlc3MEAAAACG9yYWNsZXYyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAHYWRkcmVzcwIAAAAIb3JhY2xldjICAAAAHHBhY2V3cmFwcGVyOiBubyBvcmFjbGV2MiBrZXkEAAAABm9yYWNsZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEFAAAACG9yYWNsZXYyAgAAAB9wYWNld3JhcHBlcjogYmFkIG9yYWNsZSBhZGRyZXNzBAAAAAlhc3NldGlkdjIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAdhZGRyZXNzAgAAAAlhc3NldGlkdjICAAAADG5vIGFzc2V0aWR2MgQAAAARbGFzdFByaWNlSW5kZXhLZXkJAAEsAAAAAgIAAAASJXMlc19faWR4Q3VycmVudF9fBQAAAAlhc3NldGlkdjIEAAAAEXNldHRsZWRQcmljZUluZGV4CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAAHUkVCSURYSwIAAAAXbm8gbGFzdCByZWJhbGFuY2UgcHJpY2UEAAAAEG9yYWNsZVByaWNlSW5kZXgJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAZvcmFjbGUFAAAAEWxhc3RQcmljZUluZGV4S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAACBwYWNld3JhcHBlcjogYmFkIG9yYWNsZSBkYXRhIGF0IAkABCUAAAABBQAAAAZvcmFjbGUCAAAAEDogbm8gaW50ZWdlciBhdCAFAAAAEWxhc3RQcmljZUluZGV4S2V5BAAAABFyZXF1ZXN0UHJpY2VJbmRleAQAAAALaGVhZFBvaW50ZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAAFSEVBREsCAAAAAAMJAAAAAAAAAgUAAAALaGVhZFBvaW50ZXICAAAAAAUAAAADTUFYBAAAAARkYXRhCQAEtQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAAB2FkZHJlc3MFAAAAC2hlYWRQb2ludGVyAgAAAAF8BAAAAANycGkJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAARkYXRhAAAAAAAAAAADBQAAAANycGkEAAAAFmhhc1Byb2Nlc3NhYmxlUmVxdWVzdHMJAABnAAAAAgUAAAAQb3JhY2xlUHJpY2VJbmRleAUAAAARcmVxdWVzdFByaWNlSW5kZXgJAAUXAAAABQUAAAAHYWRkcmVzcwUAAAARc2V0dGxlZFByaWNlSW5kZXgFAAAAEG9yYWNsZVByaWNlSW5kZXgFAAAAEXJlcXVlc3RQcmljZUluZGV4BQAAABZoYXNQcm9jZXNzYWJsZVJlcXVlc3RzAQAAAAZhZHZpc2UAAAABAAAABGRhcHAEAAAACyR0MDE4OTUyMDUyCQEAAAAGY29tbW9uAAAAAQUAAAAEZGFwcAMJAAAAAAAAAgUAAAALJHQwMTg5NTIwNTIFAAAACyR0MDE4OTUyMDUyBAAAABZoYXNQcm9jZXNzYWJsZVJlcXVlc3RzCAUAAAALJHQwMTg5NTIwNTIAAAACXzUEAAAAEXJlcXVlc3RQcmljZUluZGV4CAUAAAALJHQwMTg5NTIwNTIAAAACXzQEAAAAEG9yYWNsZVByaWNlSW5kZXgIBQAAAAskdDAxODk1MjA1MgAAAAJfMwQAAAARc2V0dGxlZFByaWNlSW5kZXgIBQAAAAskdDAxODk1MjA1MgAAAAJfMgQAAAAHYWRkcmVzcwgFAAAACyR0MDE4OTUyMDUyAAAAAl8xBAAAAAVCVUxMSwIAAAAGQlVMTElkBAAAAAVCRUFSSwIAAAAGQkVBUklkBAAAAAlQT09MVVNETksCAAAAEnBvb2xNYWluVG9rZW5WYWx1ZQQAAAAHUE9PTFVQSwIAAAAGcG9vbFVwBAAAAAhQT09MRFdOSwIAAAAHcG9vbER3bgQAAAAIQlVMTENPTEsCAAAADmJ1bGxDb2xsYXRlcmFsBAAAAAhCRUFSQ09MSwIAAAAOYmVhckNvbGxhdGVyYWwEAAAACUJVTExDSVJDSwIAAAAPYnVsbENpcmN1bGF0aW9uBAAAAAlCRUFSQ0lSQ0sCAAAAD2JlYXJDaXJjdWxhdGlvbgQAAAAEQlVMTAkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAHYWRkcmVzcwUAAAAFQlVMTEsEAAAABEJFQVIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAAB2FkZHJlc3MFAAAABUJFQVJLBAAAAAhwb29sTWFpbgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAHYWRkcmVzcwUAAAAJUE9PTFVTRE5LBAAAAAZwb29sVXAJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAB2FkZHJlc3MFAAAAB1BPT0xVUEsEAAAAB3Bvb2xEd24JAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAB2FkZHJlc3MFAAAACFBPT0xEV05LBAAAAAdidWxsQ29sCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAdhZGRyZXNzBQAAAAhCVUxMQ09MSwQAAAAHYmVhckNvbAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAHYWRkcmVzcwUAAAAIQkVBUkNPTEsEAAAACGJ1bGxDaXJjCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAdhZGRyZXNzBQAAAAlCVUxMQ0lSQ0sEAAAACGJlYXJDaXJjCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAdhZGRyZXNzBQAAAAlCRUFSQ0lSQ0sEAAAAEHBvb2xCdWxsRXhwb3N1cmUJAABrAAAAAwUAAAAHYnVsbENvbAUAAAAGcG9vbFVwBQAAAAhidWxsQ2lyYwQAAAAQcG9vbEJlYXJFeHBvc3VyZQkAAGsAAAADBQAAAAdiZWFyQ29sBQAAAAdwb29sRHduBQAAAAhiZWFyQ2lyYwQAAAAJcG9vbFZhbHVlCQAAZAAAAAIJAABkAAAAAgUAAAAIcG9vbE1haW4FAAAAEHBvb2xCdWxsRXhwb3N1cmUFAAAAEHBvb2xCZWFyRXhwb3N1cmUKAQAAAAdkaWZmQWJzAAAAAgAAAAJhMQAAAAJhMgQAAAAEZGlmZgkAAGUAAAACBQAAAAJhMQUAAAACYTIDCQAAZgAAAAIFAAAABGRpZmYAAAAAAAAAAAAFAAAABGRpZmYJAABlAAAAAgAAAAAAAAAAAAUAAAAEZGlmZgoBAAAAC3VzZXJEaWZmQWJzAAAAAAkBAAAAB2RpZmZBYnMAAAACCQAAZQAAAAIFAAAAB2J1bGxDb2wFAAAAEHBvb2xCdWxsRXhwb3N1cmUJAABlAAAAAgUAAAAHYmVhckNvbAUAAAAQcG9vbEJlYXJFeHBvc3VyZQoBAAAACG1heElzc3VlAAAAAQAAAAd0b2tlbklkBAAAAA5wb29sSW52ZXN0bWVudAMJAABmAAAAAgUAAAAGcG9vbFVwAAAAAAAAAAAABQAAAARCVUxMBQAAAARCRUFSAwkBAAAAAiE9AAAAAgUAAAAHdG9rZW5JZAUAAAAOcG9vbEludmVzdG1lbnQFAAAACHBvb2xNYWluCQAAZAAAAAIJAQAAAAt1c2VyRGlmZkFicwAAAAAFAAAACXBvb2xWYWx1ZQQAAAAFYmFzaWMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAdkYXBwID0gBQAAAARkYXBwAgAAABosIGN1cnJlbnRCdWxsQ29sbGF0ZXJhbCA9IAkAAaQAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAdhZGRyZXNzAgAAAA5idWxsQ29sbGF0ZXJhbAIAAAAaLCBjdXJyZW50QmVhckNvbGxhdGVyYWwgPSAJAAGkAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAHYWRkcmVzcwIAAAAOYmVhckNvbGxhdGVyYWwCAAAAGywgY3VycmVudEJ1bGxDaXJjdWxhdGlvbiA9IAkAAaQAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAdhZGRyZXNzAgAAAA9idWxsQ2lyY3VsYXRpb24CAAAAGywgY3VycmVudEJlYXJDaXJjdWxhdGlvbiA9IAkAAaQAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAdhZGRyZXNzAgAAAA9iZWFyQ2lyY3VsYXRpb24CAAAAFiwgc2V0dGxlZFByaWNlSW5kZXggPSAJAAGkAAAAAQUAAAARc2V0dGxlZFByaWNlSW5kZXgCAAAAFSwgb3JhY2xlUHJpY2VJbmRleCA9IAkAAaQAAAABBQAAABBvcmFjbGVQcmljZUluZGV4AgAAABYsIHJlcXVlc3RQcmljZUluZGV4ID0gCQABpAAAAAEDCQAAAAAAAAIFAAAAEXJlcXVlc3RQcmljZUluZGV4BQAAAANNQVgA//////////8FAAAAEXJlcXVlc3RQcmljZUluZGV4AgAAABssIGhhc1Byb2Nlc3NhYmxlUmVxdWVzdHMgPSADBQAAABZoYXNQcm9jZXNzYWJsZVJlcXVlc3RzAgAAAAR0cnVlAgAAAAVmYWxzZQMJAAAAAAAAAgUAAAAFYmFzaWMFAAAABWJhc2ljBAAAAANyZXMJAQAAAANpbnYAAAABBQAAAAdhZGRyZXNzAwkAAAAAAAACBQAAAANyZXMFAAAAA3JlcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAFYmFzaWMCAAAAHCwgcHJvamVjdGVkQnVsbENvbGxhdGVyYWwgPSAJAAGkAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAHYWRkcmVzcwIAAAAOYnVsbENvbGxhdGVyYWwCAAAAHCwgcHJvamVjdGVkQmVhckNvbGxhdGVyYWwgPSAJAAGkAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAHYWRkcmVzcwIAAAAOYmVhckNvbGxhdGVyYWwCAAAAHSwgcHJvamVjdGVkQnVsbENpcmN1bGF0aW9uID0gCQABpAAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAB2FkZHJlc3MCAAAAD2J1bGxDaXJjdWxhdGlvbgIAAAAdLCBwcm9qZWN0ZWRCZWFyQ2lyY3VsYXRpb24gPSAJAAGkAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAHYWRkcmVzcwIAAAAPYmVhckNpcmN1bGF0aW9uAgAAABEsIG1heElzc3VlQnVsbCA9IAkAAaQAAAABCQEAAAAIbWF4SXNzdWUAAAABBQAAAARCVUxMAgAAABEsIG1heElzc3VlQmVhciA9IAkAAaQAAAABCQEAAAAIbWF4SXNzdWUAAAABBQAAAARCRUFSCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAFpAQAAAAlzZXR0bGVBbGwAAAACAAAABGRhcHAAAAAPbWluUHJpY2VBZHZhbmNlBAAAAAskdDA0ODYxNDk2OQkBAAAABmNvbW1vbgAAAAEFAAAABGRhcHAEAAAAB2FkZHJlc3MIBQAAAAskdDA0ODYxNDk2OQAAAAJfMQQAAAARc2V0dGxlZFByaWNlSW5kZXgIBQAAAAskdDA0ODYxNDk2OQAAAAJfMgQAAAAQb3JhY2xlUHJpY2VJbmRleAgFAAAACyR0MDQ4NjE0OTY5AAAAAl8zBAAAABFyZXF1ZXN0UHJpY2VJbmRleAgFAAAACyR0MDQ4NjE0OTY5AAAAAl80BAAAABZoYXNQcm9jZXNzYWJsZVJlcXVlc3RzCAUAAAALJHQwNDg2MTQ5NjkAAAACXzUDAwUAAAAWaGFzUHJvY2Vzc2FibGVSZXF1ZXN0cwYJAABnAAAAAgkAAGUAAAACBQAAABBvcmFjbGVQcmljZUluZGV4BQAAABFzZXR0bGVkUHJpY2VJbmRleAUAAAAPbWluUHJpY2VBZHZhbmNlBAAAAARyZXMxCQEAAAADaW52AAAAAQUAAAAHYWRkcmVzcwMJAAAAAAAAAgUAAAAEcmVzMQUAAAAEcmVzMQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAABOW09LXSBubyBhY3Rpb25zIHF1ZXVlIGFuZCBwcmljZSBxdWV1ZShvcmFjbGVQcmljZUluZGV4IC0gc2V0dGxlZFByaWNlSW5kZXgpID0gCQABpAAAAAEJAABlAAAAAgUAAAAQb3JhY2xlUHJpY2VJbmRleAUAAAARc2V0dGxlZFByaWNlSW5kZXgCAAAACiB0b28gc21hbGwAAAAAIrQDQw==", "chainId": 87, "height": 2669288, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3SH3KUiykeKWPR2BsSMEjNbMYENbMRNZgwE1rarL9YBK Next: DwxXKDAM311dFP9R14zWZYnhFX6VN1cLQq7m63Z13kjh Diff:
Old | New | Differences | |
---|---|---|---|
120 | 120 | then { | |
121 | 121 | let res = inv(address) | |
122 | 122 | if ((res == res)) | |
123 | - | then { | |
124 | - | let stateR = invoke(address, "state", nil, nil) | |
125 | - | if ((stateR == stateR)) | |
126 | - | then { | |
127 | - | let state = match stateR { | |
128 | - | case s: String => | |
129 | - | s | |
130 | - | case _ => | |
131 | - | throw("unexpected") | |
132 | - | } | |
133 | - | ((((((((((((basic + ", projectedBullCollateral = ") + toString(getIntegerValue(address, "bullCollateral"))) + ", projectedBearCollateral = ") + toString(getIntegerValue(address, "bearCollateral"))) + ", projectedBullCirculation = ") + toString(getIntegerValue(address, "bullCirculation"))) + ", projectedBearCirculation = ") + toString(getIntegerValue(address, "bearCirculation"))) + ", maxIssueBull = ") + toString(maxIssue(BULL))) + ", maxIssueBear = ") + toString(maxIssue(BEAR))) | |
134 | - | } | |
135 | - | else throw("Strict value is not equal to itself.") | |
136 | - | } | |
123 | + | then ((((((((((((basic + ", projectedBullCollateral = ") + toString(getIntegerValue(address, "bullCollateral"))) + ", projectedBearCollateral = ") + toString(getIntegerValue(address, "bearCollateral"))) + ", projectedBullCirculation = ") + toString(getIntegerValue(address, "bullCirculation"))) + ", projectedBearCirculation = ") + toString(getIntegerValue(address, "bearCirculation"))) + ", maxIssueBull = ") + toString(maxIssue(BULL))) + ", maxIssueBear = ") + toString(maxIssue(BEAR))) | |
137 | 124 | else throw("Strict value is not equal to itself.") | |
138 | 125 | } | |
139 | 126 | else throw("Strict value is not equal to itself.") | |
144 | 131 | ||
145 | 132 | @Callable(i) | |
146 | 133 | func settleAll (dapp,minPriceAdvance) = { | |
147 | - | let $ | |
148 | - | let address = $ | |
149 | - | let settledPriceIndex = $ | |
150 | - | let oraclePriceIndex = $ | |
151 | - | let requestPriceIndex = $ | |
152 | - | let hasProcessableRequests = $ | |
134 | + | let $t048614969 = common(dapp) | |
135 | + | let address = $t048614969._1 | |
136 | + | let settledPriceIndex = $t048614969._2 | |
137 | + | let oraclePriceIndex = $t048614969._3 | |
138 | + | let requestPriceIndex = $t048614969._4 | |
139 | + | let hasProcessableRequests = $t048614969._5 | |
153 | 140 | if (if (hasProcessableRequests) | |
154 | 141 | then true | |
155 | 142 | else ((oraclePriceIndex - settledPriceIndex) >= minPriceAdvance)) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let HEADK = "headPointer" | |
5 | 5 | ||
6 | 6 | let REBIDXK = "lastSettlementPriceId" | |
7 | 7 | ||
8 | 8 | let MAX = 9223372036854775807 | |
9 | 9 | ||
10 | 10 | func inv (address) = { | |
11 | 11 | let a1 = invoke(address, "settle3", nil, nil) | |
12 | 12 | if ((a1 == a1)) | |
13 | 13 | then { | |
14 | 14 | let a2 = invoke(address, "settle3", nil, nil) | |
15 | 15 | if ((a2 == a2)) | |
16 | 16 | then { | |
17 | 17 | let a3 = invoke(address, "settle3", nil, nil) | |
18 | 18 | if ((a3 == a3)) | |
19 | 19 | then { | |
20 | 20 | let a4 = invoke(address, "settle3", nil, nil) | |
21 | 21 | if ((a4 == a4)) | |
22 | 22 | then { | |
23 | 23 | let a5 = invoke(address, "settle3", nil, nil) | |
24 | 24 | if ((a5 == a5)) | |
25 | 25 | then { | |
26 | 26 | let a6 = invoke(address, "settle3", nil, nil) | |
27 | 27 | if ((a6 == a6)) | |
28 | 28 | then 0 | |
29 | 29 | else throw("Strict value is not equal to itself.") | |
30 | 30 | } | |
31 | 31 | else throw("Strict value is not equal to itself.") | |
32 | 32 | } | |
33 | 33 | else throw("Strict value is not equal to itself.") | |
34 | 34 | } | |
35 | 35 | else throw("Strict value is not equal to itself.") | |
36 | 36 | } | |
37 | 37 | else throw("Strict value is not equal to itself.") | |
38 | 38 | } | |
39 | 39 | else throw("Strict value is not equal to itself.") | |
40 | 40 | } | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func common (dapp) = { | |
44 | 44 | let address = valueOrErrorMessage(addressFromString(dapp), "pacewrapper: bad dapp address") | |
45 | 45 | let oraclev2 = valueOrErrorMessage(getString(address, "oraclev2"), "pacewrapper: no oraclev2 key") | |
46 | 46 | let oracle = valueOrErrorMessage(addressFromString(oraclev2), "pacewrapper: bad oracle address") | |
47 | 47 | let assetidv2 = valueOrErrorMessage(getString(address, "assetidv2"), "no assetidv2") | |
48 | 48 | let lastPriceIndexKey = ("%s%s__idxCurrent__" + assetidv2) | |
49 | 49 | let settledPriceIndex = valueOrErrorMessage(getInteger(address, REBIDXK), "no last rebalance price") | |
50 | 50 | let oraclePriceIndex = valueOrErrorMessage(getInteger(oracle, lastPriceIndexKey), ((("pacewrapper: bad oracle data at " + toString(oracle)) + ": no integer at ") + lastPriceIndexKey)) | |
51 | 51 | let requestPriceIndex = { | |
52 | 52 | let headPointer = valueOrElse(getString(address, HEADK), "") | |
53 | 53 | if ((headPointer == "")) | |
54 | 54 | then MAX | |
55 | 55 | else { | |
56 | 56 | let data = split(getStringValue(address, headPointer), "|") | |
57 | 57 | let rpi = parseIntValue(data[3]) | |
58 | 58 | rpi | |
59 | 59 | } | |
60 | 60 | } | |
61 | 61 | let hasProcessableRequests = (oraclePriceIndex >= requestPriceIndex) | |
62 | 62 | $Tuple5(address, settledPriceIndex, oraclePriceIndex, requestPriceIndex, hasProcessableRequests) | |
63 | 63 | } | |
64 | 64 | ||
65 | 65 | ||
66 | 66 | func advise (dapp) = { | |
67 | 67 | let $t018952052 = common(dapp) | |
68 | 68 | if (($t018952052 == $t018952052)) | |
69 | 69 | then { | |
70 | 70 | let hasProcessableRequests = $t018952052._5 | |
71 | 71 | let requestPriceIndex = $t018952052._4 | |
72 | 72 | let oraclePriceIndex = $t018952052._3 | |
73 | 73 | let settledPriceIndex = $t018952052._2 | |
74 | 74 | let address = $t018952052._1 | |
75 | 75 | let BULLK = "BULLId" | |
76 | 76 | let BEARK = "BEARId" | |
77 | 77 | let POOLUSDNK = "poolMainTokenValue" | |
78 | 78 | let POOLUPK = "poolUp" | |
79 | 79 | let POOLDWNK = "poolDwn" | |
80 | 80 | let BULLCOLK = "bullCollateral" | |
81 | 81 | let BEARCOLK = "bearCollateral" | |
82 | 82 | let BULLCIRCK = "bullCirculation" | |
83 | 83 | let BEARCIRCK = "bearCirculation" | |
84 | 84 | let BULL = getStringValue(address, BULLK) | |
85 | 85 | let BEAR = getStringValue(address, BEARK) | |
86 | 86 | let poolMain = getIntegerValue(address, POOLUSDNK) | |
87 | 87 | let poolUp = getIntegerValue(address, POOLUPK) | |
88 | 88 | let poolDwn = getIntegerValue(address, POOLDWNK) | |
89 | 89 | let bullCol = getIntegerValue(address, BULLCOLK) | |
90 | 90 | let bearCol = getIntegerValue(address, BEARCOLK) | |
91 | 91 | let bullCirc = getIntegerValue(address, BULLCIRCK) | |
92 | 92 | let bearCirc = getIntegerValue(address, BEARCIRCK) | |
93 | 93 | let poolBullExposure = fraction(bullCol, poolUp, bullCirc) | |
94 | 94 | let poolBearExposure = fraction(bearCol, poolDwn, bearCirc) | |
95 | 95 | let poolValue = ((poolMain + poolBullExposure) + poolBearExposure) | |
96 | 96 | func diffAbs (a1,a2) = { | |
97 | 97 | let diff = (a1 - a2) | |
98 | 98 | if ((diff > 0)) | |
99 | 99 | then diff | |
100 | 100 | else (0 - diff) | |
101 | 101 | } | |
102 | 102 | ||
103 | 103 | func userDiffAbs () = diffAbs((bullCol - poolBullExposure), (bearCol - poolBearExposure)) | |
104 | 104 | ||
105 | 105 | func maxIssue (tokenId) = { | |
106 | 106 | let poolInvestment = if ((poolUp > 0)) | |
107 | 107 | then BULL | |
108 | 108 | else BEAR | |
109 | 109 | if ((tokenId != poolInvestment)) | |
110 | 110 | then poolMain | |
111 | 111 | else (userDiffAbs() + poolValue) | |
112 | 112 | } | |
113 | 113 | ||
114 | 114 | let basic = ((((((((((((((((("dapp = " + dapp) + ", currentBullCollateral = ") + toString(getIntegerValue(address, "bullCollateral"))) + ", currentBearCollateral = ") + toString(getIntegerValue(address, "bearCollateral"))) + ", currentBullCirculation = ") + toString(getIntegerValue(address, "bullCirculation"))) + ", currentBearCirculation = ") + toString(getIntegerValue(address, "bearCirculation"))) + ", settledPriceIndex = ") + toString(settledPriceIndex)) + ", oraclePriceIndex = ") + toString(oraclePriceIndex)) + ", requestPriceIndex = ") + toString(if ((requestPriceIndex == MAX)) | |
115 | 115 | then -1 | |
116 | 116 | else requestPriceIndex)) + ", hasProcessableRequests = ") + (if (hasProcessableRequests) | |
117 | 117 | then "true" | |
118 | 118 | else "false")) | |
119 | 119 | if ((basic == basic)) | |
120 | 120 | then { | |
121 | 121 | let res = inv(address) | |
122 | 122 | if ((res == res)) | |
123 | - | then { | |
124 | - | let stateR = invoke(address, "state", nil, nil) | |
125 | - | if ((stateR == stateR)) | |
126 | - | then { | |
127 | - | let state = match stateR { | |
128 | - | case s: String => | |
129 | - | s | |
130 | - | case _ => | |
131 | - | throw("unexpected") | |
132 | - | } | |
133 | - | ((((((((((((basic + ", projectedBullCollateral = ") + toString(getIntegerValue(address, "bullCollateral"))) + ", projectedBearCollateral = ") + toString(getIntegerValue(address, "bearCollateral"))) + ", projectedBullCirculation = ") + toString(getIntegerValue(address, "bullCirculation"))) + ", projectedBearCirculation = ") + toString(getIntegerValue(address, "bearCirculation"))) + ", maxIssueBull = ") + toString(maxIssue(BULL))) + ", maxIssueBear = ") + toString(maxIssue(BEAR))) | |
134 | - | } | |
135 | - | else throw("Strict value is not equal to itself.") | |
136 | - | } | |
123 | + | then ((((((((((((basic + ", projectedBullCollateral = ") + toString(getIntegerValue(address, "bullCollateral"))) + ", projectedBearCollateral = ") + toString(getIntegerValue(address, "bearCollateral"))) + ", projectedBullCirculation = ") + toString(getIntegerValue(address, "bullCirculation"))) + ", projectedBearCirculation = ") + toString(getIntegerValue(address, "bearCirculation"))) + ", maxIssueBull = ") + toString(maxIssue(BULL))) + ", maxIssueBear = ") + toString(maxIssue(BEAR))) | |
137 | 124 | else throw("Strict value is not equal to itself.") | |
138 | 125 | } | |
139 | 126 | else throw("Strict value is not equal to itself.") | |
140 | 127 | } | |
141 | 128 | else throw("Strict value is not equal to itself.") | |
142 | 129 | } | |
143 | 130 | ||
144 | 131 | ||
145 | 132 | @Callable(i) | |
146 | 133 | func settleAll (dapp,minPriceAdvance) = { | |
147 | - | let $ | |
148 | - | let address = $ | |
149 | - | let settledPriceIndex = $ | |
150 | - | let oraclePriceIndex = $ | |
151 | - | let requestPriceIndex = $ | |
152 | - | let hasProcessableRequests = $ | |
134 | + | let $t048614969 = common(dapp) | |
135 | + | let address = $t048614969._1 | |
136 | + | let settledPriceIndex = $t048614969._2 | |
137 | + | let oraclePriceIndex = $t048614969._3 | |
138 | + | let requestPriceIndex = $t048614969._4 | |
139 | + | let hasProcessableRequests = $t048614969._5 | |
153 | 140 | if (if (hasProcessableRequests) | |
154 | 141 | then true | |
155 | 142 | else ((oraclePriceIndex - settledPriceIndex) >= minPriceAdvance)) | |
156 | 143 | then { | |
157 | 144 | let res1 = inv(address) | |
158 | 145 | if ((res1 == res1)) | |
159 | 146 | then nil | |
160 | 147 | else throw("Strict value is not equal to itself.") | |
161 | 148 | } | |
162 | 149 | else throw((("[OK] no actions queue and price queue(oraclePriceIndex - settledPriceIndex) = " + toString((oraclePriceIndex - settledPriceIndex))) + " too small")) | |
163 | 150 | } | |
164 | 151 | ||
165 | 152 |
github/deemru/w8io/3ef1775 46.01 ms ◑