tx · Ac6tZh5nwwwEKzofT4sNbKXcWESWuiCXkHkHoxwKSxDr

3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy:  -0.00300000 Waves

2022.12.06 13:43 [3413860] smart account 3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy > SELF 0.00000000 Waves

{ "type": 13, "id": "Ac6tZh5nwwwEKzofT4sNbKXcWESWuiCXkHkHoxwKSxDr", "fee": 300000, "feeAssetId": null, "timestamp": 1670323429807, "version": 2, "chainId": 87, "sender": "3PG7CHvBatHpChwm8reH74wfEwk1PHc8Rqy", "senderPublicKey": "9KXfR1iJDN9MLTf7rgrygpRA3HG53KCgWyxzqk4m25Qd", "proofs": [ "5cZiyGu1fHaWadKVWvmFHifWpsuFUAZqo4VU7z1A4djqRpGozL2nJpr1s1As5L1u1MKum9qVPcQPBKLABQZ7G8aT" ], "script": "base64:BgIGCAISABIACAAZV1hfTFBfV0FWRVNfVVNETl9BU1NFVF9JRAEgXedtbkamxzmxtK4hQ1NqaJeqmQ+fWxX6vGpRDRxJGSAAF1dYX1BPT0xfV0FWRVNfVVNETl9EQVBQCQEHQWRkcmVzcwEBGgFX7UefzUI8k75LIc37An4fyC37loB6w699ABtORVVUUklOT19SRVNUX1JFQURPTkxZX0RBUFAJAQdBZGRyZXNzAQEaAVc2mMwFV8eubgPH9X8mVUOITa4f15p3UlEAFU5FVVRSSU5PX01FVFJJQ1NfREFQUAkBB0FkZHJlc3MBARoBVzjkpo76YXsJPSIs33Rbs+CIsp0VDzoUtgANVVNETl9BU1NFVF9JRAEgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEBCWFzQW55TGlzdAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAglMaXN0W0FueV0EAWwFByRtYXRjaDAFAWwJAAIBAgQjZXJyAQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAFAXgEAXQFByRtYXRjaDAJAAIBAgQjZXJyAQVhc1N0cgEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXgFByRtYXRjaDAFAXgEAXQFByRtYXRjaDAJAAIBAgQjZXJyAgFpAQdkZWZhdWx0AAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECC05vdCBhbGxvd2VkAwMJAQEhAQkBCWlzRGVmaW5lZAEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAYJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUNVVNETl9BU1NFVF9JRAkAAgECCVVTRE4gT25seQQGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQPbmV1dHJpbm9NZXRyaWNzCQEJYXNBbnlMaXN0AQkA/AcEBRVORVVUUklOT19NRVRSSUNTX0RBUFACGmNhbGNOZXV0aW5vTWV0cmljc1JFQURPTkxZBQNuaWwFA25pbAMJAAACBQ9uZXV0cmlub01ldHJpY3MFD25ldXRyaW5vTWV0cmljcwQCQlIJAQVhc0ludAEJAJEDAgUPbmV1dHJpbm9NZXRyaWNzAAgDCQBmAgUCQlIAzI8GBARjYWxsCQEFYXNTdHIBCQD8BwQFG05FVVRSSU5PX1JFU1RfUkVBRE9OTFlfREFQUAIQc3dhcEluZm9SRUFET05MWQkAzAgCBQR0aGlzBQNuaWwFA25pbAMJAAACBQRjYWxsBQRjYWxsBBFuZXV0cmlub19kYXRhX2FycgkAtQkCBQRjYWxsAgJfXwQYYWxyZWFkeVN3YXBwZWRVbmRlckxpbWl0CQEFYXNJbnQBCQCRAwIFEW5ldXRyaW5vX2RhdGFfYXJyAAsEFW1heEF2YWlsYWJsZVRvU3dhcE5vdwkBBWFzSW50AQkAkQMCBRFuZXV0cmlub19kYXRhX2FycgAKAwkBAiE9AgUYYWxyZWFkeVN3YXBwZWRVbmRlckxpbWl0AAAJAAIBAg5DYW4ndCBzd2FwIHlldAQRYW1vdW5PZlVzZG5Ub1N3YXADCQBmAgUGYW1vdW50BRVtYXhBdmFpbGFibGVUb1N3YXBOb3cFFW1heEF2YWlsYWJsZVRvU3dhcE5vdwUGYW1vdW50BBJzd2FwVXNkblRvV2F2ZXNfU0MJAPwHBAkBB0FkZHJlc3MBARoBVyDCi2Z2rMPA457xP8NFWRqjYj6l2pd0igITc3dhcE5ldXRyaW5vVG9XYXZlcwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQ1VU0ROX0FTU0VUX0lEBRFhbW91bk9mVXNkblRvU3dhcAUDbmlsAwkAAAIFEnN3YXBVc2RuVG9XYXZlc19TQwUSc3dhcFVzZG5Ub1dhdmVzX1NDBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtCciB1bmRlciAxMAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQp3YXZlc1RvVWRuAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECC05vdCBhbGxvd2VkAwkBCWlzRGVmaW5lZAEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkAAgECCldBVkVTIE9ubHkEBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEBWNhbGwxCQD8BwQFF1dYX1BPT0xfV0FWRVNfVVNETl9EQVBQAglwdXRPbmVUa24JAMwIAgABCQDMCAIHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFBmFtb3VudAUDbmlsAwkAAAIFBWNhbGwxBQVjYWxsMQQObHBUb2tlbkJhbGFuY2UJAPAHAgUEdGhpcwUZV1hfTFBfV0FWRVNfVVNETl9BU1NFVF9JRAQFY2FsbDIJAPwHBAUXV1hfUE9PTF9XQVZFU19VU0ROX0RBUFACCWdldE9uZVRrbgkAzAgCBQ1VU0ROX0FTU0VUX0lECQDMCAIAAQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBRlXWF9MUF9XQVZFU19VU0ROX0FTU0VUX0lEBQ5scFRva2VuQmFsYW5jZQUDbmlsAwkAAAIFBWNhbGwyBQVjYWxsMgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAkAyBMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleZAZkLc=", "height": 3413860, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ADe1jCZq4B6xJ5CYgFSu2yRhzvFySFKXhzDH1d1d9WN4 Next: D8j8nZ1TvQRk4jZFmE1sgjhBoLUTrHLkMfNFeKx7f6Tu Diff:
OldNewDifferences
3838 @Callable(i)
3939 func default () = if ((i.caller != this))
4040 then throw("Not allowed")
41- else if (isDefined(i.payments[0].assetId))
42- then throw("WAVES Only")
41+ else if (if (!(isDefined(i.payments[0].assetId)))
42+ then true
43+ else (i.payments[0].assetId != USDN_ASSET_ID))
44+ then throw("USDN Only")
4345 else {
4446 let amount = i.payments[0].amount
4547 let neutrinoMetrics = asAnyList(invoke(NEUTRINO_METRICS_DAPP, "calcNeutinoMetricsREADONLY", nil, nil))
4648 if ((neutrinoMetrics == neutrinoMetrics))
4749 then {
4850 let BR = asInt(neutrinoMetrics[8])
49- if (true)
50- then throw(toString(BR))
51- else if ((BR > 100300))
52- then {
53- let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, amount)])
54- if ((call1 == call1))
55- then {
56- let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
57- let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [USDN_ASSET_ID, 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
58- if ((call2 == call2))
59- then {
60- let usdnTokenBalance = assetBalance(this, USDN_ASSET_ID)
61- let call3 = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", [this], nil))
62- if ((call3 == call3))
63- then {
64- let neutrino_data_arr = split(call3, "__")
65- let alreadySwappedUnderLimit = asInt(neutrino_data_arr[11])
66- let maxAvailableToSwapNow = asInt(neutrino_data_arr[10])
67- if ((alreadySwappedUnderLimit != 0))
68- then throw("Can't swap yet")
69- else {
70- let amounOfUsdnToSwap = if ((usdnTokenBalance > maxAvailableToSwapNow))
71- then maxAvailableToSwapNow
72- else usdnTokenBalance
73- let swapUsdnToWaves_SC = invoke(Address(base58'3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj'), "swapNeutrinoToWaves", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
74- if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
75- then nil
76- else throw("Strict value is not equal to itself.")
77- }
78- }
79- else throw("Strict value is not equal to itself.")
80- }
81- else throw("Strict value is not equal to itself.")
82- }
83- else throw("Strict value is not equal to itself.")
84- }
85- else throw("Br under 10")
51+ if ((BR > 100300))
52+ then {
53+ let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", [this], nil))
54+ if ((call == call))
55+ then {
56+ let neutrino_data_arr = split(call, "__")
57+ let alreadySwappedUnderLimit = asInt(neutrino_data_arr[11])
58+ let maxAvailableToSwapNow = asInt(neutrino_data_arr[10])
59+ if ((alreadySwappedUnderLimit != 0))
60+ then throw("Can't swap yet")
61+ else {
62+ let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
63+ then maxAvailableToSwapNow
64+ else amount
65+ let swapUsdnToWaves_SC = invoke(Address(base58'3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj'), "swapNeutrinoToWaves", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
66+ if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
67+ then nil
68+ else throw("Strict value is not equal to itself.")
69+ }
70+ }
71+ else throw("Strict value is not equal to itself.")
72+ }
73+ else throw("Br under 10")
8674 }
8775 else throw("Strict value is not equal to itself.")
8876 }
9078
9179
9280 @Callable(i)
93-func usdnToWaves () = if ((i.caller != this))
81+func wavesToUdn () = if ((i.caller != this))
9482 then throw("Not allowed")
95- else if (if (!(isDefined(i.payments[0].assetId)))
96- then (i.payments[0].assetId != USDN_ASSET_ID)
97- else false)
98- then throw("USDN Only")
83+ else if (isDefined(i.payments[0].assetId))
84+ then throw("WAVES Only")
9985 else {
10086 let amount = i.payments[0].amount
101- let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [USDN_ASSET_ID, false], [AttachedPayment(unit, amount)])
87+ let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, amount)])
10288 if ((call1 == call1))
10389 then {
10490 let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
105- let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", ["WAVES", 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
91+ let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [USDN_ASSET_ID, 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
10692 if ((call2 == call2))
10793 then nil
10894 else throw("Strict value is not equal to itself.")
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 USDN_ASSET_ID = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
1313
1414 func asAnyList (v) = match v {
1515 case l: List[Any] =>
1616 l
1717 case _ =>
1818 throw("#err")
1919 }
2020
2121
2222 func asInt (v) = match v {
2323 case x: Int =>
2424 x
2525 case t =>
2626 throw("#err")
2727 }
2828
2929
3030 func asStr (v) = match v {
3131 case x: String =>
3232 x
3333 case t =>
3434 throw("#err")
3535 }
3636
3737
3838 @Callable(i)
3939 func default () = if ((i.caller != this))
4040 then throw("Not allowed")
41- else if (isDefined(i.payments[0].assetId))
42- then throw("WAVES Only")
41+ else if (if (!(isDefined(i.payments[0].assetId)))
42+ then true
43+ else (i.payments[0].assetId != USDN_ASSET_ID))
44+ then throw("USDN Only")
4345 else {
4446 let amount = i.payments[0].amount
4547 let neutrinoMetrics = asAnyList(invoke(NEUTRINO_METRICS_DAPP, "calcNeutinoMetricsREADONLY", nil, nil))
4648 if ((neutrinoMetrics == neutrinoMetrics))
4749 then {
4850 let BR = asInt(neutrinoMetrics[8])
49- if (true)
50- then throw(toString(BR))
51- else if ((BR > 100300))
52- then {
53- let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, amount)])
54- if ((call1 == call1))
55- then {
56- let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
57- let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [USDN_ASSET_ID, 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
58- if ((call2 == call2))
59- then {
60- let usdnTokenBalance = assetBalance(this, USDN_ASSET_ID)
61- let call3 = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", [this], nil))
62- if ((call3 == call3))
63- then {
64- let neutrino_data_arr = split(call3, "__")
65- let alreadySwappedUnderLimit = asInt(neutrino_data_arr[11])
66- let maxAvailableToSwapNow = asInt(neutrino_data_arr[10])
67- if ((alreadySwappedUnderLimit != 0))
68- then throw("Can't swap yet")
69- else {
70- let amounOfUsdnToSwap = if ((usdnTokenBalance > maxAvailableToSwapNow))
71- then maxAvailableToSwapNow
72- else usdnTokenBalance
73- let swapUsdnToWaves_SC = invoke(Address(base58'3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj'), "swapNeutrinoToWaves", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
74- if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
75- then nil
76- else throw("Strict value is not equal to itself.")
77- }
78- }
79- else throw("Strict value is not equal to itself.")
80- }
81- else throw("Strict value is not equal to itself.")
82- }
83- else throw("Strict value is not equal to itself.")
84- }
85- else throw("Br under 10")
51+ if ((BR > 100300))
52+ then {
53+ let call = asStr(invoke(NEUTRINO_REST_READONLY_DAPP, "swapInfoREADONLY", [this], nil))
54+ if ((call == call))
55+ then {
56+ let neutrino_data_arr = split(call, "__")
57+ let alreadySwappedUnderLimit = asInt(neutrino_data_arr[11])
58+ let maxAvailableToSwapNow = asInt(neutrino_data_arr[10])
59+ if ((alreadySwappedUnderLimit != 0))
60+ then throw("Can't swap yet")
61+ else {
62+ let amounOfUsdnToSwap = if ((amount > maxAvailableToSwapNow))
63+ then maxAvailableToSwapNow
64+ else amount
65+ let swapUsdnToWaves_SC = invoke(Address(base58'3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj'), "swapNeutrinoToWaves", nil, [AttachedPayment(USDN_ASSET_ID, amounOfUsdnToSwap)])
66+ if ((swapUsdnToWaves_SC == swapUsdnToWaves_SC))
67+ then nil
68+ else throw("Strict value is not equal to itself.")
69+ }
70+ }
71+ else throw("Strict value is not equal to itself.")
72+ }
73+ else throw("Br under 10")
8674 }
8775 else throw("Strict value is not equal to itself.")
8876 }
8977
9078
9179
9280 @Callable(i)
93-func usdnToWaves () = if ((i.caller != this))
81+func wavesToUdn () = if ((i.caller != this))
9482 then throw("Not allowed")
95- else if (if (!(isDefined(i.payments[0].assetId)))
96- then (i.payments[0].assetId != USDN_ASSET_ID)
97- else false)
98- then throw("USDN Only")
83+ else if (isDefined(i.payments[0].assetId))
84+ then throw("WAVES Only")
9985 else {
10086 let amount = i.payments[0].amount
101- let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [USDN_ASSET_ID, false], [AttachedPayment(unit, amount)])
87+ let call1 = invoke(WX_POOL_WAVES_USDN_DAPP, "putOneTkn", [1, false], [AttachedPayment(unit, amount)])
10288 if ((call1 == call1))
10389 then {
10490 let lpTokenBalance = assetBalance(this, WX_LP_WAVES_USDN_ASSET_ID)
105- let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", ["WAVES", 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
91+ let call2 = invoke(WX_POOL_WAVES_USDN_DAPP, "getOneTkn", [USDN_ASSET_ID, 1], [AttachedPayment(WX_LP_WAVES_USDN_ASSET_ID, lpTokenBalance)])
10692 if ((call2 == call2))
10793 then nil
10894 else throw("Strict value is not equal to itself.")
10995 }
11096 else throw("Strict value is not equal to itself.")
11197 }
11298
11399
114100 @Verifier(tx)
115101 func verify () = sigVerify_128Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
116102

github/deemru/w8io/3ef1775 
33.43 ms