tx · GYPVqiwDogKNhH12xTiir7o8qCy7he912Kn3SnxBNktR

3MyDGEoKp1gF4LSRknk9vSuDEyrwuYXcQEQ:  -0.01000000 Waves

2022.05.06 15:18 [2039830] smart account 3MyDGEoKp1gF4LSRknk9vSuDEyrwuYXcQEQ > SELF 0.00000000 Waves

{ "type": 13, "id": "GYPVqiwDogKNhH12xTiir7o8qCy7he912Kn3SnxBNktR", "fee": 1000000, "feeAssetId": null, "timestamp": 1651839496418, "version": 2, "chainId": 84, "sender": "3MyDGEoKp1gF4LSRknk9vSuDEyrwuYXcQEQ", "senderPublicKey": "BhRnrwd6wVHSkSaWXCjQRjaoXcpCdUW2hkJD6V7uVDxN", "proofs": [ "3Zt2KnTUnEM4R9VjkR2Es8H6CSPUWSSgecscxGTGSRjziTnK2nwpCTmdeNeJ6sViWGSj6kpX8zG8TpXFxaf9ZpZi" ], "script": "base64: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", "height": 2039830, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GdkZMMoDfS7xogYUG8FU5XtZRZgBxxxA6WU72YFZ384w Next: 4FQepgcGSUiM7szPq1pqp5wDqwP9Hxvm9FFWMXP3zhLk Diff:
OldNewDifferences
55
66 let adminAddress = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
77
8-let assetsAddress = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
8+let assetsAddress = base58'FWSsBbeCwLVkekWhvNKtX6JkrZiruRybKKVuiS3F4bqN'
99
1010 func tryGetInteger (key) = match getInteger(this, key) {
1111 case b: Int =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let shinywggid = base58'AFQS5E4ELtxex3iANtWtUU2V2oWJZSo8VVnK8z3VFmqf'
55
66 let adminAddress = addressFromStringValue("3MpNtiPSRSq6NnaQYk38BfWSzZcgAYTyrQ9")
77
8-let assetsAddress = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
8+let assetsAddress = base58'FWSsBbeCwLVkekWhvNKtX6JkrZiruRybKKVuiS3F4bqN'
99
1010 func tryGetInteger (key) = match getInteger(this, key) {
1111 case b: Int =>
1212 b
1313 case _ =>
1414 0
1515 }
1616
1717
1818 func tryGetBoolean (key) = match getBoolean(this, key) {
1919 case b: Boolean =>
2020 b
2121 case _ =>
2222 false
2323 }
2424
2525
2626 func internalDeposit (addressStr,amountIn) = {
2727 let amount = tryGetInteger((addressStr + "_Deposit"))
2828 [IntegerEntry((addressStr + "_Deposit"), (amount + amountIn))]
2929 }
3030
3131
3232 func internalPay (addressStr,amount) = {
3333 let deposited = tryGetInteger((addressStr + "_Deposit"))
3434 if ((0 > (deposited - amount)))
3535 then throw("Not enough deposit to build.")
3636 else if (((deposited - amount) == 0))
3737 then [DeleteEntry((addressStr + "_Deposit"))]
3838 else [IntegerEntry((addressStr + "_Deposit"), (deposited - amount))]
3939 }
4040
4141
4242 func internalReserve (addressStr,amount) = {
4343 let reservedAmount = tryGetInteger((addressStr + "_Reserved"))
4444 [IntegerEntry((addressStr + "_Reserved"), (reservedAmount + amount))]
4545 }
4646
4747
4848 func internalTransfer (fromAddress,toAddress,amount) = (internalPay(fromAddress, amount) ++ internalDeposit(toAddress, amount))
4949
5050
5151 @Callable(i)
5252 func setAssetAddress (assetAddr) = if (if ((i.caller != this))
5353 then (i.caller != adminAddress)
5454 else false)
5555 then throw("you are not authorized to perform this operation")
5656 else [StringEntry("AssetAddress", assetAddr)]
5757
5858
5959
6060 @Callable(i)
6161 func Deposit () = {
6262 let addressStr = toString(i.originCaller)
6363 let pmt = i.payments[0]
6464 if ((pmt == pmt))
6565 then {
6666 let amountIn = value(i.payments[0].amount)
6767 if ((amountIn == amountIn))
6868 then {
6969 let assetIn = pmt.assetId
7070 if ((assetIn == assetIn))
7171 then if ((assetIn != shinywggid))
7272 then throw("Only $HEG payments allowed")
7373 else {
7474 let amount = tryGetInteger((addressStr + "_Deposit"))
7575 internalDeposit(addressStr, (amount + amountIn))
7676 }
7777 else throw("Strict value is not equal to itself.")
7878 }
7979 else throw("Strict value is not equal to itself.")
8080 }
8181 else throw("Strict value is not equal to itself.")
8282 }
8383
8484
8585
8686 @Callable(i)
8787 func Pay (addressStr,amount) = if (if (if ((i.caller != this))
8888 then (i.caller != adminAddress)
8989 else false)
9090 then (i.caller.bytes != assetsAddress)
9191 else false)
9292 then throw("you are not authorized to perform this operation")
9393 else internalPay(addressStr, amount)
9494
9595
9696
9797 @Callable(i)
9898 func CallerPay (amount) = {
9999 let callerAddr = toString(i.caller)
100100 internalPay(callerAddr, amount)
101101 }
102102
103103
104104
105105 @Callable(i)
106106 func transferCoins (fromAddress,toAddress,amount) = if (if ((i.caller != adminAddress))
107107 then (i.caller.bytes != assetsAddress)
108108 else false)
109109 then throw("you are not authorized to perform this operation")
110110 else internalTransfer(fromAddress, toAddress, amount)
111111
112112
113113
114114 @Callable(i)
115115 func Redeem () = {
116116 let addressStr = toString(i.caller)
117117 let reservedAmount = tryGetInteger((addressStr + "_Reserved"))
118118 if ((reservedAmount == 0))
119119 then throw("Nothing to redeem")
120120 else [DeleteEntry((addressStr + "_Reserved")), ScriptTransfer(i.caller, reservedAmount, shinywggid)]
121121 }
122122
123123

github/deemru/w8io/c3f4982 
46.69 ms