📜 [專欄新文章] Uniswap v3 Features Explained in Depth
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Once again the game-changing DEX 🦄 👑
Image source: https://uniswap.org/blog/uniswap-v3/
Outline
0. Intro1. Uniswap & AMM recap2. Ticks 3. Concentrated liquidity4. Range orders: reversible limit orders5. Impacts of v36. Conclusion
0. Intro
The announcement of Uniswap v3 is no doubt one of the most exciting news in the DeFi place recently 🔥🔥🔥
While most have talked about the impact v3 can potentially bring on the market, seldom explain the delicate implementation techniques to realize all those amazing features, such as concentrated liquidity, limit-order-like range orders, etc.
Since I’ve covered Uniswap v1 & v2 (if you happen to know Mandarin, here are v1 & v2), there’s no reason for me to not cover v3 as well ✅
Thus, this article aims to guide readers through Uniswap v3, based on their official whitepaper and examples made on the announcement page. However, one needs not to be an engineer, as not many codes are involved, nor a math major, as the math involved is definitely taught in your high school, to fully understand the following content 😊😊😊
If you really make it through but still don’t get shxt, feedbacks are welcomed! 🙏
There should be another article focusing on the codebase, so stay tuned and let’s get started with some background noise!
1. Uniswap & AMM recap
Before diving in, we have to first recap the uniqueness of Uniswap and compare it to traditional order book exchanges.
Uniswap v1 & v2 are a kind of AMMs (automated market marker) that follow the constant product equation x * y = k, with x & y stand for the amount of two tokens X and Y in a pool and k as a constant.
Comparing to order book exchanges, AMMs, such as the previous versions of Uniswap, offer quite a distinct user experience:
AMMs have pricing functions that offer the price for the two tokens, which make their users always price takers, while users of order book exchanges can be both makers or takers.
Uniswap as well as most AMMs have infinite liquidity¹, while order book exchanges don’t. The liquidity of Uniswap v1 & v2 is provided throughout the price range [0,∞]².
Uniswap as well as most AMMs have price slippage³ and it’s due to the pricing function, while there isn’t always price slippage on order book exchanges as long as an order is fulfilled within one tick.
In an order book, each price (whether in green or red) is a tick. Image source: https://ftx.com/trade/BTC-PERP
¹ though the price gets worse over time; AMM of constant sum such as mStable does not have infinite liquidity
² the range is in fact [-∞,∞], while a price in most cases won’t be negative
³ AMM of constant sum does not have price slippage
2. Tick
The whole innovation of Uniswap v3 starts from ticks.
For those unfamiliar with what is a tick:
Source: https://www.investopedia.com/terms/t/tick.asp
By slicing the price range [0,∞] into numerous granular ticks, trading on v3 is highly similar to trading on order book exchanges, with only three differences:
The price range of each tick is predefined by the system instead of being proposed by users.
Trades that happen within a tick still follows the pricing function of the AMM, while the equation has to be updated once the price crosses the tick.
Orders can be executed with any price within the price range, instead of being fulfilled at the same one price on order book exchanges.
With the tick design, Uniswap v3 possesses most of the merits of both AMM and an order book exchange! 💯💯💯
So, how is the price range of a tick decided?
This question is actually somewhat related to the tick explanation above: the minimum tick size for stocks trading above 1$ is one cent.
The underlying meaning of a tick size traditionally being one cent is that one cent (1% of 1$) is the basis point of price changes between ticks, ex: 1.02 — 1.01 = 0.1.
Uniswap v3 employs a similar idea: compared to the previous/next price, the price change should always be 0.01% = 1 basis point.
However, notice the difference is that in the traditional basis point, the price change is defined with subtraction, while here in Uniswap it’s division.
This is how price ranges of ticks are decided⁴:
Image source: https://uniswap.org/whitepaper-v3.pdf
With the above equation, the tick/price range can be recorded in the index form [i, i+1], instead of some crazy numbers such as 1.0001¹⁰⁰ = 1.0100496621.
As each price is the multiplication of 1.0001 of the previous price, the price change is always 1.0001 — 1 = 0.0001 = 0.01%.
For example, when i=1, p(1) = 1.0001; when i=2, p(2) = 1.00020001.
p(2) / p(1) = 1.00020001 / 1.0001 = 1.0001
See the connection between the traditional basis point 1 cent (=1% of 1$) and Uniswap v3’s basis point 0.01%?
Image source: https://tenor.com/view/coin-master-cool-gif-19748052
But sir, are prices really granular enough? There are many shitcoins with prices less than 0.000001$. Will such prices be covered as well?
Price range: max & min
To know if an extremely small price is covered or not, we have to figure out the max & min price range of v3 by looking into the spec: there is a int24 tick state variable in UniswapV3Pool.sol.
Image source: https://uniswap.org/whitepaper-v3.pdf
The reason for a signed integer int instead of an uint is that negative power represents prices less than 1 but greater than 0.
24 bits can cover the range between 1.0001 ^ (2²³ — 1) and 1.0001 ^ -(2)²³. Even Google cannot calculate such numbers, so allow me to offer smaller values to have a rough idea of the whole price range:
1.0001 ^ (2¹⁸) = 242,214,459,604.341
1.0001 ^ -(2¹⁷) = 0.000002031888943
I think it’s safe to say that with a int24 the range can cover > 99.99% of the prices of all assets in the universe 👌
⁴ For implementation concern, however, a square root is added to both sides of the equation.
How about finding out which tick does a price belong to?
Tick index from price
The answer to this question is rather easy, as we know that p(i) = 1.0001^i, simply takes a log with base 1.0001 on both sides of the equation⁴:
Image source: https://www.codecogs.com/latex/eqneditor.php
Let’s try this out, say we wanna find out the tick index of 1000000.
Image source: https://ncalculators.com/number-conversion/log-logarithm-calculator.htm
Now, 1.0001¹³⁸¹⁶² = 999,998.678087146. Voila!
⁵ This formula is also slightly modified to fit the real implementation usage.
3. Concentrated liquidity
Now that we know how ticks and price ranges are decided, let’s talk about how orders are executed in a tick, what is concentrated liquidity and how it enables v3 to compete with stablecoin-specialized DEXs (decentralized exchange), such as Curve, by improving the capital efficiency.
Concentrated liquidity means LPs (liquidity providers) can provide liquidity to any price range/tick at their wish, which causes the liquidity to be imbalanced in ticks.
As each tick has a different liquidity depth, the corresponding pricing function x * y = k also won’t be the same!
Each tick has its own liquidity depth. Image source: https://uniswap.org/blog/uniswap-v3/
Mmm… examples are always helpful for abstract descriptions 😂
Say the original pricing function is 100(x) * 1000(y) = 100000(k), with the price of X token 1000 / 100 = 10 and we’re now in the price range [9.08, 11.08].
If the liquidity of the price range [11.08, 13.08] is the same as [9.08, 11.08], we don’t have to modify the pricing function if the price goes from 10 to 11.08, which is the boundary between two ticks.
The price of X is 1052.63 / 95 = 11.08 when the equation is 1052.63 * 95 = 100000.
However, if the liquidity of the price range [11.08, 13.08] is two times that of the current range [9.08, 11.08], balances of x and y should be doubled, which makes the equation become 2105.26 * 220 = 400000, which is (1052.63 * 2) * (110 * 2) = (100000 * 2 * 2).
We can observe the following two points from the above example:
Trades always follow the pricing function x * y = k, while once the price crosses the current price range/tick, the liquidity/equation has to be updated.
√(x * y) = √k = L is how we represent the liquidity, as I say the liquidity of x * y = 400000 is two times the liquidity of x * y = 100000, as √(400000 / 100000) = 2.
What’s more, compared to liquidity on v1 & v2 is always spread across [0,∞], liquidity on v3 can be concentrated within certain price ranges and thus results in higher capital efficiency from traders’ swapping fees!
Let’s say if I provide liquidity in the range [1200, 2800], the capital efficiency will then be 4.24x higher than v2 with the range [0,∞] 😮😮😮 There’s a capital efficiency comparison calculator, make sure to try it out!
Image source: https://uniswap.org/blog/uniswap-v3/
It’s worth noticing that the concept of concentrated liquidity was proposed and already implemented by Kyper, prior to Uniswap, which is called Automated Price Reserve in their case.⁵
⁶ Thanks to Yenwen Feng for the information.
4. Range orders: reversible limit orders
As explained in the above section, LPs of v3 can provide liquidity to any price range/tick at their wish. Depending on the current price and the targeted price range, there are three scenarios:
current price < the targeted price range
current price > the targeted price range
current price belongs to the targeted price range
The first two scenarios are called range orders. They have unique characteristics and are essentially fee-earning reversible limit orders, which will be explained later.
The last case is the exact same liquidity providing mechanism as the previous versions: LPs provide liquidity in both tokens of the same value (= amount * price).
There’s also an identical product to the case: grid trading, a very powerful investment tool for a time of consolidation. Dunno what’s grid trading? Check out Binance’s explanation on this, as this topic won’t be covered!
In fact, LPs of Uniswap v1 & v2 are grid trading with a range of [0,∞] and the entry price as the baseline.
Range orders
To understand range orders, we’d have to first revisit how price is discovered on Uniswap with the equation x * y = k, for x & y stand for the amount of two tokens X and Y and k as a constant.
The price of X compared to Y is y / x, which means how many Y one can get for 1 unit of X, and vice versa the price of Y compared to X is x / y.
For the price of X to go up, y has to increase and x decrease.
With this pricing mechanism in mind, it’s example time!
Say an LP plans to place liquidity in the price range [15.625, 17.313], higher than the current price of X 10, when 100(x) * 1000(y) = 100000(k).
The price of X is 1250 / 80 = 15.625 when the equation is 80 * 1250 = 100000.
The price of X is 1315.789 / 76 = 17.313 when the equation is 76 * 1315.789 = 100000.
If now the price of X reaches 15.625, the only way for the price of X to go even higher is to further increase y and decrease x, which means exchanging a certain amount of X for Y.
Thus, to provide liquidity in the range [15.625, 17.313], an LP needs only to prepare 80 — 76 = 4 of X. If the price exceeds 17.313, all 4 X of the LP is swapped into 1315.789 — 1250 = 65.798 Y, and then the LP has nothing more to do with the pool, as his/her liquidity is drained.
What if the price stays in the range? It’s exactly what LPs would love to see, as they can earn swapping fees for all transactions in the range! Also, the balance of X will swing between [76, 80] and the balance of Y between [1250, 1315.789].
This might not be obvious, but the example above shows an interesting insight: if the liquidity of one token is provided, only when the token becomes more valuable will it be exchanged for the less valuable one.
…wut? 🤔
Remember that if 4 X is provided within [15.625, 17.313], only when the price of X goes up from 15.625 to 17.313 is 4 X gradually swapped into Y, the less valuable one!
What if the price of X drops back immediately after reaching 17.313? As X becomes less valuable, others are going to exchange Y for X.
The below image illustrates the scenario of DAI/USDC pair with a price range of [1.001, 1.002] well: the pool is always composed entirely of one token on both sides of the tick, while in the middle 1.001499⁶ is of both tokens.
Image source: https://uniswap.org/blog/uniswap-v3/
Similarly, to provide liquidity in a price range < current price, an LP has to prepare a certain amount of Y for others to exchange Y for X within the range.
To wrap up such an interesting feature, we know that:
Only one token is required for range orders.
Only when the current price is within the range of the range order can LP earn trading fees. This is the main reason why most people believe LPs of v3 have to monitor the price more actively to maximize their income, which also means that LPs of v3 have become arbitrageurs 🤯
I will be discussing more the impacts of v3 in 5. Impacts of v3.
⁷ 1.001499988 = √(1.0001 * 1.0002) is the geometric mean of 1.0001 and 1.0002. The implication is that the geometric mean of two prices is the average execution price within the range of the two prices.
Reversible limit orders
As the example in the last section demonstrates, if there is 4 X in range [15.625, 17.313], the 4 X will be completely converted into 65.798 Y when the price goes over 17.313.
We all know that a price can stay in a wide range such as [10, 11] for quite some time, while it’s unlikely so in a narrow range such as [15.625, 15.626].
Thus, if an LP provides liquidity in [15.625, 15.626], we can expect that once the price of X goes over 15.625 and immediately also 15.626, and does not drop back, all X are then forever converted into Y.
The concept of having a targeted price and the order will be executed after the price is crossed is exactly the concept of limit orders! The only difference is that if the range of a range order is not narrow enough, it’s highly possible that the conversion of tokens will be reverted once the price falls back to the range.
As price ranges follow the equation p(i) = 1.0001 ^ i, the range can be quite narrow and a range order can thus effectively serve as a limit order:
When i = 27490, 1.0001²⁷⁴⁹⁰ = 15.6248.⁸
When i = 27491, 1.0001²⁷⁴⁹¹ = 15.6264.⁸
A range of 0.0016 is not THAT narrow but can certainly satisfy most limit order use cases!
⁸ As mentioned previously in note #4, there is a square root in the equation of the price and index, thus the numbers here are for explantion only.
5. Impacts of v3
Higher capital efficiency, LPs become arbitrageurs… as v3 has made tons of radical changes, I’d like to summarize my personal takes of the impacts of v3:
Higher capital efficiency makes one of the most frequently considered indices in DeFi: TVL, total value locked, becomes less meaningful, as 1$ on Uniswap v3 might have the same effect as 100$ or even 2000$ on v2.
The ease of spot exchanging between spot exchanges used to be a huge advantage of spot markets over derivative markets. As LPs will take up the role of arbitrageurs and arbitraging is more likely to happen on v3 itself other than between DEXs, this gap is narrowed … to what extent? No idea though.
LP strategies and the aggregation of NFT of Uniswap v3 liquidity token are becoming the blue ocean for new DeFi startups: see Visor and Lixir. In fact, this might be the turning point for both DeFi and NFT: the two main reasons of blockchain going mainstream now come to the alignment of interest: solving the $$ problem 😏😏😏
In the right venue, which means a place where transaction fees are low enough, such as Optimism, we might see Algo trading firms coming in to share the market of designing LP strategies on Uniswap v3, as I believe Algo trading is way stronger than on-chain strategies or DAO voting to add liquidity that sort of thing.
After reading this article by Parsec.finance: The Dex to Rule Them All, I cannot help but wonder: maybe there is going to be centralized crypto exchanges adopting v3’s approach. The reason is that since orders of LPs in the same tick are executed pro-rata, the endless front-running speeding-competition issue in the Algo trading world, to some degree, is… solved? 🤔
Anyway, personal opinions can be biased and seriously wrong 🙈 I’m merely throwing out a sprat to catch a whale. Having a different voice? Leave your comment down below!
6. Conclusion
That was kinda tough, isn’t it? Glad you make it through here 🥂🥂🥂
There are actually many more details and also a huge section of Oracle yet to be covered. However, since this article is more about features and targeting normal DeFi users, I’ll leave those to the next one; hope there is one 😅
If you have any doubt or find any mistake, please feel free to reach out to me and I’d try to reply AFAP!
Stay tuned and in the meantime let’s wait and see how Uniswap v3 is again pioneering the innovation of DeFi 🌟
Uniswap v3 Features Explained in Depth was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有1部Youtube影片,追蹤數超過9萬的網紅Smart Travel,也在其Youtube影片中提到,上次有首爾鷺梁津食海鮮經驗麻麻地,今次到釜山,沒有帶什麼期望,竟然有驚喜。 點樣選擇一間有信譽的海鮮餐廳,今次有計! 札嗄其這個地鐵站,相當精彩,有電影街、食街、海味手信、當地個性小店自家品牌、時裝、手袋、化粧品..應有盡有,最緊要係,小店比大品牌有人情味,可以討價還價。 今次展視去魚市場食午...
「whale meaning」的推薦目錄:
- 關於whale meaning 在 Taipei Ethereum Meetup Facebook 的精選貼文
- 關於whale meaning 在 李怡 Facebook 的最佳貼文
- 關於whale meaning 在 與芬尼學英語 Finnie's Language Arts Facebook 的精選貼文
- 關於whale meaning 在 Smart Travel Youtube 的精選貼文
- 關於whale meaning 在 Whale Meaning - YouTube 的評價
- 關於whale meaning 在 Using "whale" as a verb - English Stack Exchange 的評價
whale meaning 在 李怡 Facebook 的最佳貼文
Primaries and Disqualifications (Lee Yee)
Elsie Leung said, not disclosing all of the provisions of the National Security Law (NSL) is to prevent invoking clashes in society, and that the Standing Committee of the National People’s Congress (NPCSC) has already conducted sufficient consultations with different sectors.
Without disclosing the provisions of the NSL, what was used to consult these different sectors? This point alone discloses how absolutely absurd the so-called “sufficient consultations”, “different sectors”, and frankly, her entire statement are.
There have been commotions in the online community around the suggestion of achieving international sanctions through large-scale disqualifications, focusing mainly on the contradictions between the pro-democracy camp’s primaries and a large number of candidates. Primaries mean an aggregation of votes, to avoid an overextended list of candidates who would be dividing up the votes and possibly leading to the reduction of the number of elected seats. Most of the pro-democracy camp, including young candidates, are supportive of having primaries. The primary selection mechanism stipulates that only the winners are able stand for election. Some suggested that even the losers from the primaries should go ahead and stand for election, and were criticized for violating the principles of primaries.
These principles, however, were drafted before the NSL. It was when the legal profession and some Democrats still believed there was room for negotiation, when the retired former Chief Justice Honorable Andrew Li Kwok-nang proposed to protect the implementation details within Hong Kong under the premise of accepting the NSL. Some Democrats also suggested to bring back Article 23 in place of the implementation of the NSL by NPC, or to adopt the sunset clause. If the Chinese Communist Party (CCP) is willing to bargain, the red line for disqualifications of candidates could be drawn at the absolute “anti-NSL”, while turning a blind eye towards the Democrats who are willing to negotiate, such that LegCo would continue to have “decorative” Democrats.
The CCP categorically rejected all bargaining, and Andrew Li accused the Hong Kong NSL as completely undermining the independent judicial power guaranteed by the Basic Law. Martin Lee stated that “the Hong Kong NSL must be resisted fully”, and “people whose attention is being diverted to the devil in the details have already fallen into the trap devised by the CCP”. Moderates who wish to main the current system, to avoid “scorching-earth”, are already at a dead end.
The complete societal rift induced by the NSL is simple: on one side, you have people who blindly support an NSL without any disclosed provisions, including the pro-Beijing camp and the voluntarily “visually-impaired”; on the other side, you have citizens who support democracy. According to a poll conducted by the Hong Kong Institute of Public Opinion at the end of last month, 96% of the “supporters of the pro-democracy camp” opposed the NSL, and only 1% supported the law; Among those who are “non supporters of the pro-democracy camp”, 62% expressed support towards having the NSL implemented by the NPC, but those who opposed still amounted to 29%.
This was a poll done a month ago. With those who were willing to negotiate being rejected at this point, the societal rift should be more apparent. The situation is clear: any participant of the pro-democracy camp’s primaries, given that they have not been too vocal about opposing the NSL, even if they do win the primaries, have are able to join the election without being disqualified, they could still end up not winning the election. If citizens are to woefully cast their votes for candidates who do not oppose the NSL, looking at the poll, there’s only a 1% chance among the “supporters of the pro-democracy camp”.
Another situation that is clear: those who have openly and clearly opposed the NSL and somehow escape the fate of disqualification of candidacy is almost impossible. Even if there were, the voters would be doubtful of the candidates’ true stance, leading to a slim chance of getting elected.
As such, for the pro-democracy candidates, it is almost impossible to either oppose the NSL or to be disqualified for opposing. This, is precisely why the original intent of an aggregation of votes through the mechanism of primaries is likely to fail.
Disregard the results of the primaries. Flood the election with a loud and clear message of anti-NSL from a whale of candidates. This is the only way out. Having all or the majority being disqualified would be an obvious deprivation of Hongkongers’ right to vote, a guaranteed way to get international attention.
How much of a shockwave will international sanctions send to the CCP? An opinion piece published in Taiwan suggested that a senior Chinese official who may be sanctioned by the US because of the Hong Kong NSL has hidden assets in the US that are worth as much as US$3.1 billion. In 2013, Snowden, a former CIA employee who is now in Russia, announced that Chinese officials’ foreign deposits amounted to US$4.8 trillion. In normal circumstances, cash holdings account for only one-third of total assets, meaning that the total assets should amount to tens of trillions of US dollars (Hong Kong’s foreign exchange reserves are only about US$440 billion). And these were figures from 7 years ago.
International sanctions are, inevitably, internationally “earth-scorching”, where the side carrying out the sanctions will also suffer immensely. Freezing the assets of sanctioned officials in foreign countries will not help the sanctioning parties at all. Senior Chinese officials could care less about the Basic Law and Hong Kong’s human rights, but to laugh off one’s own properties? This is Hong Kong’s “earth-scorching” bargaining chip.
whale meaning 在 與芬尼學英語 Finnie's Language Arts Facebook 的精選貼文
[#字正腔圓] Sail 中間的 diphthong (雙元音) 加上後面的 /l/,是考起不少人的讀音。類似的字有:
sale
fail
veil
whale
大家想一起練練的話,之後也可以拍片講講啊 ;)
[#含英咀華] 英國係航海大國,英文裡面又點少得關於航海嘅idioms(習語)呢!
大家或者知道plain好多時候解平平無奇、平凡。咁plain sailing解咩?
.
.
.
.
.
咪就係非常順利同簡單嘅旅程嘅意思咯!
例句:
The pathway to success, even for geniuses, is by no means plain sailing.
大致就同中文成語「一帆風順」差唔多意思啦!
//'Plain sailing', along with the variants 'smooth sailing' and 'clear sailing', which are more common in the USA than elsewhere, is a nautical phrase that has the literal meaning of 'sailing that is easy and uncomplicated'. All of these variants of the expression are now used figuratively to describe any straightforward and trouble-free activity. There might seem to be be little more to say about 'plain sailing', if it weren't for the existence of the phrase 'plane sailing'.//
延伸閱讀:http://bit.ly/2usayPd
whale meaning 在 Smart Travel Youtube 的精選貼文
上次有首爾鷺梁津食海鮮經驗麻麻地,今次到釜山,沒有帶什麼期望,竟然有驚喜。
點樣選擇一間有信譽的海鮮餐廳,今次有計!
札嗄其這個地鐵站,相當精彩,有電影街、食街、海味手信、當地個性小店自家品牌、時裝、手袋、化粧品..應有盡有,最緊要係,小店比大品牌有人情味,可以討價還價。
今次展視去魚市場食午餐的良好經驗,只有白痴才會說我買廣告,咁地道一間小菜館,那有咁多錢去買廣告,4百幾蚊食一餐海鮮咁平,我俾得起,咁容易收買我把咀嗎?不要小人之心。
我跟好多旅客一樣,想找一些抵食好味的餐廳食下,自己好似像賺左一樣,這種運氣,和大家分享一下,香港人出外旅遊散心減壓,大家自己人,也希望你玩得開心之餘,洗錢覺得係值得既,如覺得資料有用,幫我分享一下,如覺得資料有所不足,歡迎指教。
請用片右下角調HD1080高清睇片。
https://www.youtube.com/watch?v=xXDHaCsqsCA
Jagalchi Market, located on the shoreside road in Busan's Jung-gu, is Korea's largest seafood market, selling both live and dried fish. After the Korean War the market solidified itself as a fish market. Most of the people who sell fish are women, so the vendors here are called Jagalchi Ajumma, "ajumma" meaning middle-aged or married woman in Korean.
This market represents Busan and is famous throughout the country. If you visit you can eat fresh raw fish right at the market. Even these days you can see women selling mackerel, sea squirts (ascidians) and whale meat on wooden boxes along the road outside of the market and along the shore.
Every year in October the Jagalchi Cultural Tourism Festival is held, and it is easy to visit because of the convenient transportation provided by subway. Jagalchi Market is where you can see the lifestyle of the Busan locals.
Operating Hours
05:00-22:00 (Hoe Center opens from 09:00)
前回はソウルのノリャンジンで海鮮料理を食べたことがありますが、今回は釜山に何の期待もなく来たので嬉しかったです。
評判のシーフードレストランを注文して、今度は計画を立てましょう!
Zhachiの地下鉄駅はとてもエキサイティングです。映画通り、フードストリート、シーフードのお土産、地元の個人ショップブランド、ファッション、ハンドバッグ、化粧品など、すべてが手に入ります。最も重要なことは、ショップが大きなブランドよりも個人的なものであり、掘り出し物。
今回の展示は昼食に魚市場に行った良い経験を振り返ります。馬鹿だけが広告を買うと言うでしょう。トンネルには小さなレストランがあります。広告を買うお金がたくさんあります。400匹の蚊がシーフードを食べます。あなたがそれを買う余裕があるなら、私を買うのは簡単ですか?悪者にならないでください。
多くの旅行者と同じように、美味しいレストランを見つけたいです。私はお金を稼いでいるような気がします。このような幸運です。香港の人々が海外でリラックスしてリラックスできることを皆さんと共有します。みなさんも、幸せなだけでなく、マネーロンダリングは両方の価値があります。情報が役に立ったら、私と共有してください。情報が不十分だと感じたら、アドバイスしてください。
フィルムの右下隅を使用してHD1080を調整してください。
https://www.youtube.com/watch?v=xXDHaCsqsCA
釜山中区の海岸沿いにあるチャガルチ市場は生鮮魚と干物を販売する韓国最大の水産物市場です。朝鮮戦争後、市場は魚市場として定着しました。魚を売る人のほとんどは女性で、そのため、ここのベンダーはJagalchi Ajummaと呼ばれ、「ajumma」は韓国語で中年または既婚の女性を意味します。
釜山を代表する市場で全国的に有名です。市場に行けば新鮮な刺身が食べられます。今でも外道沿いの木箱にサバやホヤ(ホヤ)やクジラの肉を売る女性がいます。市場と海岸沿い。
毎年10月にはチャガルチ文化観光フェスティバルが開催され、地下鉄の便利な交通手段があり、釜山の人々の暮らしを垣間見ることができるチャガルチ市場があります。
営業時間
05:00〜22:00(ホーセンターは09:00より営業)
whale meaning 在 Using "whale" as a verb - English Stack Exchange 的推薦與評價
Wiktionary lists them as alternate forms of each other. Merriam Webster's third definition of "whale" as a verb is:. ... <看更多>
whale meaning 在 Whale Meaning - YouTube 的推薦與評價
... <看更多>