tx · 4sT2dcaQ2tYQwbjbexux5u6uHow6XgMt3MUewcQTvqej 3N7CrGtgTb8SxosNYbfN8HwyZEDrqExkdgA: -0.02200000 Waves 2023.07.21 12:32 [2675441] smart account 3N7CrGtgTb8SxosNYbfN8HwyZEDrqExkdgA > SELF 0.00000000 Waves
{ "type": 13, "id": "4sT2dcaQ2tYQwbjbexux5u6uHow6XgMt3MUewcQTvqej", "fee": 2200000, "feeAssetId": null, "timestamp": 1689931924381, "version": 2, "chainId": 84, "sender": "3N7CrGtgTb8SxosNYbfN8HwyZEDrqExkdgA", "senderPublicKey": "FyySBU6ydmEQirHxRVQwxjexQwZ4ikgE4LPJ8sxX2Naw", "proofs": [ "L4MVv9NEgmQzWUr2MbHVWnYud1nyHsKb8fqGwsQdxV33abwhfB1CgozcCQZV2JxUM4Ynbj5WpisJrYW2D8XvdNj" ], "script": "base64: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VG90YWxfQnVybmVkX0NPREU6AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAD1RvdGFsQnVybmVkQ09ERQkAAGQAAAACBQAAABJQcmV2aW91c0J1cm5lZENPREUIBQAAAANwbXQAAAAGYW1vdW50BAAAABRmZXRjaHVzZXJzdGFrZWhlaWdodAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAC1N0YWtpbmdEYXBwCQABLAAAAAICAAAAEkRlcG9zaXRfaGVpZ2h0X09mXwUAAAAKY3VycmVudEtleQIAAABJWW91ciBBZGRyZXNzIG5vdCBGb3VuZCBvbiBTdGFraW5nLCBEQXBwRXJyb3I6IERlcG9zaXQgSGVpZ2h0IGRhdGEgTWlzc2luZwQAAAAVZmV0Y2h1c2VybWF0dXJlaGVpZ2h0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAALU3Rha2luZ0RhcHAJAAEsAAAAAgIAAAAVVG90YWxfTG9ja19CbG9ja3NfT2ZfBQAAAApjdXJyZW50S2V5AgAAAExZb3VyIEFkZHJlc3Mgbm90IEZvdW5kIG9uIFN0YWtpbmcgREFwcCxFcnJvcjogVG90YWwgTG9jayBCbG9ja3MgZGF0YSBNaXNzaW5nBAAAAAtnYXBvZmhlaWdodAkAAGUAAAACBQAAABVmZXRjaHVzZXJtYXR1cmVoZWlnaHQFAAAAFGZldGNodXNlcnN0YWtlaGVpZ2h0BAAAABNjaGVja0xpY2Vuc2VCYWxhbmNlCQAD8AAAAAIJAQAAAAdBZGRyZXNzAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwUAAAASQ09ERUxJQ0VOU0VBc3NldElEBAAAABFjdXJyZW50Q09ERUFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQMJAAABAAAA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pAAAAAEIBQAAAANwbXQAAAAGYW1vdW50AgAAAAwpLzEwXjggQ09ERS4DCQEAAAACIT0AAAACBQAAAAtnYXBvZmhlaWdodAAAAAAAAAH6QAkAAAIAAAABAgAAAENZb3UgYXJlIE5vdCBFbGlnaWJsZSB0byBNaW50IENPREUuIEl0IG5lZWQgbWluaW11bSA5MCBEYXlzIFN0YWtpbmcuAwkAAAAAAAACBQAAABBVc2VyTm9PZkRlcG9zaXRzAAAAAAAAAAABCQAAAgAAAAECAAAAPVlvdSBBbHJlYWR5IEhhdmUgYW4gQWN0aXZlIFN0YWtpbmcsIFBsZWFzZSBXYWl0IHVudGlsIE1hdHVyZS4DCQAAZgAAAAIFAAAAC0J1cm5fZmFjdG9yBQAAABFtaW5pbXVtQnVybkZhY3RvcgkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAAC0NPREVBc3NldElECAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASVG90YWxfQnVybmVkX0NPREU6BQAAAA9Ub3RhbEJ1cm5lZENPREUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC1RvdGFsX1R4bnM6BQAAAA1Ub3RhbFR4bnNDT0RFCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAlJbmZsYXRpb24FAAAAC0luZmxhdGlvbk5vCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAxCbG9ja19QYXNzZWQFAAAACWJsb2NrZGlmZgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALQnVybl9GYWN0b3IFAAAAC0J1cm5fZmFjdG9yCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAD05vX09mX0RlcG9zaXRzXwUAAAAKY3VycmVudEtleQUAAAAYU3VtcHVwb2ZVc2VyTm9PZkRlcG9zaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfaGVpZ2h0X09mXwUAAAAKY3VycmVudEtleQUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFVRvdGFsX0xvY2tfQmxvY2tzX09mXwUAAAAKY3VycmVudEtleQUAAAAPdG90YWxsb2NrYmxvY2tzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQUAAAANbmV3Q09ERUFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAtSZXdhcmRzX09mXwUAAAAKY3VycmVudEtleQUAAAAPVXNlckNsYWltQW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UCAAAAJjxoMT5DT0RFIFN0YWtlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+BQAAAANuaWwDCQAAZgAAAAIFAAAAEW1pbmltdW1CdXJuRmFjdG9yBQAAAAtCdXJuX2ZhY3RvcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASTWluaW11bV9EYXlzX1JhbmdlBQAAABNOZXdfbWluaW11bWxvY2tkYXlzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJNYXhpbXVtX0RheXNfUmFuZ2UFAAAAE05ld19tYXhpbXVtbG9ja2RheXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAB08aDE+RGF5cyBSYW5nZSBFeHBlbmRlZCBmcm9tIAkAAaQAAAABBQAAAA9tYXhpbXVtbG9ja2RheXMCAAAACSBEYXlzIHRvIAkAAaQAAAABBQAAABNOZXdfbWF4aW11bWxvY2tkYXlzAgAAACEgRGF5cy4gUGxlYXNlIFJlLVN0YWtlIFlvdXIgQ29kZS4FAAAAA25pbAUAAAADbmlsAAAAAWkBAAAACFdpdGhkcmF3AAAAAAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAlNYXhBNEFBbXQAAAABF2WS4AAEAAAABk1heEZl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VE4DCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAARVG90YWxDbGFpbUZlZUluVE4JAABkAAAAAgUAAAAUUHJldmlvdXNDbGFpbUZlZUluVE4FAAAACENsYWltRmVlBAAAABRmZXRjaHVzZXJzdGFrZWhlaWdodAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAC1N0YWtpbmdEYXBwCQABLAAAAAICAAAAEkRlcG9zaXRfaGVpZ2h0X09mXwUAAAAKY3VycmVudEtleQIAAAAmWW91ciBBZGRyZXNzIG5vdCBGb3VuZCBvbiBTdGFraW5nIERBcHAEAAAAFWZldGNodXNlcm1hdHVyZWhlaWdodAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAC1N0YWtpbmdEYXBwCQABLAAAAAICAAAAFVRvdGFsX0xvY2tfQmxvY2tzX09mXwUAAAAKY3VycmVudEtleQIAAAAmWW91ciBBZGRyZXNzIG5vdCBGb3VuZCBvbiBTdGFraW5nIERBcHAEAAAAC2dhcG9maGVpZ2h0CQAAZQAAAAIFAAAAFWZldGNodXNlcm1hdHVyZWhlaWdodAUAAAAUZmV0Y2h1c2Vyc3Rha2VoZWlnaHQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAADBXcm9uZyBBc3NldCBBdHRhY2hlZCBmb3IgUGF5bWVudCwgcGxlYXNlIEF0dGFjaCAJAAGkAAAAAQUAAAAIQ2xhaW1GZWUCAAAACS8xMF44IFROLgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50BQAAAAhDbGFpbUZlZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAUUGxlYXNlIEF0dGFjaCBFeGFjdCAJAAGkAAAAAQUAAAAIQ2xhaW1GZWUCAAAACS8xMF44IFROLgMJAABmAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABVlvdXIgCQABpAAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkCAAAAPC8xMF44IENPREUgYXJlIFN0aWxsIE1hdHVyaW5nLiBUb2tlbiB3aWxsIGJlIFVubG9ja2VkIGFmdGVyIAkAAaQAAAABCQAAZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAVVG90YWxfTG9ja19CbG9ja3NfT2ZfBQAAAApjdXJyZW50S2V5BQAAAAZoZWlnaHQCAAAACCBibG9ja3MuAwkAAAAAAAACBQAAABFjaGVja2RlcG9zaXR2YWx1ZQAAAAAAAAAAAAkAAAIAAAABAgAAACtZb3UgSGF2ZSBBbHJlYWR5IFdpdGhkcmF3IHlvdXIgQ09ERSBBbW91bnQuAwkBAAAAAiE9AAAAAgUAAAALZ2Fwb2ZoZWlnaHQAAAAAAAAB+kAJAAACAAAAAQIAAAC8WW91IGFyZSBOb3QgRWxpZ2libGUgdG8gV2l0aGRyYXcgQ09ERS4gSXQgbmVlZCBtaW5pbXVtIDkwIERheXMgU3Rha2luZyBhdCBBNEEgREFwcC4gUHJvYmFibHkgeW91IGFscmVhZHkgaGF2ZSBDbGFpbWVkIFlvdXIgU3Rha2Ugb3IgeW91IE92ZXJ3cml0ZSB0aGUgU21hcnQgQ29udHJhY3Qgd2l0aCBsZXNzIHRoYW4gOTAgZGF5cy4DCQAAZwAAAAIFAAAAEWZldGNoVXNlclN0YWtlQW10AAAAARdlkt//CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtUb3RhbF9UeG5zOgUAAAANVG90YWxUeG5zQ09ERQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATVG90YWxfQ09ERV9DbGFpbWVkOgUAAAASdG90YWxyZXdhcmRjbGFpbWVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJUb3RhbF9Jc3N1ZWRfQ09ERToFAAAAD1RvdGFsSXNzdWVkQ09ERQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAVVG90YWxfQ2xhaW1fRmVlX0luX1ROBQAAABFUb3RhbENsYWltRmVlSW5UTgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAMRmVlXyVfQ2hhcmdlBQAAAA5GbGF0ZmVlUGVyY2VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAKRmVlX0Ftb3VudAUAAAAOdXNlckZsYXRGZWVBbXQJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADBQAAAAtDT0RFQXNzZXRJRAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAtSZXdhcmRzX09mXwUAAAAKY3VycmVudEtleQYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCQAAZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkFAAAADnVzZXJGbGF0RmVlQW10BQAAAAtDT0RFQXNzZXRJRAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAABJUcmVhc3VyeUZlZUFkZHJlc3MJAABrAAAAAwUAAAAOdXNlckZsYXRGZWVBbXQAAAAAAAAAAFAAAAAAAAAAAGQFAAAAC0NPREVBc3NldElECQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAACmRldmFkZHJlc3MJAABrAAAAAwUAAAAOdXNlckZsYXRGZWVBbXQFAAAADGRldmZlZWNoYXJlZAAAAAAAAAAAZAUAAAALQ09ERUFzc2V0SUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAPTm9fT2ZfRGVwb3NpdHNfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfaGVpZ2h0X09mXwUAAAAKY3VycmVudEtleQAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAASRGVwb3NpdF9BbW91bnRfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAC1Jld2FyZHNfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UCAAAAKDxoMT5DT0RFIFVuU3Rha2VkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4FAAAAA25pbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALVG90YWxfVHhuczoFAAAADVRvdGFsVHhuc0NPREUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1RvdGFsX0NPREVfQ2xhaW1lZDoFAAAAEnRvdGFscmV3YXJkY2xhaW1lZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASVG90YWxfSXNzdWVkX0NPREU6BQAAAA9Ub3RhbElzc3VlZENPREUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFVRvdGFsX0NsYWltX0ZlZV9Jbl9UTgUAAAARVG90YWxDbGFpbUZlZUluVE4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADEZlZV8lX0NoYXJnZQUAAAALRmVlc1BlcmNlbnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAACkZlZV9BbW91bnQF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", "height": 2675441, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7jJqfGbdP1aYesYezA9a2JPYXtTBe74w6NzsxkZzaVMc Next: JCRMZuqf9ww4MRpMxiDN4LecG7g96yZ3pj8RCJHxavjZ Diff:
Old | New | Differences | |
---|---|---|---|
57 | 57 | 0 | |
58 | 58 | } | |
59 | 59 | let TotalBurnedCODE = (PreviousBurnedCODE + pmt.amount) | |
60 | - | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking | |
61 | - | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
60 | + | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking, DAppError: Deposit Height data Missing") | |
61 | + | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp,Error: Total Lock Blocks data Missing") | |
62 | 62 | let gapofheight = (fetchusermatureheight - fetchuserstakeheight) | |
63 | 63 | let checkLicenseBalance = assetBalance(Address(i.caller.bytes), CODELICENSEAssetID) | |
64 | 64 | let currentCODEAmount = match getInteger(this, ("Deposit_Amount_Of_" + currentKey)) { |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let CODEAssetID = base58'ArPqXguhFLjJt5XwcNwhXMnCv2zSumrM19y5WgT34yRi' | |
5 | 5 | ||
6 | 6 | let CODELICENSEAssetID = base58'AxK7XXUow7R1roZXLyYbW7qokA3ELxAWPpyXkJCJumCa' | |
7 | 7 | ||
8 | 8 | let StakingDapp = base58'FyySBU6ydmEQirHxRVQwxjexQwZ4ikgE4LPJ8sxX2Naw' | |
9 | 9 | ||
10 | 10 | let TreasuryFeeAddress = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
11 | 11 | ||
12 | 12 | let devaddress = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
13 | 13 | ||
14 | 14 | let devfeechared = 20 | |
15 | 15 | ||
16 | 16 | let StartHeight = 1850000 | |
17 | 17 | ||
18 | 18 | let minimumBurnFactor = 1000000 | |
19 | 19 | ||
20 | 20 | let minimumlockdays = getIntegerValue(this, "Minimum_Days_Range") | |
21 | 21 | ||
22 | 22 | let maximumlockdays = getIntegerValue(this, "Maximum_Days_Range") | |
23 | 23 | ||
24 | 24 | let New_minimumlockdays = (minimumlockdays + 1) | |
25 | 25 | ||
26 | 26 | let New_maximumlockdays = (maximumlockdays + 1) | |
27 | 27 | ||
28 | 28 | let oneday = 1440 | |
29 | 29 | ||
30 | 30 | let blockdiff = (height - StartHeight) | |
31 | 31 | ||
32 | 32 | let InflationNo = (fraction(10000000000, 1, blockdiff) + 6000) | |
33 | 33 | ||
34 | 34 | @Callable(i) | |
35 | 35 | func Deposit (days) = { | |
36 | 36 | let pmt = if ((size(i.payments) == 1)) | |
37 | 37 | then i.payments[0] | |
38 | 38 | else throw((("No Payments Attached Please Attach " + toBase58String(CODEAssetID)) + " Asset Only.")) | |
39 | 39 | let currentKey = toBase58String(i.caller.bytes) | |
40 | 40 | let UserClaimAmount = ((((InflationNo * pmt.amount) * days) / 365) / 1000) | |
41 | 41 | let allowdedpymt = (blockdiff * 100000) | |
42 | 42 | let actualblocks = (oneday * days) | |
43 | 43 | let totallockblocks = (height + actualblocks) | |
44 | 44 | let max_receivable = fraction(maximumlockdays, (allowdedpymt * InflationNo), (365 * 1000)) | |
45 | 45 | let Burn_factor = fraction(max_receivable, 1000000, allowdedpymt) | |
46 | 46 | let PreviousTxnsCODE = match getIntegerValue(this, "Total_Txns:") { | |
47 | 47 | case a: Int => | |
48 | 48 | a | |
49 | 49 | case _ => | |
50 | 50 | 0 | |
51 | 51 | } | |
52 | 52 | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
53 | 53 | let PreviousBurnedCODE = match getInteger(this, "Total_Burned_CODE:") { | |
54 | 54 | case a: Int => | |
55 | 55 | a | |
56 | 56 | case _ => | |
57 | 57 | 0 | |
58 | 58 | } | |
59 | 59 | let TotalBurnedCODE = (PreviousBurnedCODE + pmt.amount) | |
60 | - | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking | |
61 | - | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
60 | + | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking, DAppError: Deposit Height data Missing") | |
61 | + | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp,Error: Total Lock Blocks data Missing") | |
62 | 62 | let gapofheight = (fetchusermatureheight - fetchuserstakeheight) | |
63 | 63 | let checkLicenseBalance = assetBalance(Address(i.caller.bytes), CODELICENSEAssetID) | |
64 | 64 | let currentCODEAmount = match getInteger(this, ("Deposit_Amount_Of_" + currentKey)) { | |
65 | 65 | case a: Int => | |
66 | 66 | a | |
67 | 67 | case _ => | |
68 | 68 | 0 | |
69 | 69 | } | |
70 | 70 | let newCODEAmount = (currentCODEAmount + pmt.amount) | |
71 | 71 | let UserNoOfDeposits = match getInteger(this, ("No_Of_Deposits_" + currentKey)) { | |
72 | 72 | case a: Int => | |
73 | 73 | a | |
74 | 74 | case _ => | |
75 | 75 | 0 | |
76 | 76 | } | |
77 | 77 | let SumpupofUserNoOfDeposits = (UserNoOfDeposits + 1) | |
78 | 78 | if ((checkLicenseBalance != 1)) | |
79 | 79 | then throw("You Need to Mint a CODE License from DApp Address 3JeqfvcGZxJbuSpCB5cFhV2Bb8fdV4WzZzZ.") | |
80 | 80 | else if ((checkLicenseBalance > 1)) | |
81 | 81 | then throw("You Own Multiple CODE License on Same Address.") | |
82 | 82 | else if ((StartHeight > height)) | |
83 | 83 | then throw((("DApp is Not Started Yet please Wait until " + toString((StartHeight - height))) + " blocks")) | |
84 | 84 | else if ((pmt.assetId != CODEAssetID)) | |
85 | 85 | then throw((("Incorrect asset attached, please attach " + toBase58String(CODEAssetID)) + " asset only")) | |
86 | 86 | else if ((minimumlockdays >= days)) | |
87 | 87 | then throw(((("Choose Locking days in between " + toString((minimumlockdays + 1))) + " to ") + toString(maximumlockdays))) | |
88 | 88 | else if ((days > maximumlockdays)) | |
89 | 89 | then throw(((((("You Entered days to " + toString(days)) + ", Please Enter no. of days in between ") + toString((minimumlockdays + 1))) + " to ") + toString(maximumlockdays))) | |
90 | 90 | else if ((100000 > pmt.amount)) | |
91 | 91 | then throw("Please Attach minimum 0.001 CODE Token To Issue More CODE Asset.") | |
92 | 92 | else if ((pmt.amount > allowdedpymt)) | |
93 | 93 | then throw((("You can attach maximum " + toString(allowdedpymt)) + "/10^8 CODE.")) | |
94 | 94 | else if ((pmt.amount > UserClaimAmount)) | |
95 | 95 | then throw((((("Your Stake Output is lower than input, please increase no. of days (" + toString(UserClaimAmount)) + "/") + toString(pmt.amount)) + ")/10^8 CODE.")) | |
96 | 96 | else if ((gapofheight != 129600)) | |
97 | 97 | then throw("You are Not Eligible to Mint CODE. It need minimum 90 Days Staking.") | |
98 | 98 | else if ((UserNoOfDeposits == 1)) | |
99 | 99 | then throw("You Already Have an Active Staking, Please Wait until Mature.") | |
100 | 100 | else if ((Burn_factor > minimumBurnFactor)) | |
101 | 101 | then [Burn(CODEAssetID, pmt.amount), IntegerEntry("Total_Burned_CODE:", TotalBurnedCODE), IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Inflation", InflationNo), IntegerEntry("Block_Passed", blockdiff), IntegerEntry("Burn_Factor", Burn_factor), IntegerEntry(("No_Of_Deposits_" + currentKey), SumpupofUserNoOfDeposits), IntegerEntry(("Deposit_height_Of_" + currentKey), height), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), totallockblocks), IntegerEntry(("Deposit_Amount_Of_" + currentKey), newCODEAmount), IntegerEntry(("Rewards_Of_" + currentKey), UserClaimAmount), StringEntry("message", "<h1>CODE Staked Successfully!</h1><br>")] | |
102 | 102 | else if ((minimumBurnFactor > Burn_factor)) | |
103 | 103 | then [IntegerEntry("Minimum_Days_Range", New_minimumlockdays), IntegerEntry("Maximum_Days_Range", New_maximumlockdays), StringEntry("message", (((("<h1>Days Range Expended from " + toString(maximumlockdays)) + " Days to ") + toString(New_maximumlockdays)) + " Days. Please Re-Stake Your Code."))] | |
104 | 104 | else nil | |
105 | 105 | } | |
106 | 106 | ||
107 | 107 | ||
108 | 108 | ||
109 | 109 | @Callable(i) | |
110 | 110 | func Withdraw () = { | |
111 | 111 | let currentKey = toBase58String(i.caller.bytes) | |
112 | 112 | let MaxA4AAmt = 1200000000000 | |
113 | 113 | let MaxFee = 24000000 | |
114 | 114 | let divisiblefactor = 19 | |
115 | 115 | let fetchUserStakeAmt = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_Amount_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
116 | 116 | let FlatfeePercent = 500 | |
117 | 117 | let FeesPercent = ((MaxFee - (fraction(fetchUserStakeAmt, 1000000, MaxA4AAmt) * 19)) / 10000) | |
118 | 118 | let ClaimFee = getIntegerValue(this, "Claim_Fee") | |
119 | 119 | let pmt = value(i.payments[0]) | |
120 | 120 | let checkdepositvalue = getIntegerValue(this, ("Deposit_Amount_Of_" + currentKey)) | |
121 | 121 | let userFeeAmt = (((getIntegerValue(this, ("Rewards_Of_" + currentKey)) - checkdepositvalue) * FeesPercent) / 10000) | |
122 | 122 | let userFlatFeeAmt = (((getIntegerValue(this, ("Rewards_Of_" + currentKey)) - checkdepositvalue) * FlatfeePercent) / 10000) | |
123 | 123 | let PreviousTxnsCODE = match getIntegerValue(this, "Total_Txns:") { | |
124 | 124 | case a: Int => | |
125 | 125 | a | |
126 | 126 | case _ => | |
127 | 127 | 0 | |
128 | 128 | } | |
129 | 129 | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
130 | 130 | let fetchRewardData = match getIntegerValue(this, "Total_CODE_Claimed:") { | |
131 | 131 | case a: Int => | |
132 | 132 | a | |
133 | 133 | case _ => | |
134 | 134 | 0 | |
135 | 135 | } | |
136 | 136 | let totalrewardclaimed = (fetchRewardData + getIntegerValue(this, ("Rewards_Of_" + currentKey))) | |
137 | 137 | let PreviousIssuedCODE = match getIntegerValue(this, "Total_Issued_CODE:") { | |
138 | 138 | case a: Int => | |
139 | 139 | a | |
140 | 140 | case _ => | |
141 | 141 | 0 | |
142 | 142 | } | |
143 | 143 | let TotalIssuedCODE = (PreviousIssuedCODE + getIntegerValue(this, ("Rewards_Of_" + currentKey))) | |
144 | 144 | let PreviousClaimFeeInTN = match getIntegerValue(this, "Total_Claim_Fee_In_TN") { | |
145 | 145 | case a: Int => | |
146 | 146 | a | |
147 | 147 | case _ => | |
148 | 148 | 0 | |
149 | 149 | } | |
150 | 150 | let TotalClaimFeeInTN = (PreviousClaimFeeInTN + ClaimFee) | |
151 | 151 | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
152 | 152 | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
153 | 153 | let gapofheight = (fetchusermatureheight - fetchuserstakeheight) | |
154 | 154 | if (isDefined(pmt.assetId)) | |
155 | 155 | then throw((("Wrong Asset Attached for Payment, please Attach " + toString(ClaimFee)) + "/10^8 TN.")) | |
156 | 156 | else if ((pmt.amount != ClaimFee)) | |
157 | 157 | then throw((("Please Attach Exact " + toString(ClaimFee)) + "/10^8 TN.")) | |
158 | 158 | else if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) > height)) | |
159 | 159 | then throw((((("Your " + toString(getIntegerValue(this, ("Rewards_Of_" + currentKey)))) + "/10^8 CODE are Still Maturing. Token will be Unlocked after ") + toString((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) - height))) + " blocks.")) | |
160 | 160 | else if ((checkdepositvalue == 0)) | |
161 | 161 | then throw("You Have Already Withdraw your CODE Amount.") | |
162 | 162 | else if ((gapofheight != 129600)) | |
163 | 163 | then throw("You are Not Eligible to Withdraw CODE. It need minimum 90 Days Staking at A4A DApp. Probably you already have Claimed Your Stake or you Overwrite the Smart Contract with less than 90 days.") | |
164 | 164 | else if ((fetchUserStakeAmt >= 1199999999999)) | |
165 | 165 | then [IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Total_CODE_Claimed:", totalrewardclaimed), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), IntegerEntry("Total_Claim_Fee_In_TN", TotalClaimFeeInTN), IntegerEntry("Fee_%_Charge", FlatfeePercent), IntegerEntry("Fee_Amount", userFlatFeeAmt), Reissue(CODEAssetID, getIntegerValue(this, ("Rewards_Of_" + currentKey)), true), ScriptTransfer(i.caller, (getIntegerValue(this, ("Rewards_Of_" + currentKey)) - userFlatFeeAmt), CODEAssetID), ScriptTransfer(addressFromPublicKey(TreasuryFeeAddress), fraction(userFlatFeeAmt, 80, 100), CODEAssetID), ScriptTransfer(addressFromPublicKey(devaddress), fraction(userFlatFeeAmt, devfeechared, 100), CODEAssetID), IntegerEntry(("No_Of_Deposits_" + currentKey), 0), IntegerEntry(("Deposit_height_Of_" + currentKey), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), 0), IntegerEntry(("Deposit_Amount_Of_" + currentKey), 0), IntegerEntry(("Rewards_Of_" + currentKey), 0), StringEntry("message", "<h1>CODE UnStaked Successfully!</h1><br>")] | |
166 | 166 | else [IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Total_CODE_Claimed:", totalrewardclaimed), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), IntegerEntry("Total_Claim_Fee_In_TN", TotalClaimFeeInTN), IntegerEntry("Fee_%_Charge", FeesPercent), IntegerEntry("Fee_Amount", userFeeAmt), Reissue(CODEAssetID, getIntegerValue(this, ("Rewards_Of_" + currentKey)), true), ScriptTransfer(i.caller, (getIntegerValue(this, ("Rewards_Of_" + currentKey)) - userFeeAmt), CODEAssetID), ScriptTransfer(addressFromPublicKey(TreasuryFeeAddress), fraction(userFeeAmt, 80, 100), CODEAssetID), ScriptTransfer(addressFromPublicKey(devaddress), fraction(userFeeAmt, devfeechared, 100), CODEAssetID), IntegerEntry(("No_Of_Deposits_" + currentKey), 0), IntegerEntry(("Deposit_height_Of_" + currentKey), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), 0), IntegerEntry(("Deposit_Amount_Of_" + currentKey), 0), IntegerEntry(("Rewards_Of_" + currentKey), 0), StringEntry("message", "<h1>CODE UnStaked Successfully!</h1><br>")] | |
167 | 167 | } | |
168 | 168 | ||
169 | 169 | ||
170 | 170 | ||
171 | 171 | @Callable(i) | |
172 | 172 | func SetDaysRange (Minimum_Days_Range,Maximum_Days_Range) = { | |
173 | 173 | let calleraddress = toBase58String(i.caller.bytes) | |
174 | 174 | let adminrights = getStringValue(this, "DApp_Admin_Rights") | |
175 | 175 | let Minimum_days = 7 | |
176 | 176 | let Maximum_days = 200 | |
177 | 177 | if ((adminrights != calleraddress)) | |
178 | 178 | then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to change Days Range.")) | |
179 | 179 | else if ((Minimum_days > Minimum_Days_Range)) | |
180 | 180 | then throw("Minimum days range must be more than 6 and in between 7-200.") | |
181 | 181 | else if ((Maximum_Days_Range > Maximum_days)) | |
182 | 182 | then throw("Maximum days range can't exceed the 200.") | |
183 | 183 | else if ((Minimum_Days_Range > Maximum_Days_Range)) | |
184 | 184 | then throw((((("Minimum days range can't be exceed the value of Maximum days range. Choose the Range between [" + toString(Minimum_days)) + "-") + toString(Maximum_days)) + "]")) | |
185 | 185 | else [IntegerEntry("Minimum_Days_Range", Minimum_Days_Range), IntegerEntry("Maximum_Days_Range", Maximum_Days_Range)] | |
186 | 186 | } | |
187 | 187 | ||
188 | 188 | ||
189 | 189 | ||
190 | 190 | @Callable(i) | |
191 | 191 | func SetClaimFee (ClaimFee) = { | |
192 | 192 | let calleraddress = toBase58String(i.caller.bytes) | |
193 | 193 | let adminrights = getStringValue(this, "DApp_Admin_Rights") | |
194 | 194 | let Minimum_Claim_fee = 100000000 | |
195 | 195 | let Maximum_Claim_fee = 100000000000 | |
196 | 196 | if ((adminrights != calleraddress)) | |
197 | 197 | then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to change Claim Fee.")) | |
198 | 198 | else if ((Minimum_Claim_fee > ClaimFee)) | |
199 | 199 | then throw((("Minimum Claim fee is " + toString(Minimum_Claim_fee)) + " TN [int-format].")) | |
200 | 200 | else if ((ClaimFee > Maximum_Claim_fee)) | |
201 | 201 | then throw((("Maximum Claim fee can't be more than " + toString(Maximum_Claim_fee)) + " TN. [int-format]")) | |
202 | 202 | else [IntegerEntry("Claim_Fee", ClaimFee)] | |
203 | 203 | } | |
204 | 204 | ||
205 | 205 | ||
206 | 206 | @Verifier(tx) | |
207 | 207 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
208 | 208 |
github/deemru/w8io/026f985 51.82 ms ◑