tx · FojiDjck3sVZ4wKiy9Fef5RrU23FVGP6javx8ahypcai

3N19jxhEYkphA6vga9hXTPsU5YfRMR27YoE:  -0.04000000 Waves

2022.05.04 22:15 [2037349] smart account 3N19jxhEYkphA6vga9hXTPsU5YfRMR27YoE > SELF 0.00000000 Waves

{ "type": 13, "id": "FojiDjck3sVZ4wKiy9Fef5RrU23FVGP6javx8ahypcai", "fee": 4000000, "feeAssetId": null, "timestamp": 1651691692668, "version": 2, "chainId": 84, "sender": "3N19jxhEYkphA6vga9hXTPsU5YfRMR27YoE", "senderPublicKey": "B3JNxLE1zmVDjs6MqSA1d3N7V6dS5Rq2wvxZqqVHo1fK", "proofs": [ "3hCSCY3thyEeUAb59cgCFVWf6Kd8ze4r3EA5XB8jCAcrVZifTTopfTVBHUJzZswKgEMcwq21kKznXGkQ3xJo1yG4" ], "script": "base64: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", "height": 2037349, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ACqAV4b3gh8L5hriwF3v1HZwWZmTm9Je245Bhghd7fyP Next: eqbcHuimumrFQy33VSYmh2ENB5VF31jmJac5miPvo4Y Diff:
OldNewDifferences
5151 if ((i.caller == this))
5252 then if (isDefined(PMAA))
5353 then throw("The pool has been previously added.")
54- else [StringEntry(address, pair), StringEntry(("POOL_" + pair), staker), StringEntry((l + pair), lp), StringEntry((aa1 + address), asset1), StringEntry((aa2 + address), asset2), StringEntry((type + address), "pools")]
54+ else if ((addres == staker))
55+ then throw("Pool address cannot be the same as staker")
56+ else [StringEntry(address, pair), StringEntry(("POOL_" + pair), staker), StringEntry((l + pair), lp), StringEntry((aa1 + address), asset1), StringEntry((aa2 + address), asset2), StringEntry((type + address), "pools")]
5557 else throw("Only the Admin itself can invoke this function")
5658 }
5759
7274 if ((i.caller == this))
7375 then if (isDefined(PMAA))
7476 then throw("The address for this swap has been previously added.")
75- else [StringEntry(("swap_" + pair), staker), StringEntry(address, pair), StringEntry((a1 + address), asset1), StringEntry((a2 + address), asset2), StringEntry((type + address), "swap")]
77+ else if ((addres == staker))
78+ then throw("Swap address cannot be the same as staker")
79+ else [StringEntry(("swap_" + pair), staker), StringEntry(address, pair), StringEntry((a1 + address), asset1), StringEntry((a2 + address), asset2), StringEntry((type + address), "swap")]
7680 else throw("Only the Admin itself can invoke this function")
7781 }
7882
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let main = "main_asset"
55
66 let l = "lp_asset_"
77
88 let a1 = "swap_asset1_"
99
1010 let st = "address_staker_"
1111
1212 let sst = "address_pool_"
1313
1414 let swp = "address_swap_"
1515
1616 let a2 = "swap_asset2_"
1717
1818 let aa1 = "pool_1_"
1919
2020 let aa2 = "pool_2_"
2121
2222 let st1 = "staker_address"
2323
2424 let type = "type_"
2525
2626 let leasePool = Address(this.bytes)
2727
2828 let sa = "STAKING_AMOUNT_"
2929
3030 let la = "LEASE_AMOUNT_"
3131
3232 let ix = "ID_"
3333
3434 let exchangeRate = 5
3535
3636 func getAddressIfValid (address) = toString(valueOrErrorMessage(addressFromString(address), (("Can't parse " + address) + " as address")))
3737
3838
3939 @Callable(i)
4040 func addMainAsset (id) = if ((i.caller == this))
4141 then [StringEntry(main, id)]
4242 else throw("Only the Admin itself can invoke this function")
4343
4444
4545
4646 @Callable(i)
4747 func addPool (addres,pair,lp,stake,asset1,asset2) = {
4848 let address = getAddressIfValid(addres)
4949 let staker = getAddressIfValid(stake)
5050 let PMAA = getString(this, address)
5151 if ((i.caller == this))
5252 then if (isDefined(PMAA))
5353 then throw("The pool has been previously added.")
54- else [StringEntry(address, pair), StringEntry(("POOL_" + pair), staker), StringEntry((l + pair), lp), StringEntry((aa1 + address), asset1), StringEntry((aa2 + address), asset2), StringEntry((type + address), "pools")]
54+ else if ((addres == staker))
55+ then throw("Pool address cannot be the same as staker")
56+ else [StringEntry(address, pair), StringEntry(("POOL_" + pair), staker), StringEntry((l + pair), lp), StringEntry((aa1 + address), asset1), StringEntry((aa2 + address), asset2), StringEntry((type + address), "pools")]
5557 else throw("Only the Admin itself can invoke this function")
5658 }
5759
5860
5961
6062 @Callable(i)
6163 func activate (v) = if ((i.caller == this))
6264 then [BooleanEntry("activate", v)]
6365 else throw("Only the Admin itself can invoke this function")
6466
6567
6668
6769 @Callable(i)
6870 func addSwap (addres,stake,pair,asset1,asset2) = {
6971 let address = getAddressIfValid(addres)
7072 let staker = getAddressIfValid(stake)
7173 let PMAA = getString(this, address)
7274 if ((i.caller == this))
7375 then if (isDefined(PMAA))
7476 then throw("The address for this swap has been previously added.")
75- else [StringEntry(("swap_" + pair), staker), StringEntry(address, pair), StringEntry((a1 + address), asset1), StringEntry((a2 + address), asset2), StringEntry((type + address), "swap")]
77+ else if ((addres == staker))
78+ then throw("Swap address cannot be the same as staker")
79+ else [StringEntry(("swap_" + pair), staker), StringEntry(address, pair), StringEntry((a1 + address), asset1), StringEntry((a2 + address), asset2), StringEntry((type + address), "swap")]
7680 else throw("Only the Admin itself can invoke this function")
7781 }
7882
7983
8084
8185 @Callable(i)
8286 func removeSwapOrPool (address) = {
8387 let PAA = getStringValue(this, (type + address))
8488 let PMAA = getStringValue(this, address)
8589 if ((i.caller == this))
8690 then if ((PAA == "swap"))
8791 then {
8892 let deletEnty = [DeleteEntry(("swap_" + PMAA)), DeleteEntry(address), DeleteEntry((type + address)), DeleteEntry((a1 + address)), DeleteEntry((a2 + address))]
8993 deletEnty
9094 }
9195 else {
9296 let bbentry = [DeleteEntry(address), DeleteEntry(("POOL_" + PMAA)), DeleteEntry(("lp_asset_" + PMAA)), DeleteEntry((aa1 + address)), DeleteEntry((aa2 + address)), DeleteEntry((type + address))]
9397 bbentry
9498 }
9599 else throw("Only the Admin itself can invoke this function")
96100 }
97101
98102
99103 @Verifier(tx)
100104 func verify () = match tx {
101105 case _ =>
102106 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
103107 }
104108

github/deemru/w8io/169f3d6 
28.67 ms