tx · 9y91Bw669JicyUpTKUtCTa1EpSY51fqNeYNE6GBcyB8g

3MvTsZLYhU4bGijfdULLDAUEiZVryxJVQPJ:  -0.01400000 Waves

2023.01.15 18:46 [2406265] smart account 3MvTsZLYhU4bGijfdULLDAUEiZVryxJVQPJ > SELF 0.00000000 Waves

{ "type": 13, "id": "9y91Bw669JicyUpTKUtCTa1EpSY51fqNeYNE6GBcyB8g", "fee": 1400000, "feeAssetId": null, "timestamp": 1673797662695, "version": 2, "chainId": 84, "sender": "3MvTsZLYhU4bGijfdULLDAUEiZVryxJVQPJ", "senderPublicKey": "6hSe4di8vdVexXUoSJQ1unZB3n287fgHNBP7PberpTez", "proofs": [ "3TyTo6AgipR6kzayDHrsRYVCYTYLgbhmanZFcg29p3zjGKvbehu8h5bDcphNLeW3ASuz5siMddkwCJmFPJMTgTSw" ], "script": "base64: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", "height": 2406265, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C77P3aGL8Mw6XxZ6ig27HvkKKip9U6Smy5zPMCmgp1pm Next: DyWgXsgoUWzSifRFispC6Bu4RT59qs7bqBNjKSJtmMUW Diff:
OldNewDifferences
3838
3939
4040 @Callable(i)
41-func ClaimCall (UserCallID) = {
41+func ClaimCall (Call_Sequence) = {
4242 let calleraddress = toBase58String(i.caller.bytes)
43- let getUserCallID = getStringValue(this, ((("Call_Start_End_" + calleraddress) + "_") + toString(UserCallID)))
44- let getStartEndCounter = split(getUserCallID, "_")
45- let getStartCounter = getStartEndCounter[0]
43+ let getOptionCallPrice = ((("Call_" + calleraddress) + "_") + toString(Call_Sequence))
44+ let getOptionCall_Sequencedata = getStringValue(this, ((("Call_Start_End_" + calleraddress) + "_") + toString(Call_Sequence)))
45+ let splitStartEndCounter = split(getOptionCall_Sequencedata, "_")
46+ let getStartCounter = splitStartEndCounter[0]
47+ let getEndCounter = splitStartEndCounter[1]
4648 let getbtcdata = getStringValue(addressFromPublicKey(base58'6hSe4di8vdVexXUoSJQ1unZB3n287fgHNBP7PberpTez'), ("1m_btc_" + getStartCounter))
47-[StringEntry("Start_valeu", getStartCounter), DeleteEntry(((("Call_Start_End_" + calleraddress) + "_") + toString(UserCallID))), DeleteEntry(((("Call_" + calleraddress) + "_") + toString(UserCallID)))]
49+ let getbtcdata1 = getStringValue(addressFromPublicKey(base58'6hSe4di8vdVexXUoSJQ1unZB3n287fgHNBP7PberpTez'), ("1m_btc_" + getEndCounter))
50+ let StartEndPriceDiff = (parseIntValue(getbtcdata) - parseIntValue(getbtcdata1))
51+ if ((StartEndPriceDiff > 0))
52+ then throw("Price is not Positive")
53+ else [StringEntry("Start_value", getStartCounter), IntegerEntry("Price_Diff", StartEndPriceDiff), DeleteEntry(((("Call_Start_End_" + calleraddress) + "_") + toString(Call_Sequence))), DeleteEntry(getOptionCallPrice)]
4854 }
4955
5056
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func placeoptionCall () = {
88 let calleraddress = toBase58String(i.caller.bytes)
99 let read_oracle_status = getStringValue(this, "oracle_status")
1010 let read_OptionCounterID = getIntegerValue(this, "1m_contract_id")
1111 let getbtcdata = getStringValue(this, ("1m_btc_" + toString(read_OptionCounterID)))
1212 let swapLi = split(getbtcdata, "_")
1313 let price = swapLi[0]
1414 let block = parseIntValue(swapLi[2])
1515 let checkblockgap = (height - block)
1616 let OptionExpireCounterID = (read_OptionCounterID + 15)
1717 let PreviousCall = match getInteger(this, "Total_Calls") {
1818 case a: Int =>
1919 a
2020 case _ =>
2121 0
2222 }
2323 let TotalCall = (PreviousCall + 1)
2424 let PreviousUserCall = match getInteger(this, (calleraddress + "_Total_Calls")) {
2525 case a: Int =>
2626 a
2727 case _ =>
2828 0
2929 }
3030 let TotalUserCall = (PreviousUserCall + 1)
3131 if ((checkblockgap > 2))
3232 then throw("Something Wrong with Oracle or Height is not matched.")
3333 else if ((read_oracle_status == "Close"))
3434 then throw("Oracle is closed. Wait Until Oracle is Turned On.")
3535 else [StringEntry(((("Call_" + calleraddress) + "_") + toString(TotalUserCall)), price), StringEntry(((("Call_Start_End_" + calleraddress) + "_") + toString(TotalUserCall)), ((toString(read_OptionCounterID) + "_") + toString(OptionExpireCounterID))), IntegerEntry("Total_Calls", TotalCall), IntegerEntry((calleraddress + "_Total_Calls"), TotalUserCall)]
3636 }
3737
3838
3939
4040 @Callable(i)
41-func ClaimCall (UserCallID) = {
41+func ClaimCall (Call_Sequence) = {
4242 let calleraddress = toBase58String(i.caller.bytes)
43- let getUserCallID = getStringValue(this, ((("Call_Start_End_" + calleraddress) + "_") + toString(UserCallID)))
44- let getStartEndCounter = split(getUserCallID, "_")
45- let getStartCounter = getStartEndCounter[0]
43+ let getOptionCallPrice = ((("Call_" + calleraddress) + "_") + toString(Call_Sequence))
44+ let getOptionCall_Sequencedata = getStringValue(this, ((("Call_Start_End_" + calleraddress) + "_") + toString(Call_Sequence)))
45+ let splitStartEndCounter = split(getOptionCall_Sequencedata, "_")
46+ let getStartCounter = splitStartEndCounter[0]
47+ let getEndCounter = splitStartEndCounter[1]
4648 let getbtcdata = getStringValue(addressFromPublicKey(base58'6hSe4di8vdVexXUoSJQ1unZB3n287fgHNBP7PberpTez'), ("1m_btc_" + getStartCounter))
47-[StringEntry("Start_valeu", getStartCounter), DeleteEntry(((("Call_Start_End_" + calleraddress) + "_") + toString(UserCallID))), DeleteEntry(((("Call_" + calleraddress) + "_") + toString(UserCallID)))]
49+ let getbtcdata1 = getStringValue(addressFromPublicKey(base58'6hSe4di8vdVexXUoSJQ1unZB3n287fgHNBP7PberpTez'), ("1m_btc_" + getEndCounter))
50+ let StartEndPriceDiff = (parseIntValue(getbtcdata) - parseIntValue(getbtcdata1))
51+ if ((StartEndPriceDiff > 0))
52+ then throw("Price is not Positive")
53+ else [StringEntry("Start_value", getStartCounter), IntegerEntry("Price_Diff", StartEndPriceDiff), DeleteEntry(((("Call_Start_End_" + calleraddress) + "_") + toString(Call_Sequence))), DeleteEntry(getOptionCallPrice)]
4854 }
4955
5056
5157
5258 @Callable(i)
5359 func calldata (Counter) = {
5460 let getbtcdata = getStringValue(addressFromPublicKey(base58'6hSe4di8vdVexXUoSJQ1unZB3n287fgHNBP7PberpTez'), ("1m_btc_" + toString(Counter)))
5561 let swapLi = split(getbtcdata, "_")
5662 let price = swapLi[0]
5763 let time = swapLi[1]
5864 let blockheight = swapLi[2]
5965 let div = swapLi[3]
6066 [StringEntry("price", swapLi[0]), StringEntry("time", swapLi[1]), StringEntry("blockheight", swapLi[2]), StringEntry("div", swapLi[3])]
6167 }
6268
6369
6470 @Verifier(tx)
6571 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
6672

github/deemru/w8io/169f3d6 
87.56 ms