tx · 4HbmXaezVveQzFVndfT9Trh4mNyCBWyGX6fvAwv7sunZ

3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy:  -0.00300000 Waves

2023.01.12 07:33 [3466768] smart account 3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy > SELF 0.00000000 Waves

{ "type": 13, "id": "4HbmXaezVveQzFVndfT9Trh4mNyCBWyGX6fvAwv7sunZ", "fee": 300000, "feeAssetId": null, "timestamp": 1673498072222, "version": 2, "chainId": 87, "sender": "3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy", "senderPublicKey": "9KXfR1iJDN9MLTf7rgrygpRA3HG53KCgWyxzqk4m25Qd", "proofs": [ "63jdsS832ccEdYTkH3vb9UDzpFyydNj3t5kJjhEnKUJtrM9cCXqowVnySnBz7Yy3eEuM7pz38QAsTQMxidqgq6XV" ], "script": "base64:BgIGCAISABIACQAZV1hfTFBfV0FWRVNfVVNETl9BU1NFVF9JRAEgXedtbkamxzmxtK4hQ1NqaJeqmQ+fWxX6vGpRDRxJGSAAF1dYX1BPT0xfV0FWRVNfVVNETl9EQVBQCQEHQWRkcmVzcwEBGgFX7UefzUI8k75LIc37An4fyC37loB6w699ABtORVVUUklOT19SRVNUX1JFQURPTkxZX0RBUFAJAQdBZGRyZXNzAQEaAVc2mMwFV8eubgPH9X8mVUOITa4f15p3UlEAFU5FVVRSSU5PX01FVFJJQ1NfREFQUAkBB0FkZHJlc3MBARoBVzjkpo76YXsJPSIs33Rbs+CIsp0VDzoUtgANTkVVVFJJTk9fTUFJTgkBB0FkZHJlc3MBARoBV3AEYqZHm+mtVmiUy++FjDCCICiaCBSWsgANVVNETl9BU1NFVF9JRAEgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEBCWFzQW55TGlzdAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAglMaXN0W0FueV0EAWwFByRtYXRjaDAFAWwJAAIBAgQjZXJyAQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAFAXgEAXQFByRtYXRjaDAJAAIBAgQjZXJyAQVhc1N0cgEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXgFByRtYXRjaDAFAXgEAXQFByRtYXRjaDAJAAIBAgQjZXJyAgFpAQdkZWZhdWx0AAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECC05vdCBhbGxvd2VkAwMJAQEhAQkBCWlzRGVmaW5lZAEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAYJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUNVVNETl9BU1NFVF9JRAkAAgECCVVTRE4gT25seQQGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQPbmV1dHJpbm9NZXRyaWNzCQEJYXNBbnlMaXN0AQkA/AcEBRVORVVUUklOT19NRVRSSUNTX0RBUFACGmNhbGNOZXV0aW5vTWV0cmljc1JFQURPTkxZBQNuaWwFA25pbAMJAAACBQ9uZXV0cmlub01ldHJpY3MFD25ldXRyaW5vTWV0cmljcwQCQlIJAQVhc0ludAEJAJEDAgUPbmV1dHJpbm9NZXRyaWNzAAgDCQBmAgUCQlIAlJEGBARjYWxsCQEFYXNTdHIBCQD8BwQFG05FVVRSSU5PX1JFU1RfUkVBRE9OTFlfREFQUAIQc3dhcEluZm9SRUFET05MWQkAzAgCAiMzUEc3Q0h2QmF0SHBDaHdtOHJlSDc0d2ZFd2sxUEhjOFJxeQUDbmlsBQNuaWwDCQAAAgUEY2FsbAUEY2FsbAQRbmV1dHJpbm9fZGF0YV9hcnIJALUJAgUEY2FsbAICX18EGGFscmVhZHlTd2FwcGVkVW5kZXJMaW1pdAkBBWFzSW50AQkAtgkBCQCRAwIFEW5ldXRyaW5vX2RhdGFfYXJyAAsEFW1heEF2YWlsYWJsZVRvU3dhcE5vdwkBBWFzSW50AQkAtgkBCQCRAwIFEW5ldXRyaW5vX2RhdGFfYXJyAAoDCQECIT0CBRhhbHJlYWR5U3dhcHBlZFVuZGVyTGltaXQAAAkAAgECDkNhbid0IHN3YXAgeWV0BBFhbW91bk9mVXNkblRvU3dhcAMJAGYCBQZhbW91bnQFFW1heEF2YWlsYWJsZVRvU3dhcE5vdwUVbWF4QXZhaWxhYmxlVG9Td2FwTm93BQZhbW91bnQEEnN3YXBVc2RuVG9XYXZlc19TQwkA/AcEBQ1ORVVUUklOT19NQUlOAhNzd2FwTmV1dHJpbm9Ub1dhdmVzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFDVVTRE5fQVNTRVRfSUQFEWFtb3VuT2ZVc2RuVG9Td2FwBQNuaWwDCQAAAgUSc3dhcFVzZG5Ub1dhdmVzX1NDBRJzd2FwVXNkblRvV2F2ZXNfU0MFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC0JyIHVuZGVyIDEwCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCndhdmVzVG9VZG4AAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQILTm90IGFsbG93ZWQDCQEJaXNEZWZpbmVkAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQACAQIKV0FWRVMgT25seQQGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQFY2FsbDEJAPwHBAUXV1hfUE9PTF9XQVZFU19VU0ROX0RBUFACCXB1dE9uZVRrbgkAzAgCAAEJAMwIAgcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUEdW5pdAUGYW1vdW50BQNuaWwDCQAAAgUFY2FsbDEFBWNhbGwxBA5scFRva2VuQmFsYW5jZQkA8AcCBQR0aGlzBRlXWF9MUF9XQVZFU19VU0ROX0FTU0VUX0lEBAVjYWxsMgkA/AcEBRdXWF9QT09MX1dBVkVTX1VTRE5fREFQUAIJZ2V0T25lVGtuCQDMCAIFDVVTRE5fQVNTRVRfSUQJAMwIAgABBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFGVdYX0xQX1dBVkVTX1VTRE5fQVNTRVRfSUQFDmxwVG9rZW5CYWxhbmNlBQNuaWwDCQAAAgUFY2FsbDIFBWNhbGwyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkACQDIEwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5Y9/zfw==", "height": 3466768, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: B39f1fXZMb3VC8QuwLwMpVqsosLE9Nxhtsrd3F7g1tnY Next: B5MrZG94MCxZ2Db3WrFdsxaQckV62KTMG1opmpWwHc7G Diff:
OldNewDifferences
3838
3939
4040 @Callable(i)
41-func usdnToWaves (a) = if ((i.caller != this))
41+func default () = if ((i.caller != this))
4242 then throw("Not allowed")
43- else {
44- let amount = (a * 1000000)
45- let neutrinoMetrics = asAnyList(invoke(NEUTRINO_METRICS_DAPP, "calcNeutinoMetricsREADONLY", nil, nil))
46- if ((neutrinoMetrics == neutrinoMetrics))
47- then {
48- let BR = asInt(neutrinoMetrics[8])
49- if ((BR > 100500))
50- then {
51- let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", ["3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy"], nil))
52- if ((call == call))
53- then {
54- let neutrino_data_arr = split(call, "__")
55- let alreadySwappedUnderLimit = asInt(parseInt(neutrino_data_arr[11]))
56- let maxAvailableToSwapNow = asInt(parseInt(neutrino_data_arr[10]))
57- if ((alreadySwappedUnderLimit != 0))
58- then throw("Can't swap yet")
59- else {
60- let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
61- then maxAvailableToSwapNow
62- else amount
63- let swapUsdnToWaves_SC = invoke(NEUTRINO_MAIN, "swapNeutrinoToWaves", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
64- if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
65- then nil
66- else throw("Strict value is not equal to itself.")
67- }
68- }
69- else throw("Strict value is not equal to itself.")
70- }
71- else throw("Br under 10")
72- }
73- else throw("Strict value is not equal to itself.")
74- }
43+ else if (if (!(isDefined(i.payments[0].assetId)))
44+ then true
45+ else (i.payments[0].assetId != USDN_ASSET_ID))
46+ then throw("USDN Only")
47+ else {
48+ let amount = i.payments[0].amount
49+ let neutrinoMetrics = asAnyList(invoke(NEUTRINO_METRICS_DAPP, "calcNeutinoMetricsREADONLY", nil, nil))
50+ if ((neutrinoMetrics == neutrinoMetrics))
51+ then {
52+ let BR = asInt(neutrinoMetrics[8])
53+ if ((BR > 100500))
54+ then {
55+ let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", ["3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy"], nil))
56+ if ((call == call))
57+ then {
58+ let neutrino_data_arr = split(call, "__")
59+ let alreadySwappedUnderLimit = asInt(parseInt(neutrino_data_arr[11]))
60+ let maxAvailableToSwapNow = asInt(parseInt(neutrino_data_arr[10]))
61+ if ((alreadySwappedUnderLimit != 0))
62+ then throw("Can't swap yet")
63+ else {
64+ let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
65+ then maxAvailableToSwapNow
66+ else amount
67+ let swapUsdnToWaves_SC = invoke(NEUTRINO_MAIN, "swapNeutrinoToWaves", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
68+ if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
69+ then nil
70+ else throw("Strict value is not equal to itself.")
71+ }
72+ }
73+ else throw("Strict value is not equal to itself.")
74+ }
75+ else throw("Br under 10")
76+ }
77+ else throw("Strict value is not equal to itself.")
78+ }
7579
7680
7781
7882 @Callable(i)
79-func wavesToUsdn (a) = if ((i.caller != this))
83+func wavesToUdn () = if ((i.caller != this))
8084 then throw("Not allowed")
81- else {
82- let amount = (a * 100000000)
83- let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, amount)])
84- if ((call1 == call1))
85- then {
86- let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
87- let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
88- if ((call2 == call2))
89- then nil
90- else throw("Strict value is not equal to itself.")
91- }
92- else throw("Strict value is not equal to itself.")
93- }
85+ else if (isDefined(i.payments[0].assetId))
86+ then throw("WAVES Only")
87+ else {
88+ let amount = i.payments[0].amount
89+ let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, amount)])
90+ if ((call1 == call1))
91+ then {
92+ let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
93+ let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [USDN_ASSET_ID, 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
94+ if ((call2 == call2))
95+ then nil
96+ else throw("Strict value is not equal to itself.")
97+ }
98+ else throw("Strict value is not equal to itself.")
99+ }
94100
95101
96102 @Verifier(tx)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let WX_LP_WAVES_USDN_ASSET_ID = base58'7KZbJrVopwJhkdwbe1eFDBbex4dkY63MxjTNjqXtrzj1'
55
66 let WX_POOL_WAVES_USDN_DAPP = Address(base58'3PPZWgFNRKHLvM51pwS934C8VZ7d2F4Z58g')
77
88 let NEUTRINO_REST_READONLY_DAPP = Address(base58'3P6uaG88jjcLYZQrvJHLWPbFFRnChnAzmcU')
99
1010 let NEUTRINO_METRICS_DAPP = Address(base58'3P77iUusNwMMzWFdC8f7bftwpHyG1PBs1gq')
1111
1212 let NEUTRINO_MAIN = Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo')
1313
1414 let USDN_ASSET_ID = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
1515
1616 func asAnyList (v) = match v {
1717 case l: List[Any] =>
1818 l
1919 case _ =>
2020 throw("#err")
2121 }
2222
2323
2424 func asInt (v) = match v {
2525 case x: Int =>
2626 x
2727 case t =>
2828 throw("#err")
2929 }
3030
3131
3232 func asStr (v) = match v {
3333 case x: String =>
3434 x
3535 case t =>
3636 throw("#err")
3737 }
3838
3939
4040 @Callable(i)
41-func usdnToWaves (a) = if ((i.caller != this))
41+func default () = if ((i.caller != this))
4242 then throw("Not allowed")
43- else {
44- let amount = (a * 1000000)
45- let neutrinoMetrics = asAnyList(invoke(NEUTRINO_METRICS_DAPP, "calcNeutinoMetricsREADONLY", nil, nil))
46- if ((neutrinoMetrics == neutrinoMetrics))
47- then {
48- let BR = asInt(neutrinoMetrics[8])
49- if ((BR > 100500))
50- then {
51- let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", ["3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy"], nil))
52- if ((call == call))
53- then {
54- let neutrino_data_arr = split(call, "__")
55- let alreadySwappedUnderLimit = asInt(parseInt(neutrino_data_arr[11]))
56- let maxAvailableToSwapNow = asInt(parseInt(neutrino_data_arr[10]))
57- if ((alreadySwappedUnderLimit != 0))
58- then throw("Can't swap yet")
59- else {
60- let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
61- then maxAvailableToSwapNow
62- else amount
63- let swapUsdnToWaves_SC = invoke(NEUTRINO_MAIN, "swapNeutrinoToWaves", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
64- if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
65- then nil
66- else throw("Strict value is not equal to itself.")
67- }
68- }
69- else throw("Strict value is not equal to itself.")
70- }
71- else throw("Br under 10")
72- }
73- else throw("Strict value is not equal to itself.")
74- }
43+ else if (if (!(isDefined(i.payments[0].assetId)))
44+ then true
45+ else (i.payments[0].assetId != USDN_ASSET_ID))
46+ then throw("USDN Only")
47+ else {
48+ let amount = i.payments[0].amount
49+ let neutrinoMetrics = asAnyList(invoke(NEUTRINO_METRICS_DAPP, "calcNeutinoMetricsREADONLY", nil, nil))
50+ if ((neutrinoMetrics == neutrinoMetrics))
51+ then {
52+ let BR = asInt(neutrinoMetrics[8])
53+ if ((BR > 100500))
54+ then {
55+ let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", ["3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy"], nil))
56+ if ((call == call))
57+ then {
58+ let neutrino_data_arr = split(call, "__")
59+ let alreadySwappedUnderLimit = asInt(parseInt(neutrino_data_arr[11]))
60+ let maxAvailableToSwapNow = asInt(parseInt(neutrino_data_arr[10]))
61+ if ((alreadySwappedUnderLimit != 0))
62+ then throw("Can't swap yet")
63+ else {
64+ let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
65+ then maxAvailableToSwapNow
66+ else amount
67+ let swapUsdnToWaves_SC = invoke(NEUTRINO_MAIN, "swapNeutrinoToWaves", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
68+ if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
69+ then nil
70+ else throw("Strict value is not equal to itself.")
71+ }
72+ }
73+ else throw("Strict value is not equal to itself.")
74+ }
75+ else throw("Br under 10")
76+ }
77+ else throw("Strict value is not equal to itself.")
78+ }
7579
7680
7781
7882 @Callable(i)
79-func wavesToUsdn (a) = if ((i.caller != this))
83+func wavesToUdn () = if ((i.caller != this))
8084 then throw("Not allowed")
81- else {
82- let amount = (a * 100000000)
83- let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, amount)])
84- if ((call1 == call1))
85- then {
86- let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
87- let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [toBase58String(USDN_ASSET_ID), 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
88- if ((call2 == call2))
89- then nil
90- else throw("Strict value is not equal to itself.")
91- }
92- else throw("Strict value is not equal to itself.")
93- }
85+ else if (isDefined(i.payments[0].assetId))
86+ then throw("WAVES Only")
87+ else {
88+ let amount = i.payments[0].amount
89+ let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, amount)])
90+ if ((call1 == call1))
91+ then {
92+ let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
93+ let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [USDN_ASSET_ID, 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
94+ if ((call2 == call2))
95+ then nil
96+ else throw("Strict value is not equal to itself.")
97+ }
98+ else throw("Strict value is not equal to itself.")
99+ }
94100
95101
96102 @Verifier(tx)
97103 func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
98104

github/deemru/w8io/3ef1775 
30.50 ms