tx · 3C1c2PSvPCznRVnaYua73DCUnwZ6U2fpRQdkEDSLCj6D 3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov: -0.00500000 Waves 2024.03.12 16:21 [4080692] smart account 3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov > SELF 0.00000000 Waves
{ "type": 13, "id": "3C1c2PSvPCznRVnaYua73DCUnwZ6U2fpRQdkEDSLCj6D", "fee": 500000, "feeAssetId": null, "timestamp": 1710249724453, "version": 2, "chainId": 87, "sender": "3PCBL2vbjAVFbiCwmGsPmT6QdATutQnM8ov", "senderPublicKey": "5BKRz3VCmywzUUoj3kTwCzrCiP8waYbkaymD8B1kdRH2", "proofs": [ "4KVrtHYFKZQsPeStGxv2F3j3tXm6ZMLZtj19ryAxemqtb3s5fqcbu5oC4jHdNaKTZAaK75XsFGoPUEQ3usMoXiPw" ], "script": "base64:BgISCAISABIAEgASABIAEgASABIAGwACZDYAwIQ9AAJkOACAwtcvAAdpbnZva2VyCQEHQWRkcmVzcwEBGgFXGIkbJG0v4kSlsrku0GQjUC4p33Iw2jJZAAZwb29sSWQBGgFXhZ0sMNX8Az5hxa3ekr/FKpHzma4aQUAKAApwb29sU3RyaW5nCQDYBAEFBnBvb2xJZAAGcG9vbExQARoBV/rVs69JTbhS1HYqsBxjXic5Vwgrqxr5+wAJcHpCdXJueHRuASDoT9tlJluEnbfFZ5ANN2u2Lf9FGUJm6df/9txN/BNOTgAFeHRuSWQBILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAlidXJueHRuSWQBICRPdXlqfjM5uPsM/4SpcVxeyi3eM6DEXWn56kQR7ExUAAZ3ZXN0SWQBIDGDhG9Fn923HVoeF/1BfkTYN9kHk9fk5XuKZyRf48D5AAd2aXJlc0lkASC42uI3AWJwX5qoW7IZDL0Pw2WvdQa2WC3dB5NWqd2plwAFZWdnSWQBIKOff08jclHRLOIhkmKITQwL8+oiboHVr/wLkxfObbHJAAZuc2J0SWQBIFXuw76qC/BQ6HHIG6pucJ6kscj+Si65wfHMxWsPeJdLAAZzd2F2ZXMBIAgfyPcWMO1Rwikb7Kwaj/yQcRxZOC3rIYGwN0HwRdFKAAxTV0FWRVNfc3Rha2UJAQdBZGRyZXNzAQEaAVd9yXuTFHn/51HxsUrHb/lqHYCVR89YI34BCF9sb2FkSW50AgRrZXlfCGRlZmF1bHRfBAckbWF0Y2gwCQCaCAIFDFNXQVZFU19zdGFrZQUEa2V5XwMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEFCGRlZmF1bHRfAQtfbG9hZEJpZ0ludAIEa2V5XwhkZWZhdWx0XwQHJG1hdGNoMAkAnAgCBQxTV0FWRVNfc3Rha2UFBGtleV8DCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYQUHJG1hdGNoMAkAngMBBQFhBQhkZWZhdWx0XwAQV1hfQlVSTlhUTl9XQVZFUwkBB0FkZHJlc3MBARoBVyvirnF7fckwtSB55xbFa21XQIGlOBY9PgAIbGFzdFJhdGUJAQtfbG9hZEJpZ0ludAICCUxBU1RfUkFURQkAtgIBAICglKWNHQALY3VycmVudFJhdGUJAQtfbG9hZEJpZ0ludAICDENVUlJFTlRfUkFURQkAtgIBAAAACmxhc3RIZWlnaHQJAQhfbG9hZEludAICC0xBU1RfSEVJR0hUAAAADHRhcmdldEhlaWdodAkAlwMBCQDMCAIJAQhfbG9hZEludAICDVRBUkdFVF9IRUlHSFQAAAkAzAgCBQZoZWlnaHQFA25pbAAPbGFzdFJhdGVVcGRhdGVkCQC3AgIFCGxhc3RSYXRlCQC5AgIFC2N1cnJlbnRSYXRlCQC2AgEJAGUCBQx0YXJnZXRIZWlnaHQFCmxhc3RIZWlnaHQACmJhc2VBbW91bnQJAKADAQkAvQIECQC2AgEJAPAHAgUQV1hfQlVSTlhUTl9XQVZFUwUGc3dhdmVzBQ9sYXN0UmF0ZVVwZGF0ZWQJALYCAQCAoJSljR0FBUZMT09SAAl3YXZlc0luV1gJAGQCCAkA7wcBBRBXWF9CVVJOWFROX1dBVkVTB3JlZ3VsYXIFCmJhc2VBbW91bnQAC2J1cm54dG5JbldYCQDwBwIFEFdYX0JVUk5YVE5fV0FWRVMFCWJ1cm54dG5JZAARYnVybnh0bndhdmVzcHJpY2UJAGsDBQJkOAUJd2F2ZXNJbldYBQtidXJueHRuSW5XWAgBaQELRmlyc3RJbnZva2UAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQBYgkA/AcEBQR0aGlzAgdidXJuWFROBQNuaWwFA25pbAMJAAACBQFiBQFiBAhjbGFpbUludgkA/AcECQEHQWRkcmVzcwEBGgFXhZ0sMNX8Az5hxa3ekr/FKpHzma4aQUAKAhFjbGFpbUluZGV4UmV3YXJkcwUDbmlsBQNuaWwDCQAAAgUIY2xhaW1JbnYFCGNsYWltSW52BARwdW1wAwkAZgIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCD0FUSCBpbiB3YXZlbGV0cwURYnVybnh0bndhdmVzcHJpY2UJAPwHBAUEdGhpcwIEcHVtcAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUEcHVtcAUEcHVtcAQGZEVudHJ5CQD8BwQFBHRoaXMCBmRFbnRyeQUDbmlsBQNuaWwDCQAAAgUGZEVudHJ5BQZkRW50cnkJAMwIAgkBBEJ1cm4CBQlidXJueHRuSWQJAPAHAgUEdGhpcwUJYnVybnh0bklkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHYnVyblhUTgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBA14dG5idXJuYW1vdW50CQDwBwIFBHRoaXMFBXh0bklkBAd4dG5CdXJuCQEEQnVybgIFBXh0bklkBQ14dG5idXJuYW1vdW50CQDMCAIFB3h0bkJ1cm4JAMwIAgkBDEludGVnZXJFbnRyeQICEFhUTiB0b3RhbCBidXJuZWQJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhBYVE4gdG90YWwgYnVybmVkBQ14dG5idXJuYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCAgpYVE4gc3VwcGx5BAckbWF0Y2gwCQDsBwEFBXh0bklkAwkAAQIFByRtYXRjaDACBUFzc2V0BAVhc3NldAUHJG1hdGNoMAkAaQIJAGUCCAUFYXNzZXQIcXVhbnRpdHkJAPAHAgkBB0FkZHJlc3MBARoBV3AEYqZHm+mtVmiUy++FjDCCICiaCBSWsgUFeHRuSWQFAmQ2CQACAQIQQ2FuJ3QgZmluZCBhc3NldAUDbmlsAWkBBWdyb3cxAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEBXN3ZXN0CQD8BwQJAQdBZGRyZXNzAQUGcG9vbExQAhRnZW5lcmF0ZVdpdGhPbmVUb2tlbgkAzAgCBQpwb29sU3RyaW5nBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBndlc3RJZAkA8AcCBQR0aGlzBQZ3ZXN0SWQFA25pbAMJAAACBQVzd2VzdAUFc3dlc3QFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVncm93MgADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAZzdmlyZXMJAPwHBAkBB0FkZHJlc3MBBQZwb29sTFACFGdlbmVyYXRlV2l0aE9uZVRva2VuCQDMCAIFCnBvb2xTdHJpbmcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHdmlyZXNJZAkA8AcCBQR0aGlzBQd2aXJlc0lkBQNuaWwDCQAAAgUGc3ZpcmVzBQZzdmlyZXMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVncm93MwADAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQECIT0CCAUBaQZjYWxsZXIFB2ludm9rZXIHCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQEc2VnZwkA/AcECQEHQWRkcmVzcwEFBnBvb2xMUAIUZ2VuZXJhdGVXaXRoT25lVG9rZW4JAMwIAgUKcG9vbFN0cmluZwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQVlZ2dJZAkA8AcCBQR0aGlzBQVlZ2dJZAUDbmlsAwkAAAIFBHNlZ2cFBHNlZ2cFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVncm93NAADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAVzbnNidAkA/AcECQEHQWRkcmVzcwEFBnBvb2xMUAIUZ2VuZXJhdGVXaXRoT25lVG9rZW4JAMwIAgUKcG9vbFN0cmluZwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZuc2J0SWQJAPAHAgUEdGhpcwUGbnNidElkBQNuaWwDCQAAAgUFc25zYnQFBXNuc2J0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFZ3JvdzUAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQJc3dhcHdhdmVzCQD8BwQJAQdBZGRyZXNzAQUGcG9vbExQAhRnZW5lcmF0ZVdpdGhPbmVUb2tlbgkAzAgCBQpwb29sU3RyaW5nBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQDCQBmAgkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBQJkOAAACQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4AAAFA25pbAMJAAACBQlzd2Fwd2F2ZXMFCXN3YXB3YXZlcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBWdyb3c2AAMDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAQIhPQIIBQFpBmNhbGxlcgUHaW52b2tlcgcJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyBAdzdGFrZVBaCQD8BwQJAQdBZGRyZXNzAQEaAVeFnSww1fwDPmHFrd6Sv8UqkfOZrhpBQAoCDXN0YWtlSW5kZXhGb3IJAMwIAgkApQgBBQR0aGlzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCXB6QnVybnh0bgkA8AcCBQR0aGlzBQlwekJ1cm54dG4FA25pbAMJAAACBQdzdGFrZVBaBQdzdGFrZVBaBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4A/ANNMQ==", "height": 4080692, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 676Bf7QvuNKqGwb3wGvsXbLy43Hkh7EX6hPKAU2qKdFf Next: A6aR88VBC5wucwHY6pxeG57YoL2yUrre7WXVpCVvX3qZ Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | func tryGetInteger (address,key) = match getInteger(address, key) { | |
5 | - | case b: Int => | |
6 | - | b | |
7 | - | case _ => | |
8 | - | 0 | |
9 | - | } | |
10 | - | ||
11 | - | ||
12 | 4 | let d6 = 1000000 | |
13 | 5 | ||
14 | 6 | let d8 = 100000000 | |
15 | 7 | ||
8 | + | let invoker = Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt') | |
9 | + | ||
16 | 10 | let poolId = base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB' | |
17 | 11 | ||
18 | 12 | let poolString = toBase58String(poolId) | |
19 | - | ||
20 | - | let pool2 = base58'3PQHndCUVrv3wBuQjbvVP9SnGmfbfitGxfx' | |
21 | - | ||
22 | - | let poolMega = base58'3PBiMQLnX8wd4bssXCgF8KuUqHv1H4zWHGi' | |
23 | - | ||
24 | - | let poolBBB = base58'3P9VPwVfNj3dDevQZt1Z951A4K57cmQmCgk' | |
25 | 13 | ||
26 | 14 | let poolLP = base58'3PQoBfUKHkJAeGWhooLP7WS8ovb54av9Jp2' | |
27 | 15 | ||
31 | 19 | ||
32 | 20 | let burnxtnId = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns' | |
33 | 21 | ||
34 | - | let burnxtnString = toBase58String(burnxtnId) | |
35 | - | ||
36 | 22 | let westId = base58'4LHHvYGNKJUg5hj65aGD5vgScvCBmLpdRFtjokvCjSL8' | |
37 | 23 | ||
38 | 24 | let viresId = base58'DSbbhLsSTeDg5Lsiufk2Aneh3DjVqJuPr2M9uU1gwy5p' | |
39 | 25 | ||
40 | 26 | let eggId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS' | |
41 | 27 | ||
42 | - | let surfId = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL' | |
43 | - | ||
44 | 28 | let nsbtId = base58'6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g' | |
45 | 29 | ||
46 | - | let wxId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on' | |
47 | - | ||
48 | - | let swopId = base58'Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT' | |
49 | - | ||
50 | - | let wavesId = base58'WAVES' | |
51 | - | ||
52 | - | let usdterc = base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
53 | - | ||
54 | - | let usdcerc = base58'HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW' | |
55 | - | ||
56 | - | let usdtbsc = base58'A81p1LTRyoq2rDR2TNxB2dWYxsiNwCSSi8sXef2SEkwb' | |
57 | - | ||
58 | - | let usdcbsc = base58'4BKKSp6NoNcrFHyorZogDyctq1fq6w7114Ym1pw6HUtC' | |
59 | - | ||
60 | 30 | let swaves = base58'YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7' | |
61 | - | ||
62 | - | let puzzle = base58'HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS' | |
63 | - | ||
64 | - | let whirlpool = base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi' | |
65 | - | ||
66 | - | let rome = base58'AP4Cb5xLYGH6ZigHreCZHoXpQTWDkPsG2BHqfDUx6taJ' | |
67 | 31 | ||
68 | 32 | let SWAVES_stake = Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV') | |
69 | 33 | ||
103 | 67 | ||
104 | 68 | let burnxtnwavesprice = fraction(d8, wavesInWX, burnxtnInWX) | |
105 | 69 | ||
106 | - | let burnxtnbalance2 = assetBalance(Address(pool2), burnxtnId) | |
107 | - | ||
108 | - | let usdbalance = ((((assetBalance(Address(pool2), usdterc) + assetBalance(Address(pool2), usdcerc)) + assetBalance(Address(pool2), usdtbsc)) + assetBalance(Address(pool2), usdcbsc)) / 4) | |
109 | - | ||
110 | - | let burnxtnusdprice = fraction(d8, usdbalance, burnxtnbalance2) | |
111 | - | ||
112 | - | let ATH = if ((burnxtnwavesprice > getIntegerValue("ATH in wavelets"))) | |
113 | - | then burnxtnwavesprice | |
114 | - | else getIntegerValue(this, "ATH in wavelets") | |
115 | - | ||
116 | - | let ATHusd = if ((burnxtnusdprice > getIntegerValue("ATH in centlets"))) | |
117 | - | then burnxtnusdprice | |
118 | - | else getIntegerValue(this, "ATH in centlets") | |
119 | - | ||
120 | - | let wavesinpool = getIntegerValue(Address(poolId), (("global_" + toBase58String(wavesId)) + "_balance")) | |
121 | - | ||
122 | - | let projectstake = getIntegerValue(Address(poolId), ("3PAucbbumdUXmhzcR421zGiayphEdo2tRoz" + "_indexStaked")) | |
123 | - | ||
124 | - | let totalstake = getIntegerValue(Address(poolId), "global_poolToken_amount") | |
125 | - | ||
126 | - | let tvlinwaves = fraction(fraction(wavesinpool, projectstake, totalstake), 9, d8) | |
127 | - | ||
128 | - | let tvlpool = fraction(wavesinpool, 9, d8) | |
129 | - | ||
130 | - | let pricegrowth = ((fraction(d8, burnxtnwavesprice, getIntegerValue(this, "intial price BURN-XTN in wavelets")) - d8) / 1000000) | |
131 | - | ||
132 | 70 | @Callable(i) | |
133 | 71 | func FirstInvoke () = if ((i.caller != this)) | |
134 | 72 | then throw("access only by project owner") | |
139 | 77 | let claimInv = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "claimIndexRewards", nil, nil) | |
140 | 78 | if ((claimInv == claimInv)) | |
141 | 79 | then { | |
142 | - | let | |
143 | - | then invoke(this, " | |
80 | + | let pump = if ((getIntegerValue(this, "ATH in wavelets") > burnxtnwavesprice)) | |
81 | + | then invoke(this, "pump", nil, nil) | |
144 | 82 | else unit | |
145 | - | if (( | |
83 | + | if ((pump == pump)) | |
146 | 84 | then { | |
147 | - | let pump = if ((getIntegerValue(this, "ATH in wavelets") > burnxtnwavesprice)) | |
148 | - | then invoke(this, "pump", nil, nil) | |
149 | - | else unit | |
150 | - | if ((pump == pump)) | |
151 | - | then { | |
152 | - | let dEntry = invoke(this, "dEntry", nil, nil) | |
153 | - | if ((dEntry == dEntry)) | |
154 | - | then [Burn(burnxtnId, assetBalance(this, burnxtnId))] | |
155 | - | else throw("Strict value is not equal to itself.") | |
156 | - | } | |
85 | + | let dEntry = invoke(this, "dEntry", nil, nil) | |
86 | + | if ((dEntry == dEntry)) | |
87 | + | then [Burn(burnxtnId, assetBalance(this, burnxtnId))] | |
157 | 88 | else throw("Strict value is not equal to itself.") | |
158 | 89 | } | |
159 | 90 | else throw("Strict value is not equal to itself.") | |
206 | 137 | ||
207 | 138 | ||
208 | 139 | @Callable(i) | |
209 | - | func grow3 () = if ((i.caller != this)) | |
140 | + | func grow3 () = if (if ((i.caller != this)) | |
141 | + | then (i.caller != invoker) | |
142 | + | else false) | |
210 | 143 | then throw("access only by project owner") | |
211 | 144 | else { | |
212 | 145 | let segg = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(eggId, assetBalance(this, eggId))]) | |
244 | 177 | ||
245 | 178 | ||
246 | 179 | @Callable(i) | |
247 | - | func grow6 () = if ((i.caller != this)) | |
180 | + | func grow6 () = if (if ((i.caller != this)) | |
181 | + | then (i.caller != invoker) | |
182 | + | else false) | |
248 | 183 | then throw("access only by project owner") | |
249 | 184 | else { | |
250 | 185 | let stakePZ = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "stakeIndexFor", [toString(this)], [AttachedPayment(pzBurnxtn, assetBalance(this, pzBurnxtn))]) | |
254 | 189 | } | |
255 | 190 | ||
256 | 191 | ||
257 | - | ||
258 | - | @Callable(i) | |
259 | - | func pump () = if ((i.caller != this)) | |
260 | - | then throw("access only by project owner") | |
261 | - | else { | |
262 | - | let swest = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(westId, assetBalance(this, westId))]) | |
263 | - | if ((swest == swest)) | |
264 | - | then { | |
265 | - | let svires = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(viresId, assetBalance(this, viresId))]) | |
266 | - | if ((svires == svires)) | |
267 | - | then { | |
268 | - | let segg = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(eggId, assetBalance(this, eggId))]) | |
269 | - | if ((segg == segg)) | |
270 | - | then { | |
271 | - | let snsbt = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))]) | |
272 | - | if ((snsbt == snsbt)) | |
273 | - | then { | |
274 | - | let swapwaves = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0)) | |
275 | - | then (wavesBalance(this).available - d8) | |
276 | - | else 0)]) | |
277 | - | if ((swapwaves == swapwaves)) | |
278 | - | then nil | |
279 | - | else throw("Strict value is not equal to itself.") | |
280 | - | } | |
281 | - | else throw("Strict value is not equal to itself.") | |
282 | - | } | |
283 | - | else throw("Strict value is not equal to itself.") | |
284 | - | } | |
285 | - | else throw("Strict value is not equal to itself.") | |
286 | - | } | |
287 | - | else throw("Strict value is not equal to itself.") | |
288 | - | } | |
289 | - | ||
290 | - | ||
291 | - | ||
292 | - | @Callable(i) | |
293 | - | func dEntry () = if ((i.caller != this)) | |
294 | - | then throw("access only by project owner") | |
295 | - | else [IntegerEntry("BURN-XTN / WAVES price in wavelets", burnxtnwavesprice), IntegerEntry("Price growth %", pricegrowth), IntegerEntry("ATH in wavelets", ATH), IntegerEntry("BURN-XTN / USD price in centlets", burnxtnusdprice), IntegerEntry("ATH in centlets", ATHusd), IntegerEntry("TVL project in WAVES excluding BURN-XTN", tvlinwaves), IntegerEntry("TVL pool in WAVES excluding BURN-XTN", tvlpool), IntegerEntry("Activated blockheight", height), IntegerEntry("BURN-XTN supply", match assetInfo(burnxtnId) { | |
296 | - | case asset: Asset => | |
297 | - | (asset.quantity / d8) | |
298 | - | case _ => | |
299 | - | throw("Can't find asset") | |
300 | - | }), IntegerEntry("BURN-XTN total burned", (1000000000 - match assetInfo(burnxtnId) { | |
301 | - | case asset: Asset => | |
302 | - | (asset.quantity / d8) | |
303 | - | case _ => | |
304 | - | throw("Can't find asset") | |
305 | - | })), IntegerEntry("SURF supply", match assetInfo(surfId) { | |
306 | - | case asset: Asset => | |
307 | - | (asset.quantity / d6) | |
308 | - | case _ => | |
309 | - | throw("Can't find asset") | |
310 | - | })] | |
311 | - | ||
312 | - | ||
313 | - | ||
314 | - | @Callable(i) | |
315 | - | func secondInvoke () = if ((i.caller != this)) | |
316 | - | then throw("access only by project owner") | |
317 | - | else { | |
318 | - | let wavesBalanceBefore = wavesBalance(this).available | |
319 | - | if ((wavesBalanceBefore == wavesBalanceBefore)) | |
320 | - | then { | |
321 | - | let burnxtnBalanceBefore = assetBalance(this, burnxtnId) | |
322 | - | if ((burnxtnBalanceBefore == burnxtnBalanceBefore)) | |
323 | - | then { | |
324 | - | let stakeSurf = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(surfId, assetBalance(this, surfId))]) | |
325 | - | if ((stakeSurf == stakeSurf)) | |
326 | - | then { | |
327 | - | let swapSwop = invoke(Address(poolMega), "swap", [toBase58String(puzzle), 0], [AttachedPayment(swopId, assetBalance(this, swopId))]) | |
328 | - | if ((swapSwop == swapSwop)) | |
329 | - | then { | |
330 | - | let poolOneTokenInv = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [toBase58String(poolBBB)], [AttachedPayment(puzzle, assetBalance(this, puzzle))]) | |
331 | - | if ((poolOneTokenInv == poolOneTokenInv)) | |
332 | - | then { | |
333 | - | let swapWhirl = invoke(Address(poolBBB), "swap", [toBase58String(burnxtnId), 0], [AttachedPayment(whirlpool, assetBalance(this, whirlpool))]) | |
334 | - | if ((swapWhirl == swapWhirl)) | |
335 | - | then { | |
336 | - | let swapRome = invoke(Address(poolBBB), "swap", [toBase58String(burnxtnId), 0], [AttachedPayment(rome, assetBalance(this, rome))]) | |
337 | - | if ((swapRome == swapRome)) | |
338 | - | then { | |
339 | - | let burnxtnDifference = (assetBalance(this, burnxtnId) - burnxtnBalanceBefore) | |
340 | - | let swapBurnxtn = invoke(Address(poolId), "swap", [toBase58String(surfId), 0], [AttachedPayment(burnxtnId, burnxtnDifference)]) | |
341 | - | if ((swapBurnxtn == swapBurnxtn)) | |
342 | - | then { | |
343 | - | let wavesDifference = (wavesBalance(this).available - wavesBalanceBefore) | |
344 | - | let swapWaves = invoke(Address(poolId), "swap", [toBase58String(surfId), 0], [AttachedPayment(unit, wavesDifference)]) | |
345 | - | if ((swapWaves == swapWaves)) | |
346 | - | then { | |
347 | - | let surfBurnAmount = assetBalance(this, surfId) | |
348 | - | let surfBurn = Burn(surfId, surfBurnAmount) | |
349 | - | [surfBurn, IntegerEntry("SURF total burned", (tryGetInteger(this, "SURF total burned") + surfBurnAmount))] | |
350 | - | } | |
351 | - | else throw("Strict value is not equal to itself.") | |
352 | - | } | |
353 | - | else throw("Strict value is not equal to itself.") | |
354 | - | } | |
355 | - | else throw("Strict value is not equal to itself.") | |
356 | - | } | |
357 | - | else throw("Strict value is not equal to itself.") | |
358 | - | } | |
359 | - | else throw("Strict value is not equal to itself.") | |
360 | - | } | |
361 | - | else throw("Strict value is not equal to itself.") | |
362 | - | } | |
363 | - | else throw("Strict value is not equal to itself.") | |
364 | - | } | |
365 | - | else throw("Strict value is not equal to itself.") | |
366 | - | } | |
367 | - | else throw("Strict value is not equal to itself.") | |
368 | - | } | |
369 | - | ||
370 | - | ||
371 | - | ||
372 | - | @Callable(i) | |
373 | - | func PumpByAnybody () = if (((getIntegerValue(this, "Activated blockheight") + (8 * 1440)) > height)) | |
374 | - | then throw(("Wait till blockheight:" + toString((getIntegerValue(this, "Activated blockheight") + (8 * 1440))))) | |
375 | - | else { | |
376 | - | let claimInv = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "claimIndexRewards", nil, nil) | |
377 | - | if ((claimInv == claimInv)) | |
378 | - | then { | |
379 | - | let swest = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(westId, assetBalance(this, westId))]) | |
380 | - | if ((swest == swest)) | |
381 | - | then { | |
382 | - | let svires = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(viresId, assetBalance(this, viresId))]) | |
383 | - | if ((svires == svires)) | |
384 | - | then { | |
385 | - | let segg = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(eggId, assetBalance(this, eggId))]) | |
386 | - | if ((segg == segg)) | |
387 | - | then { | |
388 | - | let ssurf = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(surfId, assetBalance(this, surfId))]) | |
389 | - | if ((ssurf == ssurf)) | |
390 | - | then { | |
391 | - | let snsbt = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))]) | |
392 | - | if ((snsbt == snsbt)) | |
393 | - | then { | |
394 | - | let swx = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(wxId, assetBalance(this, wxId))]) | |
395 | - | if ((swx == swx)) | |
396 | - | then { | |
397 | - | let sswop = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(swopId, assetBalance(this, swopId))]) | |
398 | - | if ((sswop == sswop)) | |
399 | - | then { | |
400 | - | let swapwaves = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0)) | |
401 | - | then (wavesBalance(this).available - d8) | |
402 | - | else 0)]) | |
403 | - | if ((swapwaves == swapwaves)) | |
404 | - | then { | |
405 | - | let xtnburnamount = assetBalance(this, xtnId) | |
406 | - | let xtnBurn = Burn(xtnId, xtnburnamount) | |
407 | - | let burnxtnBurn = Burn(burnxtnId, assetBalance(this, burnxtnId)) | |
408 | - | [xtnBurn, burnxtnBurn, IntegerEntry("BURN-XTN supply", match assetInfo(burnxtnId) { | |
409 | - | case asset: Asset => | |
410 | - | (asset.quantity / d8) | |
411 | - | case _ => | |
412 | - | throw("Can't find asset") | |
413 | - | }), IntegerEntry("BURN-XTN total burned", (1000000000 - match assetInfo(burnxtnId) { | |
414 | - | case asset: Asset => | |
415 | - | (asset.quantity / d8) | |
416 | - | case _ => | |
417 | - | throw("Can't find asset") | |
418 | - | })), IntegerEntry("XTN total burned", (getIntegerValue(this, "XTN total burned") + xtnburnamount))] | |
419 | - | } | |
420 | - | else throw("Strict value is not equal to itself.") | |
421 | - | } | |
422 | - | else throw("Strict value is not equal to itself.") | |
423 | - | } | |
424 | - | else throw("Strict value is not equal to itself.") | |
425 | - | } | |
426 | - | else throw("Strict value is not equal to itself.") | |
427 | - | } | |
428 | - | else throw("Strict value is not equal to itself.") | |
429 | - | } | |
430 | - | else throw("Strict value is not equal to itself.") | |
431 | - | } | |
432 | - | else throw("Strict value is not equal to itself.") | |
433 | - | } | |
434 | - | else throw("Strict value is not equal to itself.") | |
435 | - | } | |
436 | - | else throw("Strict value is not equal to itself.") | |
437 | - | } | |
438 | - | ||
439 | - | ||
440 | - | ||
441 | - | @Callable(i) | |
442 | - | func withdraw () = if ((i.caller != Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt'))) | |
443 | - | then throw("no access") | |
444 | - | else { | |
445 | - | let withdraw = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "withdrawVestedAllUSDN", [false, true], nil) | |
446 | - | if ((withdraw == withdraw)) | |
447 | - | then nil | |
448 | - | else throw("Strict value is not equal to itself.") | |
449 | - | } | |
450 | - | ||
451 | - |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | func tryGetInteger (address,key) = match getInteger(address, key) { | |
5 | - | case b: Int => | |
6 | - | b | |
7 | - | case _ => | |
8 | - | 0 | |
9 | - | } | |
10 | - | ||
11 | - | ||
12 | 4 | let d6 = 1000000 | |
13 | 5 | ||
14 | 6 | let d8 = 100000000 | |
15 | 7 | ||
8 | + | let invoker = Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt') | |
9 | + | ||
16 | 10 | let poolId = base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB' | |
17 | 11 | ||
18 | 12 | let poolString = toBase58String(poolId) | |
19 | - | ||
20 | - | let pool2 = base58'3PQHndCUVrv3wBuQjbvVP9SnGmfbfitGxfx' | |
21 | - | ||
22 | - | let poolMega = base58'3PBiMQLnX8wd4bssXCgF8KuUqHv1H4zWHGi' | |
23 | - | ||
24 | - | let poolBBB = base58'3P9VPwVfNj3dDevQZt1Z951A4K57cmQmCgk' | |
25 | 13 | ||
26 | 14 | let poolLP = base58'3PQoBfUKHkJAeGWhooLP7WS8ovb54av9Jp2' | |
27 | 15 | ||
28 | 16 | let pzBurnxtn = base58'GdrDHazRGcCYeCgDEZzLpsZ3E7jmrxYB7EDUiGfiVAr1' | |
29 | 17 | ||
30 | 18 | let xtnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
31 | 19 | ||
32 | 20 | let burnxtnId = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns' | |
33 | 21 | ||
34 | - | let burnxtnString = toBase58String(burnxtnId) | |
35 | - | ||
36 | 22 | let westId = base58'4LHHvYGNKJUg5hj65aGD5vgScvCBmLpdRFtjokvCjSL8' | |
37 | 23 | ||
38 | 24 | let viresId = base58'DSbbhLsSTeDg5Lsiufk2Aneh3DjVqJuPr2M9uU1gwy5p' | |
39 | 25 | ||
40 | 26 | let eggId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS' | |
41 | 27 | ||
42 | - | let surfId = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL' | |
43 | - | ||
44 | 28 | let nsbtId = base58'6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g' | |
45 | 29 | ||
46 | - | let wxId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on' | |
47 | - | ||
48 | - | let swopId = base58'Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT' | |
49 | - | ||
50 | - | let wavesId = base58'WAVES' | |
51 | - | ||
52 | - | let usdterc = base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
53 | - | ||
54 | - | let usdcerc = base58'HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW' | |
55 | - | ||
56 | - | let usdtbsc = base58'A81p1LTRyoq2rDR2TNxB2dWYxsiNwCSSi8sXef2SEkwb' | |
57 | - | ||
58 | - | let usdcbsc = base58'4BKKSp6NoNcrFHyorZogDyctq1fq6w7114Ym1pw6HUtC' | |
59 | - | ||
60 | 30 | let swaves = base58'YiNbofFzC17jEHHCMwrRcpy9MrrjabMMLZxg8g5xmf7' | |
61 | - | ||
62 | - | let puzzle = base58'HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS' | |
63 | - | ||
64 | - | let whirlpool = base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi' | |
65 | - | ||
66 | - | let rome = base58'AP4Cb5xLYGH6ZigHreCZHoXpQTWDkPsG2BHqfDUx6taJ' | |
67 | 31 | ||
68 | 32 | let SWAVES_stake = Address(base58'3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV') | |
69 | 33 | ||
70 | 34 | func _loadInt (key_,default_) = match getInteger(SWAVES_stake, key_) { | |
71 | 35 | case a: Int => | |
72 | 36 | a | |
73 | 37 | case _ => | |
74 | 38 | default_ | |
75 | 39 | } | |
76 | 40 | ||
77 | 41 | ||
78 | 42 | func _loadBigInt (key_,default_) = match getBinary(SWAVES_stake, key_) { | |
79 | 43 | case a: ByteVector => | |
80 | 44 | toBigInt(a) | |
81 | 45 | case _ => | |
82 | 46 | default_ | |
83 | 47 | } | |
84 | 48 | ||
85 | 49 | ||
86 | 50 | let WX_BURNXTN_WAVES = Address(base58'3P5vwLbXddLWpsRspftMxLuzfsjk3dLT3n5') | |
87 | 51 | ||
88 | 52 | let lastRate = _loadBigInt("LAST_RATE", toBigInt(1000000000000)) | |
89 | 53 | ||
90 | 54 | let currentRate = _loadBigInt("CURRENT_RATE", toBigInt(0)) | |
91 | 55 | ||
92 | 56 | let lastHeight = _loadInt("LAST_HEIGHT", 0) | |
93 | 57 | ||
94 | 58 | let targetHeight = min([_loadInt("TARGET_HEIGHT", 0), height]) | |
95 | 59 | ||
96 | 60 | let lastRateUpdated = (lastRate + (currentRate * toBigInt((targetHeight - lastHeight)))) | |
97 | 61 | ||
98 | 62 | let baseAmount = toInt(fraction(toBigInt(assetBalance(WX_BURNXTN_WAVES, swaves)), lastRateUpdated, toBigInt(1000000000000), FLOOR)) | |
99 | 63 | ||
100 | 64 | let wavesInWX = (wavesBalance(WX_BURNXTN_WAVES).regular + baseAmount) | |
101 | 65 | ||
102 | 66 | let burnxtnInWX = assetBalance(WX_BURNXTN_WAVES, burnxtnId) | |
103 | 67 | ||
104 | 68 | let burnxtnwavesprice = fraction(d8, wavesInWX, burnxtnInWX) | |
105 | 69 | ||
106 | - | let burnxtnbalance2 = assetBalance(Address(pool2), burnxtnId) | |
107 | - | ||
108 | - | let usdbalance = ((((assetBalance(Address(pool2), usdterc) + assetBalance(Address(pool2), usdcerc)) + assetBalance(Address(pool2), usdtbsc)) + assetBalance(Address(pool2), usdcbsc)) / 4) | |
109 | - | ||
110 | - | let burnxtnusdprice = fraction(d8, usdbalance, burnxtnbalance2) | |
111 | - | ||
112 | - | let ATH = if ((burnxtnwavesprice > getIntegerValue("ATH in wavelets"))) | |
113 | - | then burnxtnwavesprice | |
114 | - | else getIntegerValue(this, "ATH in wavelets") | |
115 | - | ||
116 | - | let ATHusd = if ((burnxtnusdprice > getIntegerValue("ATH in centlets"))) | |
117 | - | then burnxtnusdprice | |
118 | - | else getIntegerValue(this, "ATH in centlets") | |
119 | - | ||
120 | - | let wavesinpool = getIntegerValue(Address(poolId), (("global_" + toBase58String(wavesId)) + "_balance")) | |
121 | - | ||
122 | - | let projectstake = getIntegerValue(Address(poolId), ("3PAucbbumdUXmhzcR421zGiayphEdo2tRoz" + "_indexStaked")) | |
123 | - | ||
124 | - | let totalstake = getIntegerValue(Address(poolId), "global_poolToken_amount") | |
125 | - | ||
126 | - | let tvlinwaves = fraction(fraction(wavesinpool, projectstake, totalstake), 9, d8) | |
127 | - | ||
128 | - | let tvlpool = fraction(wavesinpool, 9, d8) | |
129 | - | ||
130 | - | let pricegrowth = ((fraction(d8, burnxtnwavesprice, getIntegerValue(this, "intial price BURN-XTN in wavelets")) - d8) / 1000000) | |
131 | - | ||
132 | 70 | @Callable(i) | |
133 | 71 | func FirstInvoke () = if ((i.caller != this)) | |
134 | 72 | then throw("access only by project owner") | |
135 | 73 | else { | |
136 | 74 | let b = invoke(this, "burnXTN", nil, nil) | |
137 | 75 | if ((b == b)) | |
138 | 76 | then { | |
139 | 77 | let claimInv = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "claimIndexRewards", nil, nil) | |
140 | 78 | if ((claimInv == claimInv)) | |
141 | 79 | then { | |
142 | - | let | |
143 | - | then invoke(this, " | |
80 | + | let pump = if ((getIntegerValue(this, "ATH in wavelets") > burnxtnwavesprice)) | |
81 | + | then invoke(this, "pump", nil, nil) | |
144 | 82 | else unit | |
145 | - | if (( | |
83 | + | if ((pump == pump)) | |
146 | 84 | then { | |
147 | - | let pump = if ((getIntegerValue(this, "ATH in wavelets") > burnxtnwavesprice)) | |
148 | - | then invoke(this, "pump", nil, nil) | |
149 | - | else unit | |
150 | - | if ((pump == pump)) | |
151 | - | then { | |
152 | - | let dEntry = invoke(this, "dEntry", nil, nil) | |
153 | - | if ((dEntry == dEntry)) | |
154 | - | then [Burn(burnxtnId, assetBalance(this, burnxtnId))] | |
155 | - | else throw("Strict value is not equal to itself.") | |
156 | - | } | |
85 | + | let dEntry = invoke(this, "dEntry", nil, nil) | |
86 | + | if ((dEntry == dEntry)) | |
87 | + | then [Burn(burnxtnId, assetBalance(this, burnxtnId))] | |
157 | 88 | else throw("Strict value is not equal to itself.") | |
158 | 89 | } | |
159 | 90 | else throw("Strict value is not equal to itself.") | |
160 | 91 | } | |
161 | 92 | else throw("Strict value is not equal to itself.") | |
162 | 93 | } | |
163 | 94 | else throw("Strict value is not equal to itself.") | |
164 | 95 | } | |
165 | 96 | ||
166 | 97 | ||
167 | 98 | ||
168 | 99 | @Callable(i) | |
169 | 100 | func burnXTN () = if ((i.caller != this)) | |
170 | 101 | then throw("access only by project owner") | |
171 | 102 | else { | |
172 | 103 | let xtnburnamount = assetBalance(this, xtnId) | |
173 | 104 | let xtnBurn = Burn(xtnId, xtnburnamount) | |
174 | 105 | [xtnBurn, IntegerEntry("XTN total burned", (getIntegerValue(this, "XTN total burned") + xtnburnamount)), IntegerEntry("XTN supply", match assetInfo(xtnId) { | |
175 | 106 | case asset: Asset => | |
176 | 107 | ((asset.quantity - assetBalance(Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo'), xtnId)) / d6) | |
177 | 108 | case _ => | |
178 | 109 | throw("Can't find asset") | |
179 | 110 | })] | |
180 | 111 | } | |
181 | 112 | ||
182 | 113 | ||
183 | 114 | ||
184 | 115 | @Callable(i) | |
185 | 116 | func grow1 () = if ((i.caller != this)) | |
186 | 117 | then throw("access only by project owner") | |
187 | 118 | else { | |
188 | 119 | let swest = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(westId, assetBalance(this, westId))]) | |
189 | 120 | if ((swest == swest)) | |
190 | 121 | then nil | |
191 | 122 | else throw("Strict value is not equal to itself.") | |
192 | 123 | } | |
193 | 124 | ||
194 | 125 | ||
195 | 126 | ||
196 | 127 | @Callable(i) | |
197 | 128 | func grow2 () = if ((i.caller != this)) | |
198 | 129 | then throw("access only by project owner") | |
199 | 130 | else { | |
200 | 131 | let svires = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(viresId, assetBalance(this, viresId))]) | |
201 | 132 | if ((svires == svires)) | |
202 | 133 | then nil | |
203 | 134 | else throw("Strict value is not equal to itself.") | |
204 | 135 | } | |
205 | 136 | ||
206 | 137 | ||
207 | 138 | ||
208 | 139 | @Callable(i) | |
209 | - | func grow3 () = if ((i.caller != this)) | |
140 | + | func grow3 () = if (if ((i.caller != this)) | |
141 | + | then (i.caller != invoker) | |
142 | + | else false) | |
210 | 143 | then throw("access only by project owner") | |
211 | 144 | else { | |
212 | 145 | let segg = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(eggId, assetBalance(this, eggId))]) | |
213 | 146 | if ((segg == segg)) | |
214 | 147 | then nil | |
215 | 148 | else throw("Strict value is not equal to itself.") | |
216 | 149 | } | |
217 | 150 | ||
218 | 151 | ||
219 | 152 | ||
220 | 153 | @Callable(i) | |
221 | 154 | func grow4 () = if ((i.caller != this)) | |
222 | 155 | then throw("access only by project owner") | |
223 | 156 | else { | |
224 | 157 | let snsbt = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))]) | |
225 | 158 | if ((snsbt == snsbt)) | |
226 | 159 | then nil | |
227 | 160 | else throw("Strict value is not equal to itself.") | |
228 | 161 | } | |
229 | 162 | ||
230 | 163 | ||
231 | 164 | ||
232 | 165 | @Callable(i) | |
233 | 166 | func grow5 () = if ((i.caller != this)) | |
234 | 167 | then throw("access only by project owner") | |
235 | 168 | else { | |
236 | 169 | let swapwaves = invoke(Address(poolLP), "generateWithOneToken", [poolString], [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0)) | |
237 | 170 | then (wavesBalance(this).available - d8) | |
238 | 171 | else 0)]) | |
239 | 172 | if ((swapwaves == swapwaves)) | |
240 | 173 | then nil | |
241 | 174 | else throw("Strict value is not equal to itself.") | |
242 | 175 | } | |
243 | 176 | ||
244 | 177 | ||
245 | 178 | ||
246 | 179 | @Callable(i) | |
247 | - | func grow6 () = if ((i.caller != this)) | |
180 | + | func grow6 () = if (if ((i.caller != this)) | |
181 | + | then (i.caller != invoker) | |
182 | + | else false) | |
248 | 183 | then throw("access only by project owner") | |
249 | 184 | else { | |
250 | 185 | let stakePZ = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "stakeIndexFor", [toString(this)], [AttachedPayment(pzBurnxtn, assetBalance(this, pzBurnxtn))]) | |
251 | 186 | if ((stakePZ == stakePZ)) | |
252 | 187 | then nil | |
253 | 188 | else throw("Strict value is not equal to itself.") | |
254 | 189 | } | |
255 | 190 | ||
256 | 191 | ||
257 | - | ||
258 | - | @Callable(i) | |
259 | - | func pump () = if ((i.caller != this)) | |
260 | - | then throw("access only by project owner") | |
261 | - | else { | |
262 | - | let swest = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(westId, assetBalance(this, westId))]) | |
263 | - | if ((swest == swest)) | |
264 | - | then { | |
265 | - | let svires = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(viresId, assetBalance(this, viresId))]) | |
266 | - | if ((svires == svires)) | |
267 | - | then { | |
268 | - | let segg = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(eggId, assetBalance(this, eggId))]) | |
269 | - | if ((segg == segg)) | |
270 | - | then { | |
271 | - | let snsbt = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))]) | |
272 | - | if ((snsbt == snsbt)) | |
273 | - | then { | |
274 | - | let swapwaves = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0)) | |
275 | - | then (wavesBalance(this).available - d8) | |
276 | - | else 0)]) | |
277 | - | if ((swapwaves == swapwaves)) | |
278 | - | then nil | |
279 | - | else throw("Strict value is not equal to itself.") | |
280 | - | } | |
281 | - | else throw("Strict value is not equal to itself.") | |
282 | - | } | |
283 | - | else throw("Strict value is not equal to itself.") | |
284 | - | } | |
285 | - | else throw("Strict value is not equal to itself.") | |
286 | - | } | |
287 | - | else throw("Strict value is not equal to itself.") | |
288 | - | } | |
289 | - | ||
290 | - | ||
291 | - | ||
292 | - | @Callable(i) | |
293 | - | func dEntry () = if ((i.caller != this)) | |
294 | - | then throw("access only by project owner") | |
295 | - | else [IntegerEntry("BURN-XTN / WAVES price in wavelets", burnxtnwavesprice), IntegerEntry("Price growth %", pricegrowth), IntegerEntry("ATH in wavelets", ATH), IntegerEntry("BURN-XTN / USD price in centlets", burnxtnusdprice), IntegerEntry("ATH in centlets", ATHusd), IntegerEntry("TVL project in WAVES excluding BURN-XTN", tvlinwaves), IntegerEntry("TVL pool in WAVES excluding BURN-XTN", tvlpool), IntegerEntry("Activated blockheight", height), IntegerEntry("BURN-XTN supply", match assetInfo(burnxtnId) { | |
296 | - | case asset: Asset => | |
297 | - | (asset.quantity / d8) | |
298 | - | case _ => | |
299 | - | throw("Can't find asset") | |
300 | - | }), IntegerEntry("BURN-XTN total burned", (1000000000 - match assetInfo(burnxtnId) { | |
301 | - | case asset: Asset => | |
302 | - | (asset.quantity / d8) | |
303 | - | case _ => | |
304 | - | throw("Can't find asset") | |
305 | - | })), IntegerEntry("SURF supply", match assetInfo(surfId) { | |
306 | - | case asset: Asset => | |
307 | - | (asset.quantity / d6) | |
308 | - | case _ => | |
309 | - | throw("Can't find asset") | |
310 | - | })] | |
311 | - | ||
312 | - | ||
313 | - | ||
314 | - | @Callable(i) | |
315 | - | func secondInvoke () = if ((i.caller != this)) | |
316 | - | then throw("access only by project owner") | |
317 | - | else { | |
318 | - | let wavesBalanceBefore = wavesBalance(this).available | |
319 | - | if ((wavesBalanceBefore == wavesBalanceBefore)) | |
320 | - | then { | |
321 | - | let burnxtnBalanceBefore = assetBalance(this, burnxtnId) | |
322 | - | if ((burnxtnBalanceBefore == burnxtnBalanceBefore)) | |
323 | - | then { | |
324 | - | let stakeSurf = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(surfId, assetBalance(this, surfId))]) | |
325 | - | if ((stakeSurf == stakeSurf)) | |
326 | - | then { | |
327 | - | let swapSwop = invoke(Address(poolMega), "swap", [toBase58String(puzzle), 0], [AttachedPayment(swopId, assetBalance(this, swopId))]) | |
328 | - | if ((swapSwop == swapSwop)) | |
329 | - | then { | |
330 | - | let poolOneTokenInv = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [toBase58String(poolBBB)], [AttachedPayment(puzzle, assetBalance(this, puzzle))]) | |
331 | - | if ((poolOneTokenInv == poolOneTokenInv)) | |
332 | - | then { | |
333 | - | let swapWhirl = invoke(Address(poolBBB), "swap", [toBase58String(burnxtnId), 0], [AttachedPayment(whirlpool, assetBalance(this, whirlpool))]) | |
334 | - | if ((swapWhirl == swapWhirl)) | |
335 | - | then { | |
336 | - | let swapRome = invoke(Address(poolBBB), "swap", [toBase58String(burnxtnId), 0], [AttachedPayment(rome, assetBalance(this, rome))]) | |
337 | - | if ((swapRome == swapRome)) | |
338 | - | then { | |
339 | - | let burnxtnDifference = (assetBalance(this, burnxtnId) - burnxtnBalanceBefore) | |
340 | - | let swapBurnxtn = invoke(Address(poolId), "swap", [toBase58String(surfId), 0], [AttachedPayment(burnxtnId, burnxtnDifference)]) | |
341 | - | if ((swapBurnxtn == swapBurnxtn)) | |
342 | - | then { | |
343 | - | let wavesDifference = (wavesBalance(this).available - wavesBalanceBefore) | |
344 | - | let swapWaves = invoke(Address(poolId), "swap", [toBase58String(surfId), 0], [AttachedPayment(unit, wavesDifference)]) | |
345 | - | if ((swapWaves == swapWaves)) | |
346 | - | then { | |
347 | - | let surfBurnAmount = assetBalance(this, surfId) | |
348 | - | let surfBurn = Burn(surfId, surfBurnAmount) | |
349 | - | [surfBurn, IntegerEntry("SURF total burned", (tryGetInteger(this, "SURF total burned") + surfBurnAmount))] | |
350 | - | } | |
351 | - | else throw("Strict value is not equal to itself.") | |
352 | - | } | |
353 | - | else throw("Strict value is not equal to itself.") | |
354 | - | } | |
355 | - | else throw("Strict value is not equal to itself.") | |
356 | - | } | |
357 | - | else throw("Strict value is not equal to itself.") | |
358 | - | } | |
359 | - | else throw("Strict value is not equal to itself.") | |
360 | - | } | |
361 | - | else throw("Strict value is not equal to itself.") | |
362 | - | } | |
363 | - | else throw("Strict value is not equal to itself.") | |
364 | - | } | |
365 | - | else throw("Strict value is not equal to itself.") | |
366 | - | } | |
367 | - | else throw("Strict value is not equal to itself.") | |
368 | - | } | |
369 | - | ||
370 | - | ||
371 | - | ||
372 | - | @Callable(i) | |
373 | - | func PumpByAnybody () = if (((getIntegerValue(this, "Activated blockheight") + (8 * 1440)) > height)) | |
374 | - | then throw(("Wait till blockheight:" + toString((getIntegerValue(this, "Activated blockheight") + (8 * 1440))))) | |
375 | - | else { | |
376 | - | let claimInv = invoke(Address(base58'3PE7NtJdmVq4yo47LKDqurQ8RLDCouvJCPB'), "claimIndexRewards", nil, nil) | |
377 | - | if ((claimInv == claimInv)) | |
378 | - | then { | |
379 | - | let swest = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(westId, assetBalance(this, westId))]) | |
380 | - | if ((swest == swest)) | |
381 | - | then { | |
382 | - | let svires = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(viresId, assetBalance(this, viresId))]) | |
383 | - | if ((svires == svires)) | |
384 | - | then { | |
385 | - | let segg = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(eggId, assetBalance(this, eggId))]) | |
386 | - | if ((segg == segg)) | |
387 | - | then { | |
388 | - | let ssurf = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(surfId, assetBalance(this, surfId))]) | |
389 | - | if ((ssurf == ssurf)) | |
390 | - | then { | |
391 | - | let snsbt = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(nsbtId, assetBalance(this, nsbtId))]) | |
392 | - | if ((snsbt == snsbt)) | |
393 | - | then { | |
394 | - | let swx = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(wxId, assetBalance(this, wxId))]) | |
395 | - | if ((swx == swx)) | |
396 | - | then { | |
397 | - | let sswop = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(swopId, assetBalance(this, swopId))]) | |
398 | - | if ((sswop == sswop)) | |
399 | - | then { | |
400 | - | let swapwaves = invoke(Address(poolId), "swap", [burnxtnString, 0], [AttachedPayment(unit, if (((wavesBalance(this).available - d8) > 0)) | |
401 | - | then (wavesBalance(this).available - d8) | |
402 | - | else 0)]) | |
403 | - | if ((swapwaves == swapwaves)) | |
404 | - | then { | |
405 | - | let xtnburnamount = assetBalance(this, xtnId) | |
406 | - | let xtnBurn = Burn(xtnId, xtnburnamount) | |
407 | - | let burnxtnBurn = Burn(burnxtnId, assetBalance(this, burnxtnId)) | |
408 | - | [xtnBurn, burnxtnBurn, IntegerEntry("BURN-XTN supply", match assetInfo(burnxtnId) { | |
409 | - | case asset: Asset => | |
410 | - | (asset.quantity / d8) | |
411 | - | case _ => | |
412 | - | throw("Can't find asset") | |
413 | - | }), IntegerEntry("BURN-XTN total burned", (1000000000 - match assetInfo(burnxtnId) { | |
414 | - | case asset: Asset => | |
415 | - | (asset.quantity / d8) | |
416 | - | case _ => | |
417 | - | throw("Can't find asset") | |
418 | - | })), IntegerEntry("XTN total burned", (getIntegerValue(this, "XTN total burned") + xtnburnamount))] | |
419 | - | } | |
420 | - | else throw("Strict value is not equal to itself.") | |
421 | - | } | |
422 | - | else throw("Strict value is not equal to itself.") | |
423 | - | } | |
424 | - | else throw("Strict value is not equal to itself.") | |
425 | - | } | |
426 | - | else throw("Strict value is not equal to itself.") | |
427 | - | } | |
428 | - | else throw("Strict value is not equal to itself.") | |
429 | - | } | |
430 | - | else throw("Strict value is not equal to itself.") | |
431 | - | } | |
432 | - | else throw("Strict value is not equal to itself.") | |
433 | - | } | |
434 | - | else throw("Strict value is not equal to itself.") | |
435 | - | } | |
436 | - | else throw("Strict value is not equal to itself.") | |
437 | - | } | |
438 | - | ||
439 | - | ||
440 | - | ||
441 | - | @Callable(i) | |
442 | - | func withdraw () = if ((i.caller != Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt'))) | |
443 | - | then throw("no access") | |
444 | - | else { | |
445 | - | let withdraw = invoke(Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk'), "withdrawVestedAllUSDN", [false, true], nil) | |
446 | - | if ((withdraw == withdraw)) | |
447 | - | then nil | |
448 | - | else throw("Strict value is not equal to itself.") | |
449 | - | } | |
450 | - | ||
451 | - |
github/deemru/w8io/6500d08 69.67 ms ◑