tx · GygkpwQ1jfHPXTU3zS15Rr5Y9vzMYEtnRuZFf8ZiWzzn 3N34Zi5VD4m9az4kEXWDJngkMHMTpqLcoqo: -0.01400000 Waves 2021.10.16 07:34 [1748361] smart account 3N34Zi5VD4m9az4kEXWDJngkMHMTpqLcoqo > SELF 0.00000000 Waves
{ "type": 13, "id": "GygkpwQ1jfHPXTU3zS15Rr5Y9vzMYEtnRuZFf8ZiWzzn", "fee": 1400000, "feeAssetId": null, "timestamp": 1634358957060, "version": 2, "chainId": 84, "sender": "3N34Zi5VD4m9az4kEXWDJngkMHMTpqLcoqo", "senderPublicKey": "AmXrJ1inc5jpKhf6D9aDcRU8QWHZXBJdBBvz9VsKDe9x", "proofs": [ "3GcDxwdp6HBV5u79Ysyze5TNww2Sk3gMA6XahDG7hahfKfVDXxy3ucNEMk8DbW41dZMtWggGeZApRWjaZEbpkhtj" ], "script": "base64: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AAACBQAAAAtDT0RFQXNzZXRJRAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAElRvdGFsX0J1cm5lZF9DT0RFOgUAAAAPVG90YWxCdXJuZWRDT0RFCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtUb3RhbF9UeG5zOgUAAAANVG90YWxUeG5zQ09ERQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAJSW5mbGF0aW9uBQAAAAtJbmZsYXRpb25ObwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAMQmxvY2tfUGFzc2VkBQAAAAlibG9ja2RpZmYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAPTm9fT2ZfRGVwb3NpdHNfBQAAAApjdXJyZW50S2V5BQAAABhTdW1wdXBvZlVzZXJOb09mRGVwb3NpdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAASRGVwb3NpdF9oZWlnaHRfT2ZfBQAAAApjdXJyZW50S2V5BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAVVG90YWxfTG9ja19CbG9ja3NfT2ZfBQAAAApjdXJyZW50S2V5BQAAAA90b3RhbGxvY2tibG9ja3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAASRGVwb3NpdF9BbW91bnRfT2ZfBQAAAApjdXJyZW50S2V5BQAAAA1uZXdDT0RFQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAC1Jld2FyZHNfT2ZfBQAAAApjdXJyZW50S2V5BQAAAA9Vc2VyQ2xhaW1BbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAmPGgxPkNPREUgU3Rha2VkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4FAAAAA25pbAAAAAFpAQAAAAhXaXRoZHJhdwAAAAAEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAARY2hlY2tkZXBvc2l0dmFsdWUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAASRGVwb3NpdF9BbW91bnRfT2ZfBQAAAApjdXJyZW50S2V5BAAAAA9mZXRjaFJld2FyZERhdGEEAAAAByRtYXRjaDAJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAE1RvdGFsX0NPREVfQ2xhaW1lZDoDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAASdG90YWxyZXdhcmRjbGFpbWVkCQAAZAAAAAIFAAAAD2ZldGNoUmV3YXJkRGF0YQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAtSZXdhcmRzX09mXwUAAAAKY3VycmVudEtleQQAAAASUHJldmlvdXNJc3N1ZWRDT0RFBAAAAAckbWF0Y2gwCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABJUb3RhbF9Jc3N1ZWRfQ09ERToDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAPVG90YWxJc3N1ZWRDT0RFCQAAZAAAAAIFAAAAElByZXZpb3VzSXNzdWVkQ09ERQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAtSZXdhcmRzX09mXwUAAAAKY3VycmVudEtleQMJAABmAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABVlvdXIgCQABpAAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkCAAAAOy8xMF44IENPREUgYXJlIFN0aWwgTWF0dXJpbmcuIFRva2VuIHdpbGwgYmUgVW5sb2NrZWQgYWZ0ZXIgCQABpAAAAAEJAABlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABVUb3RhbF9Mb2NrX0Jsb2Nrc19PZl8FAAAACmN1cnJlbnRLZXkFAAAABmhlaWdodAIAAAAIIGJsb2Nrcy4DCQAAAAAAAAIFAAAAEWNoZWNrZGVwb3NpdHZhbHVlAAAAAAAAAAAACQAAAgAAAAECAAAAK1lvdSBIYXZlIEFscmVhZHkgV2l0aGRyYXcgeW91ciBDT0RFIEFtb3VudC4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC1RvdGFsX1R4bnM6BQAAAA1Ub3RhbFR4bnNDT0RFCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNUb3RhbF9DT0RFX0NsYWltZWQ6BQAAABJ0b3RhbHJld2FyZGNsYWltZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAElRvdGFsX0lzc3VlZF9DT0RFOgUAAAAPVG90YWxJc3N1ZWRDT0RFCQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAALQ09ERUFzc2V0SUQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgkAAGkAAAACCQAAaAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkFAAAACnVzZXJhbW91bnQAAAAAAAAAA+gFAAAAC0NPREVBc3NldElECQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAElRyZWFzdXJ5RmVlQWRkcmVzcwkAAGkAAAACCQAAaAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALUmV3YXJkc19PZl8FAAAACmN1cnJlbnRLZXkFAAAAC1RyZWFzdXJ5RmVlAAAAAAAAAAPoBQAAAAtDT0RFQXNzZXRJRAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAApkZXZBZGRyZXNzCQAAaQAAAAIJAABoAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAtSZXdhcmRzX09mXwUAAAAKY3VycmVudEtleQUAAAAGZGV2RmVlAAAAAAAAAAPoBQAAAAtDT0RFQXNzZXRJRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABJEZXBvc2l0X2hlaWdodF9PZl8FAAAACmN1cnJlbnRLZXkAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAVVG90YWxfTG9ja19CbG9ja3NfT2ZfBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEkRlcG9zaXRfQW1vdW50X09mXwUAAAAKY3VycmVudEtleQAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAtSZXdhcmRzX09mXwUAAAAKY3VycmVudEtleQAAAAAAAAAAAAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXnorBtu", "height": 1748361, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HjVNhG8P7eZUBv1Dykdi9ED9wn5eiDwaq9wJPBGHGALA Next: GX9eEYfneAuKBbjtNUspEoQcp8bFHVcrDjq1pXVw37jU Diff:
Old | New | Differences | |
---|---|---|---|
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let CODEAssetID = base58'ArPqXguhFLjJt5XwcNwhXMnCv2zSumrM19y5WgT34yRi' | |
5 | 5 | ||
6 | + | let StakingDapp = base58'C246qxhuyo9DBk1pjMzEQSVAWmiqYupG2swGkxTeAvLV' | |
7 | + | ||
8 | + | let TreasuryFeeAddress = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
9 | + | ||
10 | + | let devAddress = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
11 | + | ||
12 | + | let devFee = 1 | |
13 | + | ||
14 | + | let TreasuryFee = 9 | |
15 | + | ||
16 | + | let useramount = ((1000 - TreasuryFee) - devFee) | |
17 | + | ||
6 | 18 | let StartHeight = 1746408 | |
7 | - | ||
8 | - | let oneday = 1440 | |
9 | 19 | ||
10 | 20 | let minimumlockdays = 6 | |
11 | 21 | ||
12 | 22 | let maximumlockdays = 7 | |
13 | 23 | ||
24 | + | let oneday = 1440 | |
25 | + | ||
14 | 26 | let blockdiff = (height - StartHeight) | |
15 | 27 | ||
16 | 28 | let InflationNo = (fraction(10000000000, 1, blockdiff) + 6000) | |
17 | 29 | ||
18 | - | let StakingDapp = base58'C246qxhuyo9DBk1pjMzEQSVAWmiqYupG2swGkxTeAvLV' | |
30 | + | let PreviousTxnsCODE = match getIntegerValue(this, "Total_Txns:") { | |
31 | + | case a: Int => | |
32 | + | a | |
33 | + | case _ => | |
34 | + | 0 | |
35 | + | } | |
19 | 36 | ||
20 | - | let FeeAddress = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
21 | - | ||
22 | - | let devAddress = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
37 | + | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
23 | 38 | ||
24 | 39 | @Callable(i) | |
25 | 40 | func Deposit (days) = { | |
26 | 41 | let pmt = if ((size(i.payments) == 1)) | |
27 | 42 | then i.payments[0] | |
28 | - | else throw("No Payments Attached Please Attach | |
43 | + | else throw((("No Payments Attached Please Attach " + toBase58String(CODEAssetID)) + " Asset Only.")) | |
29 | 44 | let currentKey = toBase58String(i.caller.bytes) | |
30 | 45 | let UserClaimAmount = ((((InflationNo * pmt.amount) * days) / 365) / 1000) | |
31 | 46 | let allowdedpymt = (blockdiff * 100000) | |
32 | 47 | let actualblocks = (oneday * days) | |
33 | 48 | let totallockblocks = (height + actualblocks) | |
34 | - | let PreviousBurnedCODE = getIntegerValue(this, "Total_Burned_CODE:") | |
35 | - | let TotalBurnedCODE = (PreviousBurnedCODE + pmt.amount) | |
36 | - | let PreviousTxnsCODE = getIntegerValue(this, "Total_Txns:") | |
37 | - | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
38 | - | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
39 | - | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
40 | - | let gapofheight = (fetchusermatureheight - fetchuserstakeheight) | |
41 | - | let StakedCODEAmount = match getInteger(this, "Staked_Amount") { | |
49 | + | let PreviousBurnedCODE = match getInteger(this, "Total_Burned_CODE:") { | |
42 | 50 | case a: Int => | |
43 | 51 | a | |
44 | 52 | case _ => | |
45 | 53 | 0 | |
46 | 54 | } | |
47 | - | let newStakedCODEAmount = (StakedCODEAmount + pmt.amount) | |
55 | + | let TotalBurnedCODE = (PreviousBurnedCODE + pmt.amount) | |
56 | + | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
57 | + | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
58 | + | let gapofheight = (fetchusermatureheight - fetchuserstakeheight) | |
48 | 59 | let currentCODEAmount = match getInteger(this, ("Deposit_Amount_Of_" + currentKey)) { | |
49 | 60 | case a: Int => | |
50 | 61 | a | |
52 | 63 | 0 | |
53 | 64 | } | |
54 | 65 | let newCODEAmount = (currentCODEAmount + pmt.amount) | |
66 | + | let UserNoOfDeposits = match getInteger(this, ("No_Of_Deposits_" + currentKey)) { | |
67 | + | case a: Int => | |
68 | + | a | |
69 | + | case _ => | |
70 | + | 0 | |
71 | + | } | |
72 | + | let SumpupofUserNoOfDeposits = (UserNoOfDeposits + 1) | |
55 | 73 | if ((StartHeight > height)) | |
56 | 74 | then throw((("DApp is Not Started Yet please Wait until " + toString((StartHeight - height))) + " blocks")) | |
57 | 75 | else if ((pmt.assetId != CODEAssetID)) | |
58 | - | then throw(("Incorrect asset attached, please attach " + toBase58String(CODEAssetID))) | |
76 | + | then throw((("Incorrect asset attached, please attach " + toBase58String(CODEAssetID)) + " asset only")) | |
59 | 77 | else if ((minimumlockdays >= days)) | |
60 | 78 | then throw(((("Choose Locking days in between " + toString((minimumlockdays + 1))) + " to ") + toString(maximumlockdays))) | |
61 | 79 | else if ((days > maximumlockdays)) | |
62 | 80 | then throw(((((("You Entered days to " + toString(days)) + ", Please Enter no. of days in between ") + toString((minimumlockdays + 1))) + " to ") + toString(maximumlockdays))) | |
63 | 81 | else if ((100000 > pmt.amount)) | |
64 | - | then throw("Please Attach minimum 0.001 CODE To Issue CODE Asset.") | |
82 | + | then throw("Please Attach minimum 0.001 CODE Token To Issue More CODE Asset.") | |
65 | 83 | else if ((pmt.amount > allowdedpymt)) | |
66 | 84 | then throw((("You can attach maximum " + toString(allowdedpymt)) + "/10^8 CODE.")) | |
67 | 85 | else if ((gapofheight != 129600)) | |
68 | 86 | then throw("You are Not Eligible to Mint CODE. It need minimum 90 Days Staking.") | |
69 | - | else [Burn(CODEAssetID, pmt.amount), IntegerEntry("Total_Burned_CODE:", TotalBurnedCODE), IntegerEntry(" | |
87 | + | else [Burn(CODEAssetID, pmt.amount), IntegerEntry("Total_Burned_CODE:", TotalBurnedCODE), IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Inflation", InflationNo), IntegerEntry("Block_Passed", blockdiff), 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>")] | |
70 | 88 | } | |
71 | 89 | ||
72 | 90 | ||
75 | 93 | func Withdraw () = { | |
76 | 94 | let currentKey = toBase58String(i.caller.bytes) | |
77 | 95 | let checkdepositvalue = getIntegerValue(this, ("Deposit_Amount_Of_" + currentKey)) | |
78 | - | let checkstakedvalue = getIntegerValue(this, "Staked_Amount") | |
79 | - | let newstakedvalue = (checkstakedvalue - checkdepositvalue) | |
80 | - | let fetchRewardData = getIntegerValue(this, "Total_CODE_Claimed:") | |
96 | + | let fetchRewardData = match getIntegerValue(this, "Total_CODE_Claimed:") { | |
97 | + | case a: Int => | |
98 | + | a | |
99 | + | case _ => | |
100 | + | 0 | |
101 | + | } | |
81 | 102 | let totalrewardclaimed = (fetchRewardData + getIntegerValue(this, ("Rewards_Of_" + currentKey))) | |
82 | - | let PreviousIssuedCODE = getIntegerValue(this, "Total_Issued_CODE:") | |
103 | + | let PreviousIssuedCODE = match getIntegerValue(this, "Total_Issued_CODE:") { | |
104 | + | case a: Int => | |
105 | + | a | |
106 | + | case _ => | |
107 | + | 0 | |
108 | + | } | |
83 | 109 | let TotalIssuedCODE = (PreviousIssuedCODE + getIntegerValue(this, ("Rewards_Of_" + currentKey))) | |
84 | - | let PreviousTxnsCODE = getIntegerValue(this, "Total_Txns:") | |
85 | - | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
86 | 110 | if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) > height)) | |
87 | - | then throw(((("Your " + toString(getIntegerValue(this, (" | |
111 | + | then throw((((("Your " + toString(getIntegerValue(this, ("Rewards_Of_" + currentKey)))) + "/10^8 CODE are Stil Maturing. Token will be Unlocked after ") + toString((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) - height))) + " blocks.")) | |
88 | 112 | else if ((checkdepositvalue == 0)) | |
89 | 113 | then throw("You Have Already Withdraw your CODE Amount.") | |
90 | - | else [IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), Reissue(CODEAssetID, getIntegerValue(this, ("Rewards_Of_" + currentKey)), true), ScriptTransfer(i.caller, getIntegerValue(this, ("Rewards_Of_" + currentKey)), CODEAssetID), | |
114 | + | else [IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Total_CODE_Claimed:", totalrewardclaimed), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), Reissue(CODEAssetID, getIntegerValue(this, ("Rewards_Of_" + currentKey)), true), ScriptTransfer(i.caller, ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * useramount) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(TreasuryFeeAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * TreasuryFee) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(devAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * devFee) / 1000), CODEAssetID), IntegerEntry(("Deposit_height_Of_" + currentKey), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), 0), IntegerEntry(("Deposit_Amount_Of_" + currentKey), 0), IntegerEntry(("Rewards_Of_" + currentKey), 0)] | |
91 | 115 | } | |
92 | 116 | ||
93 | 117 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let CODEAssetID = base58'ArPqXguhFLjJt5XwcNwhXMnCv2zSumrM19y5WgT34yRi' | |
5 | 5 | ||
6 | + | let StakingDapp = base58'C246qxhuyo9DBk1pjMzEQSVAWmiqYupG2swGkxTeAvLV' | |
7 | + | ||
8 | + | let TreasuryFeeAddress = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
9 | + | ||
10 | + | let devAddress = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
11 | + | ||
12 | + | let devFee = 1 | |
13 | + | ||
14 | + | let TreasuryFee = 9 | |
15 | + | ||
16 | + | let useramount = ((1000 - TreasuryFee) - devFee) | |
17 | + | ||
6 | 18 | let StartHeight = 1746408 | |
7 | - | ||
8 | - | let oneday = 1440 | |
9 | 19 | ||
10 | 20 | let minimumlockdays = 6 | |
11 | 21 | ||
12 | 22 | let maximumlockdays = 7 | |
13 | 23 | ||
24 | + | let oneday = 1440 | |
25 | + | ||
14 | 26 | let blockdiff = (height - StartHeight) | |
15 | 27 | ||
16 | 28 | let InflationNo = (fraction(10000000000, 1, blockdiff) + 6000) | |
17 | 29 | ||
18 | - | let StakingDapp = base58'C246qxhuyo9DBk1pjMzEQSVAWmiqYupG2swGkxTeAvLV' | |
30 | + | let PreviousTxnsCODE = match getIntegerValue(this, "Total_Txns:") { | |
31 | + | case a: Int => | |
32 | + | a | |
33 | + | case _ => | |
34 | + | 0 | |
35 | + | } | |
19 | 36 | ||
20 | - | let FeeAddress = base58'6Z73KxcX3sugpiStpSRXxKxTmWqCaLVwFeM6kwyiKVDR' | |
21 | - | ||
22 | - | let devAddress = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
37 | + | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
23 | 38 | ||
24 | 39 | @Callable(i) | |
25 | 40 | func Deposit (days) = { | |
26 | 41 | let pmt = if ((size(i.payments) == 1)) | |
27 | 42 | then i.payments[0] | |
28 | - | else throw("No Payments Attached Please Attach | |
43 | + | else throw((("No Payments Attached Please Attach " + toBase58String(CODEAssetID)) + " Asset Only.")) | |
29 | 44 | let currentKey = toBase58String(i.caller.bytes) | |
30 | 45 | let UserClaimAmount = ((((InflationNo * pmt.amount) * days) / 365) / 1000) | |
31 | 46 | let allowdedpymt = (blockdiff * 100000) | |
32 | 47 | let actualblocks = (oneday * days) | |
33 | 48 | let totallockblocks = (height + actualblocks) | |
34 | - | let PreviousBurnedCODE = getIntegerValue(this, "Total_Burned_CODE:") | |
35 | - | let TotalBurnedCODE = (PreviousBurnedCODE + pmt.amount) | |
36 | - | let PreviousTxnsCODE = getIntegerValue(this, "Total_Txns:") | |
37 | - | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
38 | - | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
39 | - | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
40 | - | let gapofheight = (fetchusermatureheight - fetchuserstakeheight) | |
41 | - | let StakedCODEAmount = match getInteger(this, "Staked_Amount") { | |
49 | + | let PreviousBurnedCODE = match getInteger(this, "Total_Burned_CODE:") { | |
42 | 50 | case a: Int => | |
43 | 51 | a | |
44 | 52 | case _ => | |
45 | 53 | 0 | |
46 | 54 | } | |
47 | - | let newStakedCODEAmount = (StakedCODEAmount + pmt.amount) | |
55 | + | let TotalBurnedCODE = (PreviousBurnedCODE + pmt.amount) | |
56 | + | let fetchuserstakeheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Deposit_height_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
57 | + | let fetchusermatureheight = valueOrErrorMessage(getInteger(addressFromPublicKey(StakingDapp), ("Total_Lock_Blocks_Of_" + currentKey)), "Your Address not Found on Staking DApp") | |
58 | + | let gapofheight = (fetchusermatureheight - fetchuserstakeheight) | |
48 | 59 | let currentCODEAmount = match getInteger(this, ("Deposit_Amount_Of_" + currentKey)) { | |
49 | 60 | case a: Int => | |
50 | 61 | a | |
51 | 62 | case _ => | |
52 | 63 | 0 | |
53 | 64 | } | |
54 | 65 | let newCODEAmount = (currentCODEAmount + pmt.amount) | |
66 | + | let UserNoOfDeposits = match getInteger(this, ("No_Of_Deposits_" + currentKey)) { | |
67 | + | case a: Int => | |
68 | + | a | |
69 | + | case _ => | |
70 | + | 0 | |
71 | + | } | |
72 | + | let SumpupofUserNoOfDeposits = (UserNoOfDeposits + 1) | |
55 | 73 | if ((StartHeight > height)) | |
56 | 74 | then throw((("DApp is Not Started Yet please Wait until " + toString((StartHeight - height))) + " blocks")) | |
57 | 75 | else if ((pmt.assetId != CODEAssetID)) | |
58 | - | then throw(("Incorrect asset attached, please attach " + toBase58String(CODEAssetID))) | |
76 | + | then throw((("Incorrect asset attached, please attach " + toBase58String(CODEAssetID)) + " asset only")) | |
59 | 77 | else if ((minimumlockdays >= days)) | |
60 | 78 | then throw(((("Choose Locking days in between " + toString((minimumlockdays + 1))) + " to ") + toString(maximumlockdays))) | |
61 | 79 | else if ((days > maximumlockdays)) | |
62 | 80 | then throw(((((("You Entered days to " + toString(days)) + ", Please Enter no. of days in between ") + toString((minimumlockdays + 1))) + " to ") + toString(maximumlockdays))) | |
63 | 81 | else if ((100000 > pmt.amount)) | |
64 | - | then throw("Please Attach minimum 0.001 CODE To Issue CODE Asset.") | |
82 | + | then throw("Please Attach minimum 0.001 CODE Token To Issue More CODE Asset.") | |
65 | 83 | else if ((pmt.amount > allowdedpymt)) | |
66 | 84 | then throw((("You can attach maximum " + toString(allowdedpymt)) + "/10^8 CODE.")) | |
67 | 85 | else if ((gapofheight != 129600)) | |
68 | 86 | then throw("You are Not Eligible to Mint CODE. It need minimum 90 Days Staking.") | |
69 | - | else [Burn(CODEAssetID, pmt.amount), IntegerEntry("Total_Burned_CODE:", TotalBurnedCODE), IntegerEntry(" | |
87 | + | else [Burn(CODEAssetID, pmt.amount), IntegerEntry("Total_Burned_CODE:", TotalBurnedCODE), IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Inflation", InflationNo), IntegerEntry("Block_Passed", blockdiff), 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>")] | |
70 | 88 | } | |
71 | 89 | ||
72 | 90 | ||
73 | 91 | ||
74 | 92 | @Callable(i) | |
75 | 93 | func Withdraw () = { | |
76 | 94 | let currentKey = toBase58String(i.caller.bytes) | |
77 | 95 | let checkdepositvalue = getIntegerValue(this, ("Deposit_Amount_Of_" + currentKey)) | |
78 | - | let checkstakedvalue = getIntegerValue(this, "Staked_Amount") | |
79 | - | let newstakedvalue = (checkstakedvalue - checkdepositvalue) | |
80 | - | let fetchRewardData = getIntegerValue(this, "Total_CODE_Claimed:") | |
96 | + | let fetchRewardData = match getIntegerValue(this, "Total_CODE_Claimed:") { | |
97 | + | case a: Int => | |
98 | + | a | |
99 | + | case _ => | |
100 | + | 0 | |
101 | + | } | |
81 | 102 | let totalrewardclaimed = (fetchRewardData + getIntegerValue(this, ("Rewards_Of_" + currentKey))) | |
82 | - | let PreviousIssuedCODE = getIntegerValue(this, "Total_Issued_CODE:") | |
103 | + | let PreviousIssuedCODE = match getIntegerValue(this, "Total_Issued_CODE:") { | |
104 | + | case a: Int => | |
105 | + | a | |
106 | + | case _ => | |
107 | + | 0 | |
108 | + | } | |
83 | 109 | let TotalIssuedCODE = (PreviousIssuedCODE + getIntegerValue(this, ("Rewards_Of_" + currentKey))) | |
84 | - | let PreviousTxnsCODE = getIntegerValue(this, "Total_Txns:") | |
85 | - | let TotalTxnsCODE = (PreviousTxnsCODE + 1) | |
86 | 110 | if ((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) > height)) | |
87 | - | then throw(((("Your " + toString(getIntegerValue(this, (" | |
111 | + | then throw((((("Your " + toString(getIntegerValue(this, ("Rewards_Of_" + currentKey)))) + "/10^8 CODE are Stil Maturing. Token will be Unlocked after ") + toString((getIntegerValue(this, ("Total_Lock_Blocks_Of_" + currentKey)) - height))) + " blocks.")) | |
88 | 112 | else if ((checkdepositvalue == 0)) | |
89 | 113 | then throw("You Have Already Withdraw your CODE Amount.") | |
90 | - | else [IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), Reissue(CODEAssetID, getIntegerValue(this, ("Rewards_Of_" + currentKey)), true), ScriptTransfer(i.caller, getIntegerValue(this, ("Rewards_Of_" + currentKey)), CODEAssetID), | |
114 | + | else [IntegerEntry("Total_Txns:", TotalTxnsCODE), IntegerEntry("Total_CODE_Claimed:", totalrewardclaimed), IntegerEntry("Total_Issued_CODE:", TotalIssuedCODE), Reissue(CODEAssetID, getIntegerValue(this, ("Rewards_Of_" + currentKey)), true), ScriptTransfer(i.caller, ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * useramount) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(TreasuryFeeAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * TreasuryFee) / 1000), CODEAssetID), ScriptTransfer(addressFromPublicKey(devAddress), ((getIntegerValue(this, ("Rewards_Of_" + currentKey)) * devFee) / 1000), CODEAssetID), IntegerEntry(("Deposit_height_Of_" + currentKey), 0), IntegerEntry(("Total_Lock_Blocks_Of_" + currentKey), 0), IntegerEntry(("Deposit_Amount_Of_" + currentKey), 0), IntegerEntry(("Rewards_Of_" + currentKey), 0)] | |
91 | 115 | } | |
92 | 116 | ||
93 | 117 | ||
94 | 118 | @Verifier(tx) | |
95 | 119 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
96 | 120 |
github/deemru/w8io/169f3d6 53.62 ms ◑