tx · 4oVLTfVYzDHUchoGpBVJwb4hycpcauVzRNCq7P5JkPik

3N7nJwbFGppbebBtXy6bWVcQCGu7m3kXFaw:  -0.01000000 Waves

2022.06.01 18:56 [2077495] smart account 3N7nJwbFGppbebBtXy6bWVcQCGu7m3kXFaw > SELF 0.00000000 Waves

{ "type": 13, "id": "4oVLTfVYzDHUchoGpBVJwb4hycpcauVzRNCq7P5JkPik", "fee": 1000000, "feeAssetId": null, "timestamp": 1654099026671, "version": 2, "chainId": 84, "sender": "3N7nJwbFGppbebBtXy6bWVcQCGu7m3kXFaw", "senderPublicKey": "GTKqLSK6nuFkRdebB5SmTwTU2DnTeLMvhymCFfT2CxX2", "proofs": [ "2xoneJrtNc9ZXmzuvJdaZYzVavN7kMzmrcPt9VsYkpxZcNaA7rojJquAYVs7FYW2WNxyZt6g4QwX83a4LYcgoQTd" ], "script": "base64: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BQAAABFBZGRyZXNzRnJlZUxhbmNlcgUAAAARUGF5bWVudDJGcmVlbGFuY2UFAAAACUFzc2V0VXNlZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAlkQXBwRnJlZXMFAAAAB0ZlZVBhaWQFAAAACUFzc2V0VXNlZAUAAAADbmlsBQAAAAlBc3NldFVzZWQAAAABaQEAAAANQWRtaW5UcmFuc2ZlcgAAAAUAAAAEVXNlcgAAAApGcmVlbGFuY2VyAAAADFRvRnJlZWxhbmNlcgAAAAZUb1VzZXIAAAAIQWRtaW5GZWUDCQEAAAACIT0AAAACCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBQAAAAlBZG1pbmRBcHAJAAACAAAAAQIAAAAWT25seSBBZG1pbiBjYW4gZG8gdGhpcwMJAQAAAAIhPQAAAAIJAABkAAAAAgkAAGQAAAACBQAAAAZUb1VzZXIFAAAADFRvRnJlZWxhbmNlcgUAAAAIQWRtaW5GZWUAAAAAAAAAAGQJAAACAAAAAQIAAAAyVG90YWwgb2YgUGVyY2VudGFnZXMgY2Fubm90IGJlIGRpZmZlcmVudCBmcm9tIDEwMCUEAAAAEUZyZWVMYW5jZXJQYXltZW50CQABLAAAAAIFAAAABFVzZXICAAAACF9QYXltZW50BAAAABFGcmVlbGFuY2VyQWRkcmVzcwkAASwAAAACBQAAAARVc2VyAgAAAAtfRnJlZWxhbmNlcgQAAAAMUGF5bWVudEFzc2V0CQABLAAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAAGX0Fzc2V0BAAAAAZhbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAARRnJlZUxhbmNlclBheW1lbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAURnJlZWxhbmNlckFkZHJlc3NTdHIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAEUZyZWVsYW5jZXJBZGRyZXNzBAAAABFBZGRyZXNzRnJlZUxhbmNlcgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAURnJlZWxhbmNlckFkZHJlc3NTdHIEAAAADlBheW1lbnRBc3NldElkCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAAAxQYXltZW50QXNzZXQEAAAACWRBcHBGcmVlcwkBAAAAB0FkZHJlc3MAAAABBQAAAAhkQXBwRmVlcwQAAAALQWRkcmVzc1VzZXIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAABFVzZXIEAAAACUFzc2V0VXNlZAMJAAAAAAAAAgUAAAAOUGF5bWVudEFzc2V0SWQCAAAABVdhdmVzBQAAAAR1bml0CQACWQAAAAEFAAAADlBheW1lbnRBc3NldElkAwkAAAAAAAACBQAAAAZhbW91bnQAAAAAAAAAAAAJAAACAAAAAQIAAAA0VXNlcidzIGJhbGFuY2UgaXMgMCBCVXNkYyBjYW5ub3QgcmVhbGl6ZSBhbnkgcGF5bWVudAkABRQAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABFVzZXICAAAACF9QYXltZW50AAAAAAAAAAAACQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEUFkZHJlc3NGcmVlTGFuY2VyCQAAaQAAAAIJAABoAAAAAgUAAAAMVG9GcmVlbGFuY2VyBQAAAAZhbW91bnQAAAAAAAAAAGQFAAAACUFzc2V0VXNlZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAtBZGRyZXNzVXNlcgkAAGkAAAACCQAAaAAAAAIFAAAABlRvVXNlcgUAAAAGYW1vdW50AAAAAAAAAABkBQAAAAlBc3NldFVzZWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAJZEFwcEZyZWVzCQAAaQAAAAIJAABoAAAAAgUAAAAIQWRtaW5GZWUFAAAABmFtb3VudAAAAAAAAAAAZAUAAAAJQXNzZXRVc2VkBQAAAANuaWwFAAAACUFzc2V0VXNlZAAAAADORCQF", "height": 2077495, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FsiWx3F4sU4XztneCyzodjEiodv5Jczg2aJSxg5wvpxE Next: 4BStXKSikghnisbzyiuQNWzWedgEgzyhpS2buULqHFYf Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let BUsd = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
4+let BUsd = base58'nrDXX1zHfGht7xExqNxDu7voCy9wzmc9vJxwcc2jLga'
55
6-let USDT = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
6+let USDT = base58'nrDXX1zHfGht7xExqNxDu7voCy9wzmc9vJxwcc2jLga'
77
8-let USDC = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
8+let USDC = base58'nrDXX1zHfGht7xExqNxDu7voCy9wzmc9vJxwcc2jLga'
99
10-let BTC = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
10+let BTC = base58'nrDXX1zHfGht7xExqNxDu7voCy9wzmc9vJxwcc2jLga'
1111
12-let ETH = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
12+let ETH = base58'nrDXX1zHfGht7xExqNxDu7voCy9wzmc9vJxwcc2jLga'
1313
14-let BNB = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
14+let BNB = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ'
1515
16-let USDN = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
16+let USDN = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ'
1717
18-let HASH = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
18+let HASH = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ'
1919
20-let KUSD = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
20+let KUSD = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ'
2121
2222 let dAppFees = base58'3N9Lfz79kZAEUupwESSboYFyygo1nQguVXo'
2323
136136 func PayFreelancerOnDemand () = {
137137 let PayFreelancer = 4
138138 let Fee = 1
139+ let WaitTime = 10
139140 let FreeLancerPayment = (toBase58String(i.caller.bytes) + "_Payment")
140141 let FreelancerAddress = (toBase58String(i.caller.bytes) + "_Freelancer")
141142 let LastPaymentBlock = (toBase58String(i.caller.bytes) + "_LastPaid")
168169 else fromBase58String(PaymentAssetId)
169170 if ((0 >= (amount - (Fee * 100000000))))
170171 then throw(("You do not have enough funds to make payment, your available funds are: " + toString((amount / 100000000))))
171- else {
172- let FeePaid = (Fee * 100000000)
173- let PaidtrxValue = if ((PaidtrxLast == 3))
174- then 0
175- else (PaidtrxLast + 1)
176- let UserAccount = if ((PaidtrxLast == 3))
177- then 0
178- else ((amount - (Fee * 100000000)) - (((PaidtrxValue * 25) * (amount - (Fee * 100000000))) / 100))
179- let Payment2Freelance = ((25 * amount) / 100)
180- $Tuple2([IntegerEntry((toBase58String(i.caller.bytes) + "_Payment"), UserAccount), IntegerEntry((toBase58String(i.caller.bytes) + "_Paidtrx"), PaidtrxValue), ScriptTransfer(AddressFreeLancer, Payment2Freelance, AssetUsed), ScriptTransfer(dAppFrees, FeePaid, AssetUsed)], AssetUsed)
181- }
172+ else if (if (((LastPaymentBlockValue + WaitTime) > height))
173+ then (PaidtrxLast > 1)
174+ else false)
175+ then throw((("Cannot make Payment before " + toString(WaitTime)) + " min"))
176+ else {
177+ let FeePaid = (Fee * 100000000)
178+ let PaidtrxValue = if ((PaidtrxLast == 3))
179+ then 0
180+ else (PaidtrxLast + 1)
181+ let UserAccount = if ((PaidtrxLast == 3))
182+ then 0
183+ else ((amount - (Fee * 100000000)) - (((PaidtrxValue * 25) * (amount - (Fee * 100000000))) / 100))
184+ let Payment2Freelance = ((25 * amount) / 100)
185+ $Tuple2([IntegerEntry((toBase58String(i.caller.bytes) + "_Payment"), UserAccount), IntegerEntry((toBase58String(i.caller.bytes) + "_Paidtrx"), PaidtrxValue), IntegerEntry((toBase58String(i.caller.bytes) + "_LastPaid"), height), ScriptTransfer(AddressFreeLancer, Payment2Freelance, AssetUsed), ScriptTransfer(dAppFrees, FeePaid, AssetUsed)], AssetUsed)
186+ }
182187 }
183188
184189
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let BUsd = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
4+let BUsd = base58'nrDXX1zHfGht7xExqNxDu7voCy9wzmc9vJxwcc2jLga'
55
6-let USDT = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
6+let USDT = base58'nrDXX1zHfGht7xExqNxDu7voCy9wzmc9vJxwcc2jLga'
77
8-let USDC = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
8+let USDC = base58'nrDXX1zHfGht7xExqNxDu7voCy9wzmc9vJxwcc2jLga'
99
10-let BTC = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
10+let BTC = base58'nrDXX1zHfGht7xExqNxDu7voCy9wzmc9vJxwcc2jLga'
1111
12-let ETH = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
12+let ETH = base58'nrDXX1zHfGht7xExqNxDu7voCy9wzmc9vJxwcc2jLga'
1313
14-let BNB = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
14+let BNB = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ'
1515
16-let USDN = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
16+let USDN = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ'
1717
18-let HASH = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
18+let HASH = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ'
1919
20-let KUSD = base58'BBaEeEmuA6qPNowGcB8BXozC2PmAAG48G5zzSWw8qt2k'
20+let KUSD = base58'HFLaeLdjg9cASsYhvwM9PV3NcCxa3UeVa5KvfYUPQYgJ'
2121
2222 let dAppFees = base58'3N9Lfz79kZAEUupwESSboYFyygo1nQguVXo'
2323
2424 let AdmindApp = base58'3Mx3pn4yMcBccM59UrDGjbbAkVsRYBw38tB'
2525
2626 @Callable(i)
2727 func Reset () = [IntegerEntry((toBase58String(i.caller.bytes) + "_Payment"), 0), IntegerEntry((toBase58String(i.caller.bytes) + "_Paidtrx"), 0)]
2828
2929
3030
3131 @Callable(i)
3232 func DepositFunds (ScopeDesc,Deliverables,FreelancerAddress) = {
3333 let FreeLancerPayment = (toBase58String(i.caller.bytes) + "_Payment")
3434 let amount = match getInteger(this, FreeLancerPayment) {
3535 case a: Int =>
3636 a
3737 case _ =>
3838 0
3939 }
4040 if ((amount != 0))
4141 then throw("You have already deposited funds, deposits can only be done once")
4242 else {
4343 let pmt = if ((size(i.payments) == 1))
4444 then i.payments[0]
4545 else throw("Attached payment is required")
4646 if (if (if (if (if (if (if (if (if (if (if ((0 >= pmt.amount))
4747 then (pmt.assetId != BUsd)
4848 else false)
4949 then (pmt.assetId != USDT)
5050 else false)
5151 then (pmt.assetId != USDC)
5252 else false)
5353 then (pmt.assetId != BTC)
5454 else false)
5555 then (pmt.assetId != ETH)
5656 else false)
5757 then (pmt.assetId != BNB)
5858 else false)
5959 then (pmt.assetId != USDN)
6060 else false)
6161 then (pmt.assetId != HASH)
6262 else false)
6363 then (pmt.assetId != KUSD)
6464 else false)
6565 then isDefined(pmt.assetId)
6666 else false)
6767 then throw("Can only deposit accepted tokens, and amount should be positive")
6868 else if (if (if ((ScopeDesc == ""))
6969 then true
7070 else (Deliverables == ""))
7171 then true
7272 else (FreelancerAddress == ""))
7373 then throw("Job Scope, Deliverables desc and Freelancer Wallet Address cannot be empty")
7474 else {
7575 let AssetUsed = if (isDefined(pmt.assetId))
7676 then toBase58String(value(pmt.assetId))
7777 else "Waves"
7878 [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)]
7979 }
8080 }
8181 }
8282
8383
8484
8585 @Callable(i)
8686 func PayFreelancer (PayFreelancer) = {
8787 let FreeLancerPayment = (toBase58String(i.caller.bytes) + "_Payment")
8888 let FreelancerAddress = (toBase58String(i.caller.bytes) + "_Freelancer")
8989 let PaymentAsset = (toBase58String(i.caller.bytes) + "_Asset")
9090 let Paidtrx = (toBase58String(i.caller.bytes) + "_Paidtrx")
9191 let amount = match getInteger(this, FreeLancerPayment) {
9292 case a: Int =>
9393 a
9494 case _ =>
9595 0
9696 }
9797 let PaidtrxLast = match getInteger(this, Paidtrx) {
9898 case a: Int =>
9999 a
100100 case _ =>
101101 0
102102 }
103103 let FreelancerAddressStr = getStringValue(this, FreelancerAddress)
104104 let PaymentAssetId = getStringValue(this, PaymentAsset)
105105 let AddressFreeLancer = addressFromStringValue(FreelancerAddressStr)
106106 let dAppFrees = Address(dAppFees)
107107 let AssetUsed = if ((PaymentAssetId == "Waves"))
108108 then unit
109109 else fromBase58String(PaymentAssetId)
110110 if ((0 >= (((95 * amount) / 100) - (PayFreelancer * 100000000))))
111111 then throw(("You do not have enough funds to make payment, your available funds are: " + toString((amount / 100000000))))
112112 else if (if ((PaidtrxLast >= 12))
113113 then (amount > 0)
114114 else false)
115115 then throw("You have already done 12 payments, you cannot make more payments")
116116 else {
117117 let UserAccount = if ((PaidtrxLast == 11))
118118 then 0
119119 else (amount - (PayFreelancer * 100000000))
120120 let Payment2Freelance = if ((PaidtrxLast == 11))
121121 then ((95 * amount) / 100)
122122 else ((95 * PayFreelancer) * 1000000)
123123 let FeePaid = if ((PaidtrxLast == 11))
124124 then ((5 * amount) / 100)
125125 else ((5 * PayFreelancer) * 1000000)
126126 let PaidtrxValue = if ((PaidtrxLast == 11))
127127 then 0
128128 else (PaidtrxLast + 1)
129129 $Tuple2([IntegerEntry((toBase58String(i.caller.bytes) + "_Payment"), UserAccount), IntegerEntry((toBase58String(i.caller.bytes) + "_Paidtrx"), PaidtrxValue), ScriptTransfer(AddressFreeLancer, Payment2Freelance, AssetUsed), ScriptTransfer(dAppFrees, FeePaid, AssetUsed)], AssetUsed)
130130 }
131131 }
132132
133133
134134
135135 @Callable(i)
136136 func PayFreelancerOnDemand () = {
137137 let PayFreelancer = 4
138138 let Fee = 1
139+ let WaitTime = 10
139140 let FreeLancerPayment = (toBase58String(i.caller.bytes) + "_Payment")
140141 let FreelancerAddress = (toBase58String(i.caller.bytes) + "_Freelancer")
141142 let LastPaymentBlock = (toBase58String(i.caller.bytes) + "_LastPaid")
142143 let PaymentAsset = (toBase58String(i.caller.bytes) + "_Asset")
143144 let Paidtrx = (toBase58String(i.caller.bytes) + "_Paidtrx")
144145 let amount = match getInteger(this, FreeLancerPayment) {
145146 case a: Int =>
146147 a
147148 case _ =>
148149 0
149150 }
150151 let PaidtrxLast = match getInteger(this, Paidtrx) {
151152 case a: Int =>
152153 a
153154 case _ =>
154155 0
155156 }
156157 let LastPaymentBlockValue = match getInteger(this, LastPaymentBlock) {
157158 case a: Int =>
158159 a
159160 case _ =>
160161 0
161162 }
162163 let FreelancerAddressStr = getStringValue(this, FreelancerAddress)
163164 let PaymentAssetId = getStringValue(this, PaymentAsset)
164165 let AddressFreeLancer = addressFromStringValue(FreelancerAddressStr)
165166 let dAppFrees = Address(dAppFees)
166167 let AssetUsed = if ((PaymentAssetId == "Waves"))
167168 then unit
168169 else fromBase58String(PaymentAssetId)
169170 if ((0 >= (amount - (Fee * 100000000))))
170171 then throw(("You do not have enough funds to make payment, your available funds are: " + toString((amount / 100000000))))
171- else {
172- let FeePaid = (Fee * 100000000)
173- let PaidtrxValue = if ((PaidtrxLast == 3))
174- then 0
175- else (PaidtrxLast + 1)
176- let UserAccount = if ((PaidtrxLast == 3))
177- then 0
178- else ((amount - (Fee * 100000000)) - (((PaidtrxValue * 25) * (amount - (Fee * 100000000))) / 100))
179- let Payment2Freelance = ((25 * amount) / 100)
180- $Tuple2([IntegerEntry((toBase58String(i.caller.bytes) + "_Payment"), UserAccount), IntegerEntry((toBase58String(i.caller.bytes) + "_Paidtrx"), PaidtrxValue), ScriptTransfer(AddressFreeLancer, Payment2Freelance, AssetUsed), ScriptTransfer(dAppFrees, FeePaid, AssetUsed)], AssetUsed)
181- }
172+ else if (if (((LastPaymentBlockValue + WaitTime) > height))
173+ then (PaidtrxLast > 1)
174+ else false)
175+ then throw((("Cannot make Payment before " + toString(WaitTime)) + " min"))
176+ else {
177+ let FeePaid = (Fee * 100000000)
178+ let PaidtrxValue = if ((PaidtrxLast == 3))
179+ then 0
180+ else (PaidtrxLast + 1)
181+ let UserAccount = if ((PaidtrxLast == 3))
182+ then 0
183+ else ((amount - (Fee * 100000000)) - (((PaidtrxValue * 25) * (amount - (Fee * 100000000))) / 100))
184+ let Payment2Freelance = ((25 * amount) / 100)
185+ $Tuple2([IntegerEntry((toBase58String(i.caller.bytes) + "_Payment"), UserAccount), IntegerEntry((toBase58String(i.caller.bytes) + "_Paidtrx"), PaidtrxValue), IntegerEntry((toBase58String(i.caller.bytes) + "_LastPaid"), height), ScriptTransfer(AddressFreeLancer, Payment2Freelance, AssetUsed), ScriptTransfer(dAppFrees, FeePaid, AssetUsed)], AssetUsed)
186+ }
182187 }
183188
184189
185190
186191 @Callable(i)
187192 func AdminTransfer (User,Freelancer,ToFreelancer,ToUser,AdminFee) = if ((i.caller.bytes != AdmindApp))
188193 then throw("Only Admin can do this")
189194 else if ((((ToUser + ToFreelancer) + AdminFee) != 100))
190195 then throw("Total of Percentages cannot be different from 100%")
191196 else {
192197 let FreeLancerPayment = (User + "_Payment")
193198 let FreelancerAddress = (User + "_Freelancer")
194199 let PaymentAsset = (toBase58String(i.caller.bytes) + "_Asset")
195200 let amount = match getInteger(this, FreeLancerPayment) {
196201 case a: Int =>
197202 a
198203 case _ =>
199204 0
200205 }
201206 let FreelancerAddressStr = getStringValue(this, FreelancerAddress)
202207 let AddressFreeLancer = addressFromStringValue(FreelancerAddressStr)
203208 let PaymentAssetId = getStringValue(this, PaymentAsset)
204209 let dAppFrees = Address(dAppFees)
205210 let AddressUser = addressFromStringValue(User)
206211 let AssetUsed = if ((PaymentAssetId == "Waves"))
207212 then unit
208213 else fromBase58String(PaymentAssetId)
209214 if ((amount == 0))
210215 then throw("User's balance is 0 BUsdc cannot realize any payment")
211216 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)
212217 }
213218
214219

github/deemru/w8io/169f3d6 
52.73 ms