tx · EDr6MnooQmhcZffEukVXtNNTnAdChHFrKVrbcY97ckLa

3N7nJwbFGppbebBtXy6bWVcQCGu7m3kXFaw:  -0.00700000 Waves

2022.06.29 20:41 [2118048] smart account 3N7nJwbFGppbebBtXy6bWVcQCGu7m3kXFaw > SELF 0.00000000 Waves

{ "type": 13, "id": "EDr6MnooQmhcZffEukVXtNNTnAdChHFrKVrbcY97ckLa", "fee": 700000, "feeAssetId": null, "timestamp": 1656524484601, "version": 2, "chainId": 84, "sender": "3N7nJwbFGppbebBtXy6bWVcQCGu7m3kXFaw", "senderPublicKey": "GTKqLSK6nuFkRdebB5SmTwTU2DnTeLMvhymCFfT2CxX2", "proofs": [ "4sFW9uMbAZUsgErLUSa1ejiDTWvBNKS8vC8wZuzbzo9uJwis7xkLRuBgAuwMFPPJoDdk4LjpgTEdF8Q6g5kmcNx7" ], "script": "base64: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", "height": 2118048, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9zTKo4EBnvRmWAdoa9tjjXYvCoiJqfjyGKfDXuHc17RB Next: 8V9bQLexyksvaQ36m8JqzwiiJCjWTxHeGQDtpn5MB9Ux Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let BUsd = base58'8DLiYZjo3UUaRBTHU7Ayoqg4ihwb6YH1AfXrrhdjQ7K1'
5+
6+let USDT = base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'
7+
8+let USDC = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
9+
10+let BTC = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
11+
12+let ETH = base58'474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu'
13+
14+let BNB = base58'5UYBPpq4WoU5n4MwpFkgJnW3Fq4B1u3ukpK33ik4QerR'
15+
16+let USDN = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
17+
418 let HASH = base58'7RgM3A5AVCUZFbL3EwBicv1eHFCVsaY8z71yda77zrAv'
519
6-let KrossCar = base58'2BoEb7xRk6k58CGk2kZgVi91qDkcGJuBiqsK5AdHLYRX'
20+let KUSD = base58'FXvNWA5Gfy8yLPHGScm6Gmn4DSZX9brFZ9qmEkPxAhGk'
721
8-let Towing = base58'B69KJt2GnNYHUybTmrDBvq4BaYD5RqQK6TDBJLQKWrvh'
22+let dAppFees = base58'3PG1NyiC2rdgX46jb8c5zPGuEAzWXhr4L2W'
923
10-let TyreAir = base58'CskPF5HYr8RBcXeDdDyZSkkSurQ2Btcp4nEFFUqLqXMq'
11-
12-let Fuel = base58'9uFF8axM2Te2meSHLZy3pMaZ6EE19zk5Wm3oPby6zphf'
13-
14-let CarUnlock = base58'e1brL4ZTbHuRmw5cvThdaBBxDZCF7rW6a2AGMMKvzg1'
15-
16-let MinAmount = 700
17-
18-let KrossCarReward = 1
19-
20-let TowingReward = 1
21-
22-let TyreAirReward = 1
23-
24-let FuelReward = 1
25-
26-let CarUnlockReward = 1
27-
28-let ReferreTip = 1
29-
30-let minJoinWeeks = 8
31-
32-let TimeTowing = 30
33-
34-let TimeTyreAir = 60
35-
36-let TimeFuel = 30
37-
38-let TimeCarUnlock = 90
39-
40-let Week = (1440 * 7)
41-
42-let Day = 1440
24+let AdmindApp = base58'3PLv5rYMqR4gSiP5ZSjrX2FStLhHTRgFPbb'
4325
4426 @Callable(i)
45-func DepositHASH () = {
46- let UserDeposit = (toBase58String(i.caller.bytes) + "_Deposit")
47- let UserMaturity = (toBase58String(i.caller.bytes) + "_DepositBlock")
48- let amount = match getInteger(this, UserDeposit) {
27+func DepositFunds (ScopeDesc,Deliverables,FreelancerAddress) = {
28+ let FreeLancerPayment = (toBase58String(i.caller.bytes) + "_Payment")
29+ let amount = match getInteger(this, FreeLancerPayment) {
4930 case a: Int =>
5031 a
5132 case _ =>
5233 0
5334 }
54- let UserMaturityValue = match getInteger(this, UserMaturity) {
55- case a: Int =>
56- a
57- case _ =>
58- 0
59- }
60- let UserDepositTimer = if ((UserMaturityValue != 0))
61- then UserMaturityValue
62- else height
63- let pmt = if ((size(i.payments) == 1))
64- then i.payments[0]
65- else throw("Attached payment is required")
66- if (if (((MinAmount * 100000000) > pmt.amount))
67- then true
68- else (pmt.assetId != HASH))
69- then throw("Can only deposit HASH tokens, and minimum amount is 700 HASH")
35+ if ((amount != 0))
36+ then throw("You have already deposited funds, deposits can only be done once")
7037 else {
71- let UserDepositValue = (amount + pmt.amount)
72-[IntegerEntry((toBase58String(i.caller.bytes) + "_Deposit"), UserDepositValue), IntegerEntry((toBase58String(i.caller.bytes) + "_DepositBlock"), UserDepositTimer), ScriptTransfer(i.caller, (KrossCarReward * 100000000), KrossCar)]
38+ let pmt = if ((size(i.payments) == 1))
39+ then i.payments[0]
40+ else throw("Attached payment is required")
41+ if (if (if (if (if (if (if (if (if (if (if ((0 >= pmt.amount))
42+ then (pmt.assetId != BUsd)
43+ else false)
44+ then (pmt.assetId != USDT)
45+ else false)
46+ then (pmt.assetId != USDC)
47+ else false)
48+ then (pmt.assetId != BTC)
49+ else false)
50+ then (pmt.assetId != ETH)
51+ else false)
52+ then (pmt.assetId != BNB)
53+ else false)
54+ then (pmt.assetId != USDN)
55+ else false)
56+ then (pmt.assetId != HASH)
57+ else false)
58+ then (pmt.assetId != KUSD)
59+ else false)
60+ then isDefined(pmt.assetId)
61+ else false)
62+ then throw("Can only deposit accepted tokens, and amount should be positive")
63+ else if (if (if ((ScopeDesc == ""))
64+ then true
65+ else (Deliverables == ""))
66+ then true
67+ else (FreelancerAddress == ""))
68+ then throw("Job Scope, Deliverables desc and Freelancer Wallet Address cannot be empty")
69+ else {
70+ let AssetUsed = if (isDefined(pmt.assetId))
71+ then toBase58String(value(pmt.assetId))
72+ else "Waves"
73+[StringEntry((toBase58String(i.caller.bytes) + "_Scope"), ScopeDesc), StringEntry((toBase58String(i.caller.bytes) + "_Deliv"), Deliverables), StringEntry((toBase58String(i.caller.bytes) + "_Asset"), AssetUsed), StringEntry((toBase58String(i.caller.bytes) + "_Freelancer"), FreelancerAddress), IntegerEntry((toBase58String(i.caller.bytes) + "_Payment"), pmt.amount)]
74+ }
7375 }
7476 }
7577
7678
7779
7880 @Callable(i)
79-func RewardReferrer (UserWalletAddressStr) = if ((UserWalletAddressStr == ""))
80- then throw("Referrer Wallet Address cannot be empty !")
81- else {
82- let UserWalletAddress = addressFromStringValue(UserWalletAddressStr)
83- let UserDeposit = (toBase58String(i.caller.bytes) + "_Deposit")
84- let TippedStatus = (toBase58String(i.caller.bytes) + "_TippedStatus")
85- let amount = match getInteger(this, UserDeposit) {
86- case a: Int =>
87- a
88- case _ =>
89- 0
90- }
91- let TippedStatusValue = match getString(this, TippedStatus) {
92- case a: String =>
93- a
94- case _ =>
95- "NO"
96- }
97- if ((TippedStatusValue == "YES"))
98- then throw("You already tipped a User, you only can tip once a user")
99- else if (((MinAmount * 100000000) > amount))
100- then throw((("To tip your referrer you must have at least deposited: " + toString(MinAmount)) + " HASH"))
101- else [StringEntry((toBase58String(i.caller.bytes) + "_TippedStatus"), "YES"), ScriptTransfer(UserWalletAddress, (ReferreTip * 100000000), KrossCar)]
102- }
103-
104-
105-
106-@Callable(i)
107-func RequestTowing () = {
108- let UserDeposit = (toBase58String(i.caller.bytes) + "_Deposit")
109- let UserMaturity = (toBase58String(i.caller.bytes) + "_DepositBlock")
110- let LastTowingBlock = (toBase58String(i.caller.bytes) + "_LastTowingBlock")
111- let amount = match getInteger(this, UserDeposit) {
81+func PayFreelancer (PayFreelancer) = {
82+ let FreeLancerPayment = (toBase58String(i.caller.bytes) + "_Payment")
83+ let FreelancerAddress = (toBase58String(i.caller.bytes) + "_Freelancer")
84+ let PaymentAsset = (toBase58String(i.caller.bytes) + "_Asset")
85+ let Paidtrx = (toBase58String(i.caller.bytes) + "_Paidtrx")
86+ let amount = match getInteger(this, FreeLancerPayment) {
11287 case a: Int =>
11388 a
11489 case _ =>
11590 0
11691 }
117- let UserMaturityValue = match getInteger(this, UserMaturity) {
118- case a: Int =>
119- a
120- case _ =>
121- height
122- }
123- let LastTowingBlockValue = match getInteger(this, LastTowingBlock) {
92+ let PaidtrxLast = match getInteger(this, Paidtrx) {
12493 case a: Int =>
12594 a
12695 case _ =>
12796 0
12897 }
129- if (((minJoinWeeks * Week) > (height - UserMaturityValue)))
130- then throw((((("You should at least be a member of " + toString(minJoinWeeks)) + " Weeks") + " Your account maturity is: ") + toString(((height - UserMaturityValue) / Week))))
131- else if (((((MinAmount * 100000000) * (height - UserMaturityValue)) / Week) > amount))
132- then throw(((("Your Account Maturity is: " + toString(((height - UserMaturityValue) / Week))) + " Weeks. You should have deposited at least: ") + toString((MinAmount * ((height - UserMaturityValue) / Week)))))
133- else if (((TimeTowing * Day) > ((height - LastTowingBlockValue) / Day)))
134- then throw((("You cannot claim the reward before: " + toString((TimeTowing - ((height - LastTowingBlockValue) / Day)))) + " days"))
135- else [IntegerEntry((toBase58String(i.caller.bytes) + "_LastTowingBlock"), height), ScriptTransfer(i.caller, (TowingReward * 100000000), Towing)]
98+ let FreelancerAddressStr = getStringValue(this, FreelancerAddress)
99+ let PaymentAssetId = getStringValue(this, PaymentAsset)
100+ let Mydecimal = if (if (if (if ((PaymentAssetId == toBase58String(value(BUsd))))
101+ then true
102+ else (PaymentAssetId == toBase58String(value(USDT))))
103+ then true
104+ else (PaymentAssetId == toBase58String(value(USDC))))
105+ then true
106+ else (PaymentAssetId == toBase58String(value(USDN))))
107+ then 1000000
108+ else 100000000
109+ let AddressFreeLancer = addressFromStringValue(FreelancerAddressStr)
110+ let dAppFrees = Address(dAppFees)
111+ let AssetUsed = if ((PaymentAssetId == "Waves"))
112+ then unit
113+ else fromBase58String(PaymentAssetId)
114+ if (if ((0 > (amount - (PayFreelancer * Mydecimal))))
115+ then true
116+ else (amount == 0))
117+ then throw(("You do not have enough funds to make payment, your available funds are: " + toString((amount / Mydecimal))))
118+ else if (if ((PaidtrxLast >= 12))
119+ then (amount > 0)
120+ else false)
121+ then throw("You have already done 12 payments, you cannot make more payments")
122+ else {
123+ let UserAccount = if ((PaidtrxLast == 11))
124+ then 0
125+ else (amount - (PayFreelancer * Mydecimal))
126+ let Payment2Freelance = if ((PaidtrxLast == 11))
127+ then ((95 * amount) / 100)
128+ else (((95 * PayFreelancer) * Mydecimal) / 100)
129+ let FeePaid = if ((PaidtrxLast == 11))
130+ then ((5 * amount) / 100)
131+ else (((5 * PayFreelancer) * Mydecimal) / 100)
132+ let PaidtrxValue = if (if ((PaidtrxLast == 11))
133+ then true
134+ else (UserAccount == 0))
135+ then 0
136+ else (PaidtrxLast + 1)
137+ $Tuple2([IntegerEntry((toBase58String(i.caller.bytes) + "_Payment"), UserAccount), IntegerEntry((toBase58String(i.caller.bytes) + "_Paidtrx"), PaidtrxValue), IntegerEntry((toBase58String(i.caller.bytes) + "_Payment2Freelance"), Payment2Freelance), ScriptTransfer(AddressFreeLancer, Payment2Freelance, AssetUsed), ScriptTransfer(dAppFrees, FeePaid, AssetUsed)], AssetUsed)
138+ }
136139 }
137140
138141
139142
140143 @Callable(i)
141-func RequestTyreAir () = {
142- let UserDeposit = (toBase58String(i.caller.bytes) + "_Deposit")
143- let UserMaturity = (toBase58String(i.caller.bytes) + "_DepositBlock")
144- let LastTyreAirBlock = (toBase58String(i.caller.bytes) + "_LastTyreAirBlock")
145- let amount = match getInteger(this, UserDeposit) {
146- case a: Int =>
147- a
148- case _ =>
149- 0
150- }
151- let UserMaturityValue = match getInteger(this, UserMaturity) {
152- case a: Int =>
153- a
154- case _ =>
155- height
156- }
157- let LastTyreAirBlockValue = match getInteger(this, LastTyreAirBlock) {
158- case a: Int =>
159- a
160- case _ =>
161- 0
162- }
163- if (((minJoinWeeks * Week) > (height - UserMaturityValue)))
164- then throw((((("You should at least be a member of " + toString(minJoinWeeks)) + " Weeks") + " Your account maturity is: ") + toString(((height - UserMaturityValue) / Week))))
165- else if (((((MinAmount * 100000000) * (height - UserMaturityValue)) / Week) > amount))
166- then throw(((("Your Account Maturity is: " + toString(((height - UserMaturityValue) / Week))) + " Weeks. You should have deposited at least: ") + toString((MinAmount * ((height - UserMaturityValue) / Week)))))
167- else if (((TimeTyreAir * Day) > ((height - LastTyreAirBlockValue) / Day)))
168- then throw((("You cannot claim the reward before: " + toString((TimeTyreAir - ((height - LastTyreAirBlockValue) / Day)))) + " days"))
169- else [IntegerEntry((toBase58String(i.caller.bytes) + "_LastTyreAirBlock"), height), ScriptTransfer(i.caller, (TyreAirReward * 100000000), TyreAir)]
170- }
171-
172-
173-
174-@Callable(i)
175-func RequestFuel () = {
176- let UserDeposit = (toBase58String(i.caller.bytes) + "_Deposit")
177- let UserMaturity = (toBase58String(i.caller.bytes) + "_DepositBlock")
178- let LastFuelBlock = (toBase58String(i.caller.bytes) + "_LastFuelBlock")
179- let amount = match getInteger(this, UserDeposit) {
180- case a: Int =>
181- a
182- case _ =>
183- 0
184- }
185- let UserMaturityValue = match getInteger(this, UserMaturity) {
186- case a: Int =>
187- a
188- case _ =>
189- height
190- }
191- let LastFuelBlockValue = match getInteger(this, LastFuelBlock) {
192- case a: Int =>
193- a
194- case _ =>
195- 0
196- }
197- if (((minJoinWeeks * Week) > (height - UserMaturityValue)))
198- then throw((((("You should at least be a member of " + toString(minJoinWeeks)) + " Weeks") + " Your account maturity is: ") + toString(((height - UserMaturityValue) / Week))))
199- else if (((((MinAmount * 100000000) * (height - UserMaturityValue)) / Week) > amount))
200- then throw(((("Your Account Maturity is: " + toString(((height - UserMaturityValue) / Week))) + " Weeks. You should have deposited at least: ") + toString((MinAmount * ((height - UserMaturityValue) / Week)))))
201- else if (((TimeFuel * Day) > ((height - LastFuelBlockValue) / Day)))
202- then throw((("You cannot claim the reward before: " + toString((TimeFuel - ((height - LastFuelBlockValue) / Day)))) + " days"))
203- else [IntegerEntry((toBase58String(i.caller.bytes) + "_LastFuelBlock"), height), ScriptTransfer(i.caller, (FuelReward * 100000000), Fuel)]
204- }
205-
206-
207-
208-@Callable(i)
209-func RequestCarUnlock () = {
210- let UserDeposit = (toBase58String(i.caller.bytes) + "_Deposit")
211- let UserMaturity = (toBase58String(i.caller.bytes) + "_DepositBlock")
212- let CarUnlockBlock = (toBase58String(i.caller.bytes) + "_LastCarUnlockBlock")
213- let amount = match getInteger(this, UserDeposit) {
214- case a: Int =>
215- a
216- case _ =>
217- 0
218- }
219- let UserMaturityValue = match getInteger(this, UserMaturity) {
220- case a: Int =>
221- a
222- case _ =>
223- height
224- }
225- let CarUnlockBlockValue = match getInteger(this, CarUnlockBlock) {
226- case a: Int =>
227- a
228- case _ =>
229- 0
230- }
231- if (((minJoinWeeks * Week) > (height - UserMaturityValue)))
232- then throw((((("You should at least be a member of " + toString(minJoinWeeks)) + " Weeks") + " Your account maturity is: ") + toString(((height - UserMaturityValue) / Week))))
233- else if (((((MinAmount * 100000000) * (height - UserMaturityValue)) / Week) > amount))
234- then throw(((("Your Account Maturity is: " + toString(((height - UserMaturityValue) / Week))) + " Weeks. You should have deposited at least: ") + toString((MinAmount * ((height - UserMaturityValue) / Week)))))
235- else if (((TimeCarUnlock * Day) > ((height - CarUnlockBlockValue) / Day)))
236- then throw((("You cannot claim the reward before: " + toString((TimeCarUnlock - ((height - CarUnlockBlockValue) / Day)))) + " days"))
237- else [IntegerEntry((toBase58String(i.caller.bytes) + "_LastCarUnlockBlock"), height), ScriptTransfer(i.caller, (CarUnlockReward * 100000000), CarUnlock)]
238- }
144+func AdminTransfer (User,Freelancer,ToFreelancer,ToUser,AdminFee) = if ((i.caller.bytes != AdmindApp))
145+ then throw("Only Admin can do this")
146+ else if ((((ToUser + ToFreelancer) + AdminFee) != 100))
147+ then throw("Total of Percentages cannot be different from 100%")
148+ else {
149+ let FreeLancerPayment = (User + "_Payment")
150+ let FreelancerAddress = (User + "_Freelancer")
151+ let PaymentAsset = (User + "_Asset")
152+ let amount = match getInteger(this, FreeLancerPayment) {
153+ case a: Int =>
154+ a
155+ case _ =>
156+ 0
157+ }
158+ let FreelancerAddressStr = getStringValue(this, FreelancerAddress)
159+ let AddressFreeLancer = addressFromStringValue(FreelancerAddressStr)
160+ let PaymentAssetId = getStringValue(this, PaymentAsset)
161+ let dAppFrees = Address(dAppFees)
162+ let AddressUser = addressFromStringValue(User)
163+ let AssetUsed = if ((PaymentAssetId == "Waves"))
164+ then unit
165+ else fromBase58String(PaymentAssetId)
166+ if ((amount == 0))
167+ then throw("User's balance is 0, cannot realize any payment")
168+ else $Tuple2([IntegerEntry((User + "_Payment"), 0), ScriptTransfer(AddressFreeLancer, ((ToFreelancer * amount) / 100), AssetUsed), ScriptTransfer(AddressUser, ((ToUser * amount) / 100), AssetUsed), ScriptTransfer(dAppFrees, ((AdminFee * amount) / 100), AssetUsed)], AssetUsed)
169+ }
239170
240171

github/deemru/w8io/169f3d6 
70.92 ms