tx · 2ZsYf8iSk9GJ5bBMsUEKi78W3tnFDqQEB9ShrXH51Af1

3P5SX2VmcwF1QeEJPfjNC7YQPwFYh1GLES3:  -0.01000000 Waves

2022.11.07 13:58 [3371982] smart account 3P5SX2VmcwF1QeEJPfjNC7YQPwFYh1GLES3 > SELF 0.00000000 Waves

{ "type": 13, "id": "2ZsYf8iSk9GJ5bBMsUEKi78W3tnFDqQEB9ShrXH51Af1", "fee": 1000000, "feeAssetId": null, "timestamp": 1667818726385, "version": 2, "chainId": 87, "sender": "3P5SX2VmcwF1QeEJPfjNC7YQPwFYh1GLES3", "senderPublicKey": "32jPXwTr1LWfghxGmvNJYcx5X9jHP89cJR34h3tYQmFn", "proofs": [ "7KV4Jja6jQWD2R7254pEDoqJXPH6RAfLBic1ABbL8ojP1yJiDiJhj894yFbiQHUSLNHwVqJC25GRL5joDC3XNyy" ], "script": "base64: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", "height": 3371982, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GGPv3Ka2q9LpipHwGND62mktb1qCfUhVfpn29SqjAiVp Next: AJ18KgYHEGepgSckZzrthGVUd2dhUffUdXF778bGC1HC Diff:
OldNewDifferences
8383 let addressBeneficiary = addressFromStringValue(getStringValue(keyBeneficiaryAddress()))
8484 let amountAint = fraction(amount, MULT8, price)
8585 let amountAintFinal = if ((tier >= amountAint))
86- then tier
87- else amountAint
86+ then amountAint
87+ else tier
8888 let tierNew = if ((tier >= amountAint))
8989 then (tier - amountAint)
9090 else (MULT8 * 10)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let AINTID = fromBase58String("66DUhUoJaoZcstkKpcoN3FUcqjB6v8VJd5ZQd6RsPxhv")
55
66 let WAVESIDSTR = "WAVES"
77
88 let WAVESID = fromBase58String(WAVESIDSTR)
99
1010 let MULT8 = 100000000
1111
1212 let PRICESTEP = 100000
1313
1414 let SEP = "__"
1515
1616 func keyBeneficiaryAddress () = "%s__beneficiaryAddress"
1717
1818
1919 func keyPrice () = "%s__price"
2020
2121
2222 func keyTier () = "%s__tier"
2323
2424
2525 @Callable(i)
2626 func constructor (beneficiaryAddressStr58) = if ((this != i.caller))
2727 then throw("permissions denied")
2828 else {
2929 let beneficiaryAddress = addressFromStringValue(beneficiaryAddressStr58)
3030 let price = valueOrElse(getInteger(keyPrice()), MULT8)
3131 let tier = valueOrElse(getInteger(keyTier()), (MULT8 * 10))
3232 [StringEntry(keyBeneficiaryAddress(), toString(beneficiaryAddress)), IntegerEntry(keyTier(), tier), IntegerEntry(keyPrice(), price)]
3333 }
3434
3535
3636
3737 @Callable(i)
3838 func deposit (hash) = {
3939 let pmt = i.payments[0]
4040 let pmtAssetId = valueOrElse(pmt.assetId, WAVESID)
4141 let amount = pmt.amount
4242 if ((size(i.payments) != 1))
4343 then throw("exact 1 payment must be attached")
4444 else if ((pmtAssetId != WAVESID))
4545 then throw("only WAVES can be used in payment")
4646 else {
4747 let key = ("%s__" + toString(i.caller))
4848 let val = ((((("%s%s__" + hash) + SEP) + toString(height)) + SEP) + toString(amount))
4949 [StringEntry(key, val)]
5050 }
5151 }
5252
5353
5454
5555 @Callable(i)
5656 func refund (secret) = {
5757 let key = ("%s__" + toString(i.caller))
5858 let val = getStringValue(key)
5959 let hash = split(val, SEP)[1]
6060 let h = toInt(parseBigIntValue(split(val, SEP)[2]))
6161 let amount = parseIntValue(split(val, SEP)[3])
6262 if ((toBase58String(keccak256(blake2b256(toBytes(secret)))) != hash))
6363 then throw("secret is wrong")
6464 else if ((60 > (height - h)))
6565 then throw("too early to refund")
6666 else [DeleteEntry(key), ScriptTransfer(i.caller, amount, WAVESID)]
6767 }
6868
6969
7070
7171 @Callable(i)
7272 func mint () = {
7373 let pmt = i.payments[0]
7474 let pmtAssetId = valueOrElse(pmt.assetId, WAVESID)
7575 let amount = pmt.amount
7676 if ((size(i.payments) != 1))
7777 then throw("exact 1 payment must be attached")
7878 else if ((pmtAssetId != WAVESID))
7979 then throw("only WAVES can be used in payment")
8080 else {
8181 let price = getIntegerValue(keyPrice())
8282 let tier = getIntegerValue(keyTier())
8383 let addressBeneficiary = addressFromStringValue(getStringValue(keyBeneficiaryAddress()))
8484 let amountAint = fraction(amount, MULT8, price)
8585 let amountAintFinal = if ((tier >= amountAint))
86- then tier
87- else amountAint
86+ then amountAint
87+ else tier
8888 let tierNew = if ((tier >= amountAint))
8989 then (tier - amountAint)
9090 else (MULT8 * 10)
9191 let priceNew = if ((tier >= amountAint))
9292 then (price + PRICESTEP)
9393 else price
9494 let returnAmount = if ((tier >= amountAint))
9595 then 0
9696 else (amount - fraction(amount, MULT8, price))
9797 let preExecute = [ScriptTransfer(i.caller, amountAintFinal, AINTID), ScriptTransfer(addressBeneficiary, amount, unit), IntegerEntry(keyTier(), tierNew)]
9898 let execute = if ((tier >= amountAint))
9999 then preExecute
100100 else (preExecute ++ [IntegerEntry(keyPrice(), priceNew), ScriptTransfer(i.caller, returnAmount, unit)])
101101 execute
102102 }
103103 }
104104
105105
106106
107107 @Callable(i)
108108 func test () = [DeleteEntry("test")]
109109
110110

github/deemru/w8io/3ef1775 
53.62 ms