diff --git a/package.json b/package.json index df3049c3c41..4ae5055ef53 100644 --- a/package.json +++ b/package.json @@ -150,5 +150,5 @@ "unist-util-visit": "^5.0.0", "xml2js": "^0.6.2" }, - "packageManager": "pnpm@10.11.1+sha512.e519b9f7639869dc8d5c3c5dfef73b3f091094b0a006d7317353c72b124e80e1afd429732e28705ad6bfa1ee879c1fce46c128ccebd3192101f43dd67c667912" + "packageManager": "pnpm@10.12.3+sha512.467df2c586056165580ad6dfb54ceaad94c5a30f80893ebdec5a44c5aa73c205ae4a5bb9d5ed6bb84ea7c249ece786642bbb49d06a307df218d03da41c317417" } diff --git a/public/content/community/events/organizing/index.md b/public/content/community/events/organizing/index.md index 942df53cff0..856af6c4218 100644 --- a/public/content/community/events/organizing/index.md +++ b/public/content/community/events/organizing/index.md @@ -4,87 +4,89 @@ description: How to organize an Ethereum event lang: en hideEditButton: true --- -# How to Organize an Ethereum event + +# How to Organize an Ethereum event {#how-to-organize-an-ethereum-event} Building a strong and vibrant community is at the heart of growing the Ethereum ecosystem. Whether you’re planning to organize meetups, workshops, or a full-scale conference, the success of your event depends on the connections and engagement within your local network. This guide will help you lay the groundwork for an active Ethereum community and take you step by step through the process of organizing a memorable and impactful conference. -## Ask yourself, is there an Ethereum community? +## Ask yourself, is there an Ethereum community? {#ask-yourself-is-there-an-ethereum-community} A successful Ethereum conference is built on an active and engaged community. If you already have one, you’re ahead of the game — but if you don’t, the essential pre-step is to build that foundation. It’s important to distinguish between a scene and a community: a scene might include companies and individuals present in a certain area, but they often operate independently with only occasional joint initiatives — like the traditional web2 ecosystem in many places. A community, on the other hand, is a network of interconnected people and organizations collaborating and supporting each other, which is often seen in web3 ecosystems. **Your first steps should be:** -* Explore local startups and companies — having strong, active companies in your city or country is often the most critical prerequisite for building a community. -* Check if there are already some meetups — ethereum.org [events page](https://ethereum.org/en/community/events/) -* [The ethereum.org website](https://ethereum.org/en/community/events/) and ethereum.org Discord — to check if there are local Ethereum events, developers, and contributors. -* Luma and Meetup.com — to see if there are Ethereum-related events or broader web3 events happening in your area. -* X — Try to find local advocates or influencers in the space. + +- Explore local startups and companies — having strong, active companies in your city or country is often the most critical prerequisite for building a community. +- Check if there are already some meetups — ethereum.org [events page](https://ethereum.org/en/community/events/) +- [The ethereum.org website](https://ethereum.org/en/community/events/) and ethereum.org Discord — to check if there are local Ethereum events, developers, and contributors. +- Luma and Meetup.com — to see if there are Ethereum-related events or broader web3 events happening in your area. +- X — Try to find local advocates or influencers in the space. If you find most of these elements, it’s a strong sign that the conditions to build a community exist — but not necessarily that a community is already in place. The next step is the crucial work of organizing, engaging, and nurturing these actors, creating opportunities for collaboration and long-term growth. -### **If not, how to build it** +### If not, how to build it {#if-not-how-to-build-it} If you realize that many of these elements are missing, don’t worry — building a community from the ground up is a challenging but deeply rewarding process. A strong Ethereum community doesn’t appear overnight; it requires patience, consistency, and a clear vision. Here’s how you can start: -* **Set up a communication channel** — this could be Telegram, Signal, WhatsApp, WeChat, or a Discord server, whatever is more popular where you’re at, so people can connect, ask questions, and share resources. -* **Find your early adopters.** Identify a few people who are passionate about Ethereum and Web3. They will become your core supporters and collaborators. -* **Host small, consistent events.** Start with informal meetups, study groups, or workshops. Consistency is key — even if the group is small at first, regular events build trust and momentum. -* **Try reaching out to local companies**, educational institutions, or coworking spaces to provide you with space free of charge. If you can not find speakers from your country, invite online speakers but gather people physically. It’s crucial to keep your audience physically present in one place. -* **Collaborate with existing tech communities.** If there are developer groups, startup ecosystems, or blockchain meetups already established, partner with them to introduce Ethereum topics and expand your reach. -* **Share educational content** about Ethereum’s potential. -* **Reach out to global communities.** Connect with established Ethereum groups and projects worldwide for support, mentorship, and potential collaboration. Ethereum communities across the globe have at least one thing in common: They are all eager to help. -* **Try and secure funding** — whether from local web3 companies or through some grants program such as [ESP](https://esp.ethereum.foundation/). +- **Set up a communication channel** — this could be Telegram, Signal, WhatsApp, WeChat, or a Discord server, whatever is more popular where you’re at, so people can connect, ask questions, and share resources. +- **Find your early adopters.** Identify a few people who are passionate about Ethereum and Web3. They will become your core supporters and collaborators. +- **Host small, consistent events.** Start with informal meetups, study groups, or workshops. Consistency is key — even if the group is small at first, regular events build trust and momentum. +- **Try reaching out to local companies**, educational institutions, or coworking spaces to provide you with space free of charge. If you can not find speakers from your country, invite online speakers but gather people physically. It’s crucial to keep your audience physically present in one place. +- **Collaborate with existing tech communities.** If there are developer groups, startup ecosystems, or blockchain meetups already established, partner with them to introduce Ethereum topics and expand your reach. +- **Share educational content** about Ethereum’s potential. +- **Reach out to global communities.** Connect with established Ethereum groups and projects worldwide for support, mentorship, and potential collaboration. Ethereum communities across the globe have at least one thing in common: They are all eager to help. +- **Try and secure funding** — whether from local web3 companies or through some grants program such as [ESP](https://esp.ethereum.foundation/). -### **If yes, how to maintain and grow it** +### If yes, how to maintain and grow it {#if-yes-how-to-maintain-and-grow-it} Once you have an established community, the work doesn’t stop — in fact, it’s just beginning. Keeping a community active, engaged, and growing requires ongoing effort and creativity. One of the key elements for keeping the community involved is that you should constantly experiment with new formats and ideas. Here are some strategies for maintaining a vibrant Ethereum community: -* **Diversify your event formats:** Don’t just stick to one type of gathering. Mix things up with meetups, short hackathons, panel discussions, and networking events. You can try organizing co-work days or educational courses. -* **Diversify topics:** Ethereum is not just a technology; it is also a set of values that involves legal, marketing, and business. -* **Ask your community** for feedback and ideas. -* **Engage with different audience** segments. Tailor content and events to different levels of experience — from beginners exploring Ethereum for the first time to seasoned developers and entrepreneurs. +- **Diversify your event formats:** Don’t just stick to one type of gathering. Mix things up with meetups, short hackathons, panel discussions, and networking events. You can try organizing co-work days or educational courses. +- **Diversify topics:** Ethereum is not just a technology; it is also a set of values that involves legal, marketing, and business. +- **Ask your community** for feedback and ideas. +- **Engage with different audience** segments. Tailor content and events to different levels of experience — from beginners exploring Ethereum for the first time to seasoned developers and entrepreneurs. By providing diverse opportunities for learning, collaboration, and growth, you ensure that your community remains active and ready for bigger initiatives like organizing a conference. -# Event +## Event {#event} -## When is the right time to organize an event? +### When is the right time to organize an event? {#when-is-the-right-time-to-organize-an-event} -Organizing a successful Ethereum conference or community event requires careful timing and consideration. The right moment depends on a variety of factors that contribute to the event's overall success. +Organizing a successful Ethereum conference or community event requires careful timing and consideration. The right moment depends on a variety of factors that contribute to the event's overall success. You should take into consideration community maturity, market conditions, whether you have a team, and whether there is a local scene (e.g. potential sponsors). -## KYC — Know your community +### KYC — Know your community {#kyc-know-your-community} One of the most crucial steps in organizing an event is understanding your community. Just like Know Your Customer (KYC) in financial services, Know Your Community (KYC) means taking the time to understand the specific needs, preferences, and characteristics of your local audience. This understanding will help you tailor the conference to ensure its success and relevance. -It’s tempting to aim for a large-scale event right away, but starting small is often the best approach. You will know what is the best solution for you if you objectively look into the state of your community and some other aspects that might seem irrelevant to you, such as: is your country a popular tourist destination or the cost of accommodation. +It’s tempting to aim for a large-scale event right away, but starting small is often the best approach. You will know what is the best solution for you if you objectively look into the state of your community and some other aspects that might seem irrelevant to you, such as: is your country a popular tourist destination or the cost of accommodation. -In the first year, the biggest part of your audience will be a local community, so everything you do for the first year organizing a bigger event should be catering to the needs and size of that community. +In the first year, the biggest part of your audience will be a local community, so everything you do for the first year organizing a bigger event should be catering to the needs and size of that community. -## Where to start +### Where to start {#where-to-start} -When it comes to organizing a conference, the first steps can feel overwhelming. But with a clear plan and structure, you can break down the process into manageable tasks. We will break down each of them. +When it comes to organizing a conference, the first steps can feel overwhelming. But with a clear plan and structure, you can break down the process into manageable tasks. We will break down each of them. Starting with a structured approach will help you stay organized and reduce stress as you move through the various stages of organizing your event. Each decision you make should bring you closer to delivering an experience that meets the needs of your community. **The first thing is to build an organizing team with clear roles and responsibilities.** -Another important step before starting to build a program or reaching out to sponsors is to choose a date. Although that sounds like an easy step, there are a few important factors that you should consider beforehand. Some of them are: +Another important step before starting to build a program or reaching out to sponsors is to choose a date. Although that sounds like an easy step, there are a few important factors that you should consider beforehand. Some of them are: -* **Avoid conflicting dates with major conferences** or events -* **Consider local conditions and circumstances** (such as season of the year, major holidays, etc.) -* **Take into consideration market conditions** -* **Give yourself enough time to organize everything** — at least nine months +- **Avoid conflicting dates with major conferences** or events +- **Consider local conditions and circumstances** (such as season of the year, major holidays, etc.) +- **Take into consideration market conditions** +- **Give yourself enough time to organize everything** — at least nine months -## How to assemble a team +### How to assemble a team {#how-to-assemble-a-team} Choose people who share your vision and complement your skills. Some teams work as collectives, while others have defined roles — find what works best for you. Regular communication and clear expectations are essential. Although it's tempting to rely on communication platforms for event planning, we suggest picking a task management platform (such as Notion, Basecamp, Trello, Asana, or even the good old Google Sheets) for organizing and tracking what needs to be done. It’s crucial to have a well-functioning and well–organized team. Different Ethereum organizer teams have different roles in their teams, but they all have in common people who are working on logistics, budgeting, marketing, program, design, and partnerships. -## The program: A key element of a successful event +### The program: A key element of a successful event {#the-program-a-key-element-of-a-successful-event} When it comes to organizing a truly valuable and memorable conference, **the program is everything**. This is not an area where you can afford to compromise. While sponsors are important and often crucial for financing the event, the audience’s experience and the value they receive must always take precedence. A program overloaded with promotional content and endless sponsor pitches will alienate your attendees and undermine the credibility of your event. @@ -92,25 +94,25 @@ Every session, panel, and workshop should inform, inspire, and engage the commun **When selecting speakers, open the call at least six months before the conference to attract high-quality submissions and allow enough time for agenda curation.** The person responsible for speaker selection should have significant experience in the industry and a deep understanding of the ecosystem. This ensures they can identify valuable, insightful contributions and maintain a high standard of content. -## Where to find financial support +### Where to find financial support {#where-to-find-financial-support} Organizing a high-quality conference comes with significant costs — venue rental, promotional materials, food and beverages, production, and countless other expenses. Securing financial support early on is essential to ensure your event meets professional standards and delivers a great experience for your attendees. -### How to create a sponsorship deck? +#### How to create a sponsorship deck? {#how-to-create-a-sponsorship-deck} -First, you are going to need a deck. **Ask other conference organizers for advice**, even to share their decks so you can create your packages based on that. You should be realistic when it comes to pricing the packages and aim to cover the costs, not to earn money, especially in the beginning. +First, you are going to need a deck. **Ask other conference organizers for advice**, even to share their decks so you can create your packages based on that. You should be realistic when it comes to pricing the packages and aim to cover the costs, not to earn money, especially in the beginning. **Every sponsorship deck should provide a clear and compelling overview of the event**, ensuring potential sponsors understand its scope, focus, and value. Start with the fundamentals—venue, date, and details about the organizing team—to establish credibility. Then, highlight the event’s primary focus, as different Ethereum conferences cater to different audiences. Some are heavily builder-oriented, featuring deep technical discussions, while others may focus more on DeFi, DAOs, or policy topics. Beyond just describing the event, set clear expectations. **Outline the anticipated number of attendees and any key speakers already confirmed**, as this helps sponsors gauge their potential reach. Most importantly, clearly define what they will receive in return for their sponsorship—booth space, speaking opportunities, social media promotion, branding visibility, or exclusive networking access. A well-structured deck not only informs but also excites potential sponsors about the opportunity to be part of your event. -### Who might support your event? +#### Who might support your event? {#who-might-support-your-event} -Start by reaching out to companies within the Ethereum and broader tech ecosystem in your city or country. These **organizations often have a vested interest in supporting local events** that foster community growth and innovation. They’re also more likely to recognize the value of investing in the local ecosystem and see your conference as an opportunity to connect with talent, partners, and users. +Start by reaching out to companies within the Ethereum and broader tech ecosystem in your city or country. These **organizations often have a vested interest in supporting local events** that foster community growth and innovation. They’re also more likely to recognize the value of investing in the local ecosystem and see your conference as an opportunity to connect with talent, partners, and users. Once you’ve tapped into local support, expand your outreach to global players in the web3 space. **Established protocols, DAOs, and ecosystem funds often allocate budgets for community-driven events**. This can be a bit challenging for first-time organizers, as they haven’t yet built a track record to showcase but try and craft a compelling sponsorship package that clearly outlines the benefits of supporting your event — brand visibility, speaking opportunities, and meaningful engagement with a targeted audience. Try to find your unique value that others may not have. -### Alternative forms of funding your event +#### Alternative forms of funding your event {#alternative-forms-of-funding-your-event} Grants are another potential funding source that many organizers overlook. Programs like the Ethereum Foundation’s [Ecosystem Support Program](https://esp.ethereum.foundation/) (ESP) and [other grant initiatives](https://ethereum.org/en/community/grants/#ethereum-grants) exist to support community-driven events. @@ -118,61 +120,61 @@ Beyond financial sponsorships, consider in-kind partnerships, especially for foo Since we’re talking about finances, remember this: every dollar you invest in creating an exceptional attendee experience will pay off exponentially. High-quality production, comfortable venues, thoughtful swag, and well-organized side events contribute to a memorable experience that participants will talk about long after the conference ends. Happy attendees become your biggest advocates and ensure your event’s long-term success. -## Logistics +### Logistics {#logistics} In parallel with securing funding your main focus should be logistics. A well-organized conference requires meticulous planning across multiple areas, from venue setup to attendee experience. Having someone with solid experience in event organization — not necessarily web3 events, but events in general — can make a huge difference. An experienced logistics lead can foresee potential issues and solve them before they become problems, saving time, money, and stress. -A person responsible for logistics should choose a venue, production company, and different vendors for food, beverages, and merch, as well as an easy-to-use online ticketing system that allows attendees to register and pay in crypto as well. +A person responsible for logistics should choose a venue, production company, and different vendors for food, beverages, and merch, as well as an easy-to-use online ticketing system that allows attendees to register and pay in crypto as well. -## Location infrastructure +### Location infrastructure {#location-infrastructure} When choosing a location for your conference, it’s important to think beyond the venue itself and consider the broader city and country infrastructure. Factors like weather, mobility, safety, and the political environment play a huge role in shaping the attendee experience. For less well-known locations, this becomes especially crucial. Attendees and sponsors from around the world need to feel confident that they can travel easily and safely. Look into aspects like airport connectivity, public transportation, and accommodation options. It’s also wise to consider the cultural and political climate of the region to avoid any complications that might deter international participants, such as visa policy. -## How to promote the event +### How to promote the event {#how-to-promote-the-event} Promoting your event effectively is key to attracting the right audience and building excitement. A well-thought-out promotion strategy ensures your conference gets the visibility and engagement it deserves. Design plays an important role in your brand as well, so you should definitely budget for that as well. -### Social media +#### Social media {#social-media} -X.com will be the backbone of your social media promotion. Try to be active and consistent with posting there, but also engage in different conversations, both with your personal account and with the account of your organization. +X.com will be the backbone of your social media promotion. Try to be active and consistent with posting there, but also engage in different conversations, both with your personal account and with the account of your organization. -Although LinkedIn doesn’t sound like a most obvious choice for promotion, you can reach out to a completely different audience there, or even some sponsors. +Although LinkedIn doesn’t sound like a most obvious choice for promotion, you can reach out to a completely different audience there, or even some sponsors. -### Partnerships with other Ethereum communities +#### Partnerships with other Ethereum communities {#partnerships-with-other-ethereum-communities} -Partnerships with different Ethereum organizers can help amplify your reach by tapping into existing networks, especially when you’re starting from scratch. Offer community discounts, cross-promote with other events, and invite partners to co-host side events or workshops. +Partnerships with different Ethereum organizers can help amplify your reach by tapping into existing networks, especially when you’re starting from scratch. Offer community discounts, cross-promote with other events, and invite partners to co-host side events or workshops. -### University outreach +#### University outreach {#university-outreach} Reach out to technical and economics faculties in town through student clubs or professors to promote the event. Engaging with universities can help attract young talent, researchers, and future industry professionals, fostering a stronger connection between academia and the Ethereum ecosystem. This is especially great if you're organizing a hackathon, as students often bring fresh ideas, enthusiasm, and a strong technical foundation. -### Media +#### Media {#media} Reach out to web3-focused media outlets and newsletters for event coverage. Although Web3 Media expects to be paid for their PR articles, you can offer them free tickets or interviews with some high-profile speakers and sponsors if you don’t have a budget for paid promotion. Create a PR package with a press release and some visuals ready for promotion on social media or a website in different formats. Also, broaden the scope to local journalists or even content creators (as long as they have a decent reputation) who can cover tech, as that can be crucial to showcasing the event to larger audiences. This helps bridge the gap between the crypto industry and the broader public, attracting interest from mainstream tech and business communities. -## Should you organize a hackathon as well? +### Should you organize a hackathon as well? {#should-you-organize-a-hackathon-as-well} Organizing a hackathon can be beneficial because hackathons can be a great way to engage the developer community and foster innovation. It also provides hands-on opportunities to collaborate and build projects, which could lead to tangible outcomes for the ecosystem. Hackathons attract developers who may not usually attend conferences but are keen on the challenge of building and testing new ideas. If your conference is aimed at developers, innovation, and hands-on projects, hosting a hackathon is a natural fit. -But, before organizing one, consider if you have enough resources and time. **A hackathon requires significant resources in terms of time, workforce, and financial investment**. Ensure that you have a dedicated team to handle it, especially if you're also managing a conference. Also, check if there is interest in your community. If your community is more builder-oriented, then it probably makes sense to organize it. +But, before organizing one, consider if you have enough resources and time. **A hackathon requires significant resources in terms of time, workforce, and financial investment**. Ensure that you have a dedicated team to handle it, especially if you're also managing a conference. Also, check if there is interest in your community. If your community is more builder-oriented, then it probably makes sense to organize it. Although there are a lot of benefits to organizing it, take in consideration that, depending on the scale of the conference, adding a hackathon might be overwhelming. You should evaluate whether managing both will dilute the quality of either. You may opt for a smaller, focused hackathon or stagger the events across different months. -## (Almost inevitable) Challenges that you will face +### (Almost inevitable) Challenges that you will face {#almost-inevitable-challenges-that-you-will-face} -One of the biggest challenges when organizing a conference, especially in the Ethereum space, is securing enough funding. **Many event organizers struggle to raise the capital needed to cover venue costs**, catering, and other logistical expenses. Sponsorship is often essential, but building relationships and convincing companies to invest in your event can take time. Moreover, the difficulty of attracting sponsors can increase during market downturns, as companies may be less willing to invest in non-core activities. +One of the biggest challenges when organizing a conference, especially in the Ethereum space, is securing enough funding. **Many event organizers struggle to raise the capital needed to cover venue costs**, catering, and other logistical expenses. Sponsorship is often essential, but building relationships and convincing companies to invest in your event can take time. Moreover, the difficulty of attracting sponsors can increase during market downturns, as companies may be less willing to invest in non-core activities. Managing the budget effectively is key. **Unforeseen expenses**, such as last-minute venue changes and additional event tech requirements, can quickly blow your budget. For new events, **getting high-quality speakers can be especially difficult**. Established thought leaders or influencers in the Ethereum space may already have full schedules and might be hesitant to commit to a new event without a proven track record. Be prepared to spend time networking and reaching out to potential speakers long before the event. -Also, when it comes to speakers, have clear and constant communication with them — set the deadline for sending presentations and avoid any last-minute changes. +Also, when it comes to speakers, have clear and constant communication with them — set the deadline for sending presentations and avoid any last-minute changes. -A successful conference requires a dedicated team that can handle logistics, marketing, sponsorships, technical support, and attendee management. Finding individuals with experience in organizing tech events can be challenging, especially if you're working with a small budget or, in most cases, with no budget, but on a volunteer basis. +A successful conference requires a dedicated team that can handle logistics, marketing, sponsorships, technical support, and attendee management. Finding individuals with experience in organizing tech events can be challenging, especially if you're working with a small budget or, in most cases, with no budget, but on a volunteer basis. -## You shouldn’t do it alone. You need volunteers. +### You shouldn’t do it alone. You need volunteers. {#you-shouldnt-do-it-alone-you-need-volunteers} Organizing an Ethereum event requires a diverse and dedicated team to handle the logistics, registrations, speaker coordination, attendee support, and much more. With team sizes ranging from just 3 to 15 people, it becomes clear that volunteers are essential for the smooth running of the event. @@ -180,43 +182,44 @@ Volunteers are often the backbone of many conferences, providing critical suppor While it's challenging to offer monetary compensation to volunteers, it's essential to provide them with something of value that will make their experience worthwhile. Consider offering them networking opportunities, skill development, some exclusive perks, certificates or letters of recommendation. -## Compliance essentials for event organizers +### Compliance essentials for event organizers {#compliance-essentials-for-event-organizers} When organizing an event, there are several essential legal and logistical considerations to keep in mind: -* **Sponsorship agreement** – Ensure you have a clear contract for sponsors, including a well-defined cancellation policy. -* **Code of conduct** – Prepare a Code of Conduct tailored to the specific event type (conference/hackathon, hacker houses etc). -* **Privacy policy** – Draft a privacy policy for your website to comply with data protection regulations and imae -* **Local authorities notification** – Even if your event is a closed gathering, it is advisable to report it to the local police station. -* **Ticketing agreement** – Establish a formal agreement with your ticketing service provider to clarify terms and responsibilities. -* **Regulatory compliance** – Check in advance if the country where you are hosting the conference has specific regulations or restrictions for the crypto industry -* **Customs clearance for merchandise** – If you are importing sponsor merchandise, it is recommended to hire a customs agent to handle the process efficiently. -* **Photography and media policy** – Clearly define guidelines on photography and media coverage, ensuring participants are informed about consent and opt-out options. +- **Sponsorship agreement** – Ensure you have a clear contract for sponsors, including a well-defined cancellation policy. +- **Code of conduct** – Prepare a Code of Conduct tailored to the specific event type (conference/hackathon, hacker houses etc). +- **Privacy policy** – Draft a privacy policy for your website to comply with data protection regulations and image +- **Local authorities notification** – Even if your event is a closed gathering, it is advisable to report it to the local police station. +- **Ticketing agreement** – Establish a formal agreement with your ticketing service provider to clarify terms and responsibilities. +- **Regulatory compliance** – Check in advance if the country where you are hosting the conference has specific regulations or restrictions for the crypto industry +- **Customs clearance for merchandise** – If you are importing sponsor merchandise, it is recommended to hire a customs agent to handle the process efficiently. +- **Photography and media policy** – Clearly define guidelines on photography and media coverage, ensuring participants are informed about consent and opt-out options. -# After the event: What’s next? +## After the event: What’s next? {#after-the-event-whats-next} -After the event concludes, it's crucial to gather feedback from attendees, speakers, and sponsors and create an internal report so you can be better prepared for future events. This helps identify what went well and where improvements can be made. Use surveys or one-on-one interviews to gather valuable insights that will guide future iterations. Take the time to review any mistakes or areas of inefficiency, as they can be avoided in the next conference, making the process smoother. +After the event concludes, it's crucial to gather feedback from attendees, speakers, and sponsors and create an internal report so you can be better prepared for future events. This helps identify what went well and where improvements can be made. Use surveys or one-on-one interviews to gather valuable insights that will guide future iterations. Take the time to review any mistakes or areas of inefficiency, as they can be avoided in the next conference, making the process smoother. The key is to keep the momentum alive. Continue engaging with your community, share updates about the progress you're making based on their feedback, and build excitement for the next event. By maintaining this connection, you ensure the conference's impact extends beyond the event itself, strengthening relationships and setting the stage for future success. -# Acknowledgement +## Acknowledgement {#acknowledgement} -A big thank you to everyone who contributed to this article by sharing their insights: Slavo Fabisik from ETHBratislava; Lola from ETH Kipu and ETH Latam; Tanja Mladenovic from ETH Belgrade, Juan David from Ethereum Bogota; Monika Zając from ETHWarsaw; Raffaele Orefice from NapulETH; Xiao Wu(Ling) from ETH Riyadh; Marco from urbe.eth; Caolán Walsh from ETH Dublin; Alex Males from ETHCluj; and Stanko Devic from ETH Slovenia. +A big thank you to everyone who contributed to this article by sharing their insights: Slavo Fabisik from ETHBratislava; Lola from ETH Kipu and ETH Latam; Tanja Mladenovic from ETH Belgrade, Juan David from Ethereum Bogota; Monika Zając from ETHWarsaw; Raffaele Orefice from NapulETH; Xiao Wu(Ling) from ETH Riyadh; Marco from urbe.eth; Caolán Walsh from ETH Dublin; Alex Males from ETHCluj; and Stanko Devic from ETH Slovenia. -# Resources +## Resources {#resources} Template: + - [Ethereum event checklist](https://cryptpad.fr/sheet/#/2/sheet/view/yhGnwo2bKxgA13SnkG9tS76+0+MtO0I6ZUFYEYP0J7w/) -Podcast: How to organise and promote an ETH event from A-Z: +Podcast: How to organize and promote an ETH event from A-Z: + - [The ETHWarsaw case study, by Out of Ordinary](https://www.youtube.com/watch?v=io2Dx1ouz8o) Twitter space: -- [ETH Community AMA](https://x.com/NapulETH/status/1905732699094151623) - -Articles: -- [Building ETHKL, by Danny H.](https://sekto.tech/ethkl24) -- [POKT Events Playbook](https://docs.pokt.network/community/pokt-events-playbook) +- [ETH Community AMA](https://x.com/NapulETH/status/1905732699094151623) +Articles: +- [Building ETHKL, by Danny H.](https://sekto.tech/ethkl24) +- [POKT Events Playbook](https://docs.pokt.network/community/pokt-events-playbook) diff --git a/public/content/translations/el/contributing/adding-layer-2s/index.md b/public/content/translations/el/contributing/adding-layer-2s/index.md index 25a242db61e..3420ba0191c 100644 --- a/public/content/translations/el/contributing/adding-layer-2s/index.md +++ b/public/content/translations/el/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Δεν θεωρούμε ότι ανήκουν στο επίπεδο 2 οι άλ Εάν θέλετε να προσθέσετε ένα επίπεδο 2 στο ethereum.org, δημιουργήστε ένα ζήτημα στο GitHub. - + Δημιουργήστε ένα ζήτημα diff --git a/public/content/translations/el/contributing/content-resources/index.md b/public/content/translations/el/contributing/content-resources/index.md index e120126620f..aba61586cc2 100644 --- a/public/content/translations/el/contributing/content-resources/index.md +++ b/public/content/translations/el/contributing/content-resources/index.md @@ -27,6 +27,6 @@ description: Τα κριτήριά μας για την καταχώριση τ Αν θέλετε να προσθέσετε έναν πόρο περιεχομένου στο ethereum.org και πληροί τα κριτήρια, δημιουργήστε ένα ζήτημα στο GitHub. - + Δημιουργήστε ένα ζήτημα diff --git a/public/content/translations/el/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/el/developers/docs/design-and-ux/dex-design-best-practice/index.md index cd2fb8ea542..e32c453800b 100644 --- a/public/content/translations/el/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/el/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -178,7 +178,7 @@ lang: el Τελικά, υπάρχουν πλεονεκτήματα και μειονεκτήματα και για τις δύο επιλογές, αλλά είναι ενδιαφέρον πώς η τάση φαίνεται να είναι προς το token στα δεξιά. -# Συμπεριφορά κουμπιών {#button-behavior} +## Συμπεριφορά κουμπιών {#button-behavior} Μην έχετε ξεχωριστό κουμπί για το Approve. Επίσης, μην έχετε ξεχωριστό κλικ για το Approve. Ο χρήστης θέλει να κάνει Swap, οπότε απλώς πείτε "swap" στο κουμπί και ξεκινήστε την έγκριση ως το πρώτο βήμα. Ένα modal μπορεί να δείξει την πρόοδο με ένα stepper, ή μια απλή ειδοποίηση "tx 1 από 2 - έγκριση". @@ -186,7 +186,7 @@ lang: el ![Ένα UI με ένα κουμπί που λέει έγκριση](./15.png) -## Κουμπί ως συμφραζόμενη βοήθεια {#button-as-contextual-help} +### Κουμπί ως συμφραζόμενη βοήθεια {#button-as-contextual-help} Το κουμπί μπορεί να κάνει διπλή λειτουργία ως ειδοποίηση! @@ -204,7 +204,7 @@ lang: el ![Μήνυμα σφάλματος που εμφανίζεται στο κύριο CTA](./17.png) -## Δημιουργήστε το δικό σας με αυτό το αρχείο figma {#build-your-own-with-this-figma-file} +### Δημιουργήστε το δικό σας με αυτό το αρχείο figma {#build-your-own-with-this-figma-file} Χάρη στη σκληρή δουλειά πολλών πρωτοκόλλων, ο σχεδιασμός DEX έχει βελτιωθεί πολύ. Γνωρίζουμε ποιες πληροφορίες χρειάζεται ο χρήστης, πώς πρέπει να τις εμφανίζουμε και πώς να κάνουμε τη ροή όσο το δυνατόν πιο ομαλή. Ας ελπίσουμε ότι αυτό το άρθρο παρέχει μια σταθερή επισκόπηση των αρχών UX. diff --git a/public/content/translations/es/contributing/adding-layer-2s/index.md b/public/content/translations/es/contributing/adding-layer-2s/index.md index 507acd4a9cd..d230622d8a5 100644 --- a/public/content/translations/es/contributing/adding-layer-2s/index.md +++ b/public/content/translations/es/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _No consideramos que otras soluciones de escalabilidad que no utilicen Ethereum Si quiere añadir una capa 2 a ethereum.org, cree una incidencia en GitHub. - + Crear una incidencia diff --git a/public/content/translations/es/contributing/content-resources/index.md b/public/content/translations/es/contributing/content-resources/index.md index fc48ccd72f2..e680cd10251 100644 --- a/public/content/translations/es/contributing/content-resources/index.md +++ b/public/content/translations/es/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Los recursos de aprendizaje se evaluarán a tenor de los siguientes criterios: Si desea añadir un recurso de contenido a ethereum.org y cumple con los criterios, cree una incidencia en GitHub. - + Crear una incidencia diff --git a/public/content/translations/es/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/es/developers/docs/design-and-ux/dex-design-best-practice/index.md index 31adf58cf82..63a43904774 100644 --- a/public/content/translations/es/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/es/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ La ley de proximidad establece que los elementos que están cerca se perciben co En última instancia, hay ventajas y desventajas para ambas opciones, pero es interesante cómo la tendencia parece ser colocar el token del lado derecho. -# Comportamiento del botón {#button-behavior} +## Comportamiento del botón {#button-behavior} No tenga un botón separado para Aprobar. Tampoco tenga un clic separado para Aprobar. El usuario quiere intercambiar, así que solo tiene que decir "intercambiar" en el botón e iniciar la aprobación como primer paso. Un modal puede mostrar el progreso con un paso a paso, o una simple notificación "tx 1 de 2 - aprobación". @@ -188,7 +188,7 @@ No tenga un botón separado para Aprobar. Tampoco tenga un clic separado para Ap ![Una interfaz de usuario con un botón que dice aprobar](./15.png) -## Botón como ayuda contextual {#button-as-contextual-help} +### Botón como ayuda contextual {#button-as-contextual-help} El botón puede tener una doble función como una ¡alerta! @@ -206,7 +206,7 @@ El botón también puede ser **mapeado a la acción** a realizar. Por ejemplo, s ![Mensaje de error mostrado en el CTA principal](./17.png) -## Construya el suyo con este archivo figma {#build-your-own-with-this-figma-file} +### Construya el suyo con este archivo figma {#build-your-own-with-this-figma-file} Gracias a la ardua labor de múltiples protocolos, el diseño de DEX ha mejorado mucho. Sabemos qué información necesita el usuario, cómo debemos mostrarla y cómo hacer que el flujo sea lo más fluido posible. Esperamos que este artículo ofrezca una sólida visión general de los principios de la UX. diff --git a/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md index eacffa426cf..0be0baa7d3b 100644 --- a/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Cualquiera a quien se le permita transferir un token puede quemarlo. Mientras que una quema parece equivalente a transferira la dirección cero, la dirección cero no recibe el token. Esto nos permite liberar todo el almacenamiento que se utilizó para el token, lo que puede reducir el coste del gas de la transacción. -# Utilizar este contrato {#using-contract} +## Utilizar este contrato {#using-contract} En contraste con Solidity, Vyper no tiene herencia. Esta es una elección de diseño deliberada para hacer el código más claro y por lo tanto más fácil de asegurar. Así que para crear su propio contrato Vyper ERC-721, utilice [este contrato](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) y modifíquelo para implementar la lógica de negocio que desee. -## Conclusión {#conclusion} +### Conclusión {#conclusion} A modo de recapitulación, he resumido algunas de las ideas más importantes de este contrato: diff --git a/public/content/translations/es/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/es/developers/tutorials/waffle-test-simple-smart-contract/index.md index 4b7434207ee..47078d62d5e 100644 --- a/public/content/translations/es/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/es/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - Ha utilizado algunos gestores de paquetes como yarn o npm. - Posee conocimientos muy básicos de contratos inteligentes y Solidity. -# Introducción {#getting-started} +## Introducción {#getting-started} Este tutorial explica una configuración de prueba y se ejecuta utilizando yarn, pero no pasa nada si prefiere hacerlo con npm, ya proporcionaré las indicaciones apropiadas a la documentación oficial de Waffle[](https://ethereum-waffle.readthedocs.io/en/latest/index.html). -## Instalar las dependencias {#install-dependencies} +### Instalar las dependencias {#install-dependencies} [Añada](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation) las dependencias ethereum-waffle y de typescript a las dependencias de desarrollo de su proyecto. @@ -37,7 +37,7 @@ Este tutorial explica una configuración de prueba y se ejecuta utilizando yarn, yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## Ejemplo de contrato inteligente {#example-smart-contract} +### Ejemplo de contrato inteligente {#example-smart-contract} Durante el tutorial trabajaremos con un sencillo ejemplo de contrato inteligente: EtherSplitter. Permite casi se manera similar que cualquiera envíe algunos wei y, eventualmente, los divida entre dos receptores por defecto. La función dividida requiere que la cantidad de wei sea un número entero, de lo contario se revertirá. Para ambos receptores realiza una transferencia de wei, seguida a la emisión de un evento de transferencia. @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## Compilar el contrato {#compile-the-contract} +### Compilar el contrato {#compile-the-contract} Para [compilar](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract) el contrato, añada las siguientes líneas al archivo de package.json: @@ -90,7 +90,7 @@ A continuación, cree el archivo de configuración de Waffle en el directorio de Ejecute `yarn build`. Como resultado, el directorio `build` aparecerá con el contrato compilado de EtherSplitter en formato JSON. -## Configuración de la prueba {#test-setup} +### Configuración de la prueba {#test-setup} Para hacer pruebas con Waffle se tienen que utilizar los emparejadores de Chai y Mocha, por lo que necesita [añadirlos](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) a su proyecto. Actualice su archivo package.json y añada la línea de `test` en la parte de scripts: @@ -103,7 +103,7 @@ Para hacer pruebas con Waffle se tienen que utilizar los emparejadores de Chai y Si quiere [ejecutar](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests) sus pruebas, simplemente ejecute `yarn test` . -# Pruebas {#testing} +## Pruebas {#testing} Seguidamente cree el directorio `test` y un nuevo archivo `test\EtherSplitter.test.ts`. Copie el fragmento de abajo y péguelo en nuestro archivo de prueba. @@ -134,7 +134,7 @@ Unas breves aclaraciones antes de que empecemos. El `MockProvider` incluye una s A continuación, declaramos una variable llamada «splitter»: este es nuestro contrato simulado EtherSplitter. Se crea antes de la ejecución de una única prueba a través del método `deployContract`. Este método simula la implementación de un contrato desde la cartera pasado como el primer parámetro (en nuestro caso, la cartera del emisor). El segundo parámetro es el ABI y el código de bytes del contrato de prueba: aquí pasamos el archivo json o el contrato EtherSplitter compilado desde el directorio `build`. El tercer parámetro es una matriz con los argumentos del constructor del contrato, que en nuestro caso, son las dos direcciones de los receptores. -## ChangeBalances {#changebalances} +### ChangeBalances {#changebalances} Primero, revisamos si el método dividido realmente cambia el saldo de las carteras de los receptores. Si dividimos 50 wei desde las cuentas de los emisores, esperaríamos que los saldos de ambos receptores aumentaran 25 wei. Usaremos el comparador `changeBalances` de Waffle: @@ -162,7 +162,7 @@ Tenga en cuenta que en ambos casos `changeBalance` y `changeBalances`, enviamos A continuación, probaremos si el evento de transferencia se emitió después de cada transferencia de wei. Cambiaremos a otra máquina desde Waffle: -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { El emparejador `emit` nos permite revisar si un contrato ha emitido un evento al recurrir a un método. Como parámetros del emparejador `emit`, proporcionamos el simulacro de contrato que predecimos para emitir el evento, junto al nombre de ese evento. En nuestro caso, el simulacro de contrato es `splitter` y el nombre del evento: `Transfer`. También podemos verificar los valores precisos de los argumentos con los que se emitió el evento: enviamos tantos argumentos al emparejador `withArgs` como lo espera nuestra declaración de evento. En el caso del contrato EtherSplitter, enviamos las direcciones del emisor y del receptor, junto a la cantidad de wei transferida. -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} Como último ejemplo, comprobaremos si se revirtió la transacción en caso de número impar de wei. Usaremos el emparejador `revertedWith`: @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { Si la prueba sale bien, nos garantizará que se ha revertido la transacción. Sin embargo, también debe haber una coincidencia exacta entre los mensajes que hemos enviado en la declaración `require` y el mensaje que esperamos en `revertedWith`. Si regresamos al código del contrato EtherSplitter, en la declaración `require` para la cantidad de wei, proporcionamos el mensaje: «no se permite una cantidad impar de wei». Esto coincide con el mensaje que esperamos en nuestra prueba. Si no coinciden, será que la prueba ha salido mal. -# ¡Felicitaciones! {#congratulations} +## ¡Felicitaciones! {#congratulations} ¡Acabas de dar tu primer gran paso para probar los contratos inteligentes con Waffle! Puede que también te interesen otros tutoriales de Waffle: diff --git a/public/content/translations/fa/contributing/adding-layer-2s/index.md b/public/content/translations/fa/contributing/adding-layer-2s/index.md index 6dd2e94af0d..512976b473a 100644 --- a/public/content/translations/fa/contributing/adding-layer-2s/index.md +++ b/public/content/translations/fa/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _ما راه حل‌های مقیاس پذیر دیگری را که از اتر اگر می‌خواهید یک لایه 2 را به ethereum.org اضافه نمائید، یک مسئله در وبسایت گیت‌هاب ایجاد کنید. - + یک مسئله ایجاد کنید diff --git a/public/content/translations/fa/contributing/content-resources/index.md b/public/content/translations/fa/contributing/content-resources/index.md index 0788f58b182..b2fb6bf87a1 100644 --- a/public/content/translations/fa/contributing/content-resources/index.md +++ b/public/content/translations/fa/contributing/content-resources/index.md @@ -27,6 +27,6 @@ description: معیارهای ما برای لیست کردن منابع محت اگر می خواهید یک منبع محتوا به ethereum.org اضافه کنید و معیارها را رعایت می کند، در GitHub یک مسئله ایجاد کنید. - + یک مسئله ایجاد کنید diff --git a/public/content/translations/fa/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/fa/developers/docs/design-and-ux/dex-design-best-practice/index.md index 7efb9db6d65..94a942ce18e 100644 --- a/public/content/translations/fa/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/fa/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ DEX ها معمولاً جزئیات اضافی را در یک ردیف بالا در نهایت، نکات مثبت و منفی برای هر دو گزینه وجود دارد، اما جالب است که به نظر می رسد چگونه روند به سمت توکن سمت راست است. -# رفتار دکمه {#button-behavior} +## رفتار دکمه {#button-behavior} دکمه جداگانه ای برای تأیید نداشته باشید. همچنین یک کلیک جداگانه برای تأیید نداشته باشید. کاربر می‌خواهد Swap را انجام دهد، بنابراین فقط روی دکمه بگویید «swap» و تأیید را به عنوان اولین مرحله آغاز کنید. یک مودال می‌تواند پیشرفت را با یک استپر یا یک اعلان ساده "tx 1 of 2 - تایید" نشان دهد. @@ -188,7 +188,7 @@ DEX ها معمولاً جزئیات اضافی را در یک ردیف بالا ![یک رابط کاربری با یک دکمه که تأیید می‌کند](./15.png) -## دکمه به عنوان راهنمای متنی {#button-as-contextual-help} +### دکمه به عنوان راهنمای متنی {#button-as-contextual-help} این دکمه می تواند به عنوان یک هشدار، وظیفه ای مضاعف را انجام دهد! @@ -206,7 +206,7 @@ DEX ها معمولاً جزئیات اضافی را در یک ردیف بالا ![پیام خطا در CTA اصلی نشان داده می‌شود](./17.png) -## مال خودتان را با این فایل فیگما بسازید {#build-your-own-with-this-figma-file} +### مال خودتان را با این فایل فیگما بسازید {#build-your-own-with-this-figma-file} به لطف کار سخت پروتکل های متعدد، طراحی DEX بسیار بهبود یافته است. ما می دانیم که کاربر به چه اطلاعاتی نیاز دارد، چگونه باید آن را نشان دهیم و چگونه جریان را تا حد امکان روان کنیم. امیدواریم این مقاله یک نمای کلی از اصول UX ارائه دهد. diff --git a/public/content/translations/fa/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/fa/developers/docs/standards/tokens/erc-777/index.md deleted file mode 100644 index e9e07e78e33..00000000000 --- a/public/content/translations/fa/developers/docs/standards/tokens/erc-777/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: 'EIP-: استاندارد توکن ERC-777' -description: -lang: fa ---- - -## {#introduction} - -**** - -**** - -قلاب ها تابعی هستند که در کد یک قرارداد هوشمند توضیح داده شده است. هنگامی که توکن ها از طریق یک قرارداد ارسال یا دریافت می شوند، قلاب ها فراخوانی می شوند. این به یک قرارداد هوشمند اجازه می دهد تا به توکن های ورودی یا خروجی واکنش نشان دهد. - -## {#prerequisites} - -- []() -- []() -- []() - -## {#body} - -قلاب ها با استفاده از استاندارد [ERC-1820](https://eips.ethereum.org/EIPS/eip-1820)ثبت و کشف می‌شوند. - -این استاندارد همچنین ابهامی را که در مورد `اعشار` ایجاد شده در ERC-20 وجود دارد حل می کند. این شفافیت باعث بهبود تجربه توسعه دهنده می شود. - -می توان با قراردادهای ERC-777 به گونه ای تعامل کرد که انگار قراردادهای ERC-20 هستند. - -### {#methods} - -```solidity - -``` - -### {#events} - -```solidity - -``` - -### {#web3py-example} - -#### {#web3py-example} - -``` - -``` - -```python - - - - -``` - -```python - - -``` - -## {#popular-nfts} - -- -- -- -- -- -- -- -- - -## اطلاعات بیشتر {#further-reading} - -- []() -- []() -- []() -- []() diff --git a/public/content/translations/fr/contributing/adding-layer-2s/index.md b/public/content/translations/fr/contributing/adding-layer-2s/index.md index 18c84d4f524..ec77967918c 100644 --- a/public/content/translations/fr/contributing/adding-layer-2s/index.md +++ b/public/content/translations/fr/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Nous ne considérons pas comme relevant de la couche 2 les autres solutions d' Si vous souhaitez ajouter une Couche 2 sur ethereum.org, créez un ticket sur GitHub. - + Créez un ticket diff --git a/public/content/translations/fr/contributing/content-resources/index.md b/public/content/translations/fr/contributing/content-resources/index.md index 6dbae83cee0..8d1f6574770 100644 --- a/public/content/translations/fr/contributing/content-resources/index.md +++ b/public/content/translations/fr/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Les ressources d'apprentissage seront évaluées selon les critères suivants : Si vous souhaitez ajouter une ressource de contenu à ethereum.org et qu'elle répond aux critères, créez un ticket sur GitHub. - + Créez un ticket diff --git a/public/content/translations/fr/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/fr/developers/docs/design-and-ux/dex-design-best-practice/index.md index 41ab7455f08..0ff53041b88 100644 --- a/public/content/translations/fr/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/fr/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -179,7 +179,7 @@ La loi de proximité stipule que les éléments proches sont perçus comme étan En fin de compte, les deux options présentent des avantages et des inconvénients, mais il est intéressant de noter que la tendance est au jeton placé à droite. -# Comportement du bouton {#button-behavior} +## Comportement du bouton {#button-behavior} N'ayez pas de bouton séparé pour l'approbation. Évitez également de demander un clic séparé pour l'approbation. L'utilisateur veut effectuer un échange, il suffit donc d'indiquer "échanger" sur le bouton et de lancer l'approbation comme première étape. Une fenêtre modale peut afficher la progression avec un indicateur d'étapes, ou une simple notification du type "tx 1 sur 2 - approbation en cours". @@ -187,7 +187,7 @@ N'ayez pas de bouton séparé pour l'approbation. Évitez également de demander ![Une interface utilisateur avec un seul bouton d'approbation](./15.png) -## Bouton comme aide contextuelle {#button-as-contextual-help} +### Bouton comme aide contextuelle {#button-as-contextual-help} Le bouton peut également servir d'alerte ! @@ -205,7 +205,7 @@ Le bouton peut également être **associé à l'action** qui doit être effectu ![Message d'erreur affiché dans le principal appel à l'action](./17.png) -## Construisez le vôtre avec ce fichier Figma {#build-your-own-with-this-figma-file} +### Construisez le vôtre avec ce fichier Figma {#build-your-own-with-this-figma-file} Grâce au travail acharné de plusieurs protocoles, la conception des DEX s'est beaucoup améliorée. Nous savons de quelles informations l'utilisateur a besoin, de quelle manière nous devons les présenter et comment rendre le flux aussi fluide que possible. Nous espérons que cet article vous offrira un aperçu solide des principes UX. diff --git a/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md index 1afe4a47d0b..69190ba7dbd 100644 --- a/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Toute personne autorisée à transférer un jeton est autorisée à le détruire. Bien que détruire un jeton semble équivalent à le transférer à l'adresse zéro, celle-ci ne reçoit pas réellement le jeton. Cela nous permet de libérer tout l'espace de stockage qui était utilisé pour le jeton, ce qui peut réduire les frais de gaz de la transaction. -# Utiliser ce contrat {#using-contract} +## Utiliser ce contrat {#using-contract} Contrairement à Solidity, Vyper n'a pas de système d'héritage. Il s'agit d'un choix de conception délibéré visant à rendre le code plus clair et donc plus facile à sécuriser. Donc pour créer votre propre contrat Vyper ERC-721, vous prenez [ce contrat](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) puis vous le modifiez en fonction de la stratégie commerciale que vous souhaitez mettre en œuvre. -## Conclusion {#conclusion} +### Conclusion {#conclusion} Voici les principaux points à retenir sur ce contrat : diff --git a/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md index 3dbabf656d5..ed979f3e517 100644 --- a/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - Vous avez utilisé des gestionnaires de paquets comme yarn ou npm - Vous possédez des connaissances de base en matière de contrats intelligents et de Solidity -# Premiers pas {#getting-started} +## Premiers pas {#getting-started} Le tutoriel décrit l'installation et l'exécution du test en utilisant yarn, mais il n'y a pas de problème si vous préférez npm - je fournirai les références appropriées à la documentation officielle de Waffle.[](https://ethereum-waffle.readthedocs.io/en/latest/index.html) -## Installer les dépendances {#install-dependencies} +### Installer les dépendances {#install-dependencies} [Ajoutez](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation) dépendances ethereum-waffle et typescript aux dépendances de développement de votre projet. @@ -37,7 +37,7 @@ Le tutoriel décrit l'installation et l'exécution du test en utilisant yarn, ma yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## Exemple de contrat intelligent {#example-smart-contract} +### Exemple de contrat intelligent {#example-smart-contract} Au cours du tutoriel, nous allons travailler sur un exemple de contrat intelligent simple - EtherSplitter. Il ne fait pas grand-chose à part permettre à quelqu'un d'envoyer des wei et de les répartir équitablement entre deux destinataires prédéfinis. La fonction de séparation nécessite que le nombre de wei soit pair, sinon elle s'inverse. Pour les deux destinataires, il effectue un transfert de wei suivi de l'émission de l'événement Transfert. @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## Compiler le contrat {#compile-the-contract} +### Compiler le contrat {#compile-the-contract} Pour [compiler](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract) le contrat, ajoutez l'entrée suivante au fichier package.json : @@ -90,7 +90,7 @@ Ensuite, créez un fichier de configuration avec Waffle, dans le répertoire pri Exécutez `yarn build`. Cela fera apparaître le dossier `build` avec le contrat compilé EtherSplitter au format JSON. -## Configuration du test {#test-setup} +### Configuration du test {#test-setup} Tester avec Waffle nécessite d'utiliser des correspondances Chai et Mocha, vous devez donc [les ajouter](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) à votre projet. Lancez la mise à jour de votre paquet package.json, et ajoutez le `texte`d'entrée, dans la partie modèle: @@ -103,7 +103,7 @@ Tester avec Waffle nécessite d'utiliser des correspondances Chai et Mocha, vous Si vous voulez [faire](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests) vos propres tests, exécutez juste le `yarn test` . -# Tests {#testing} +## Tests {#testing} Maintenant, créez le dossier `test` et créez le nouveau fichier `test\EtherSplitter.test.ts`. Copiez le fragment ci-dessous et collez-le dans notre fichier de test. @@ -134,7 +134,7 @@ Quelques mots avant de commencer. Le fournisseur de services, `MockProvider`, pr Ensuite, nous déclarons une variable appelée « splitter » - c'est notre contrat fictif EtherSpliter. Il est créé avant chaque exécution d'un test unique par la méthode `deployContract`. Cette méthode simule le déploiement d'un contrat à partir du portefeuille transmis en tant que premier paramètre (le portefeuille de l'expéditeur dans notre cas). Le deuxième paramètre est l'ABI et le bytecode du contrat testé - nous transmettons le fichier json du contrat EtherSplitter compilé à partir du répertoire `build`. Le troisième paramètre est un tableau contenant les arguments du constructeur du contrat qui, dans notre cas, sont les deux adresses des destinataires. -## changeBalances {#changebalances} +### changeBalances {#changebalances} Tout d'abord, nous vérifierons si la méthode fractionnée modifie réellement les soldes des portefeuilles des destinataires. Si nous divisons 50 wei du compte des expéditeurs, nous nous attendons à ce que les soldes des deux destinataires augmentent de 25 wei. Nous utiliserons la correspondance `changeBalances` de Waffle: @@ -162,7 +162,7 @@ Notez que dans les deux cas de `changeBalance` et `changeBalances`, nous transme Nous allons ensuite déterminer si l'événement Transfert a été émis après chaque transfert de wei. Nous allons passer à une autre correspondance de Waffle : -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { La correspondance `emit` nous permet de vérifier si un contrat a émis un événement en appelant une méthode. En tant que paramètres pour la corrrespondance `emit`, nous fournissons le contrat fictif que nous prévoyons pour émettre l'événement, ainsi que le nom de cet événement. Dans notre cas, le contrat fictif est `splitter` et le nom de l'événement `Transfer`. Nous pouvons également vérifier les valeurs précises des arguments avec lesquels l'événement a été émis - nous transmettons autant d'arguments au `withArgs` correspondant, comme le prévoit notre déclaration d'événement. Dans le cas du contrat EtherSpliter, nous passons les adresses de l'expéditeur et du destinataire avec le montant en wei transféré. -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} Comme dernier exemple, nous allons vérifier si la transaction a été annulée en cas de nombre impair de wei. Nous allons utiliser la correspondance `revertedWith` : @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { Le test, s'il est accepté, nous assurera que la transaction a bien été annulée. Cependant, il doit également y avoir une correspondance exacte entre les messages que nous avons passés dans la déclaration `require` et le message attendu dans `revertedWith`. Si nous revenons au code du contrat EtherSpliter, dans la déclaration `require` pour le montant wei, nous fournissons le message: "Uneven wei amount not allowed". Cela correspond au message que nous attendons dans notre test. Si elles n'étaient pas égales, le test échouerait. -# Félicitations ! {#congratulations} +## Félicitations ! {#congratulations} Vous avez fait votre premier (grand) pas vers les tests des contrats intelligents avec Waffle ! Vous pourriez être intéressé par d'autres tutoriels Waffle : diff --git a/public/content/translations/ga/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/ga/developers/docs/design-and-ux/dex-design-best-practice/index.md index 937f517300d..c70829fb872 100644 --- a/public/content/translations/ga/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/ga/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ Sonraítear i ndlí na gaireachta go mbreathnaítear ar nithe atá gar dá chéi I ndeireadh na dála, tá buntáistí agus míbhuntáistí ann don dá rogha, ach tá sé suimiúil gur cosúil go bhfuil an treocht i dtreo comharthaí ar dheis. -# Iompar cnaipe {#button-behavior} +## Iompar cnaipe {#button-behavior} Ná bíodh cnaipe ar leith agat le haghaidh Faomhadh. Chomh maith leis sin ná bíodh cliceáil ar leith agat le haghaidh Ceadaigh. Is mian leis an úsáideoir Babhtáil, mar sin abair “babhtáil” ar an gcnaipe agus cuir tús leis an gceadú mar an chéad chéim. Is féidir le modal dul i láthair le céimire, nó le fógra simplí 'tx 1 de 2 - á cheadú'. @@ -188,7 +188,7 @@ Ná bíodh cnaipe ar leith agat le haghaidh Faomhadh. Chomh maith leis sin ná b ![UI le cnaipe amháin a deir ceadaigh](./15.png) -## Cnaipe mar chabhair chomhthéacsúil {#button-as-contextual-help} +### Cnaipe mar chabhair chomhthéacsúil {#button-as-contextual-help} Is féidir leis an gcnaipe dualgas dúbailte a dhéanamh mar fholáireamh! @@ -206,7 +206,7 @@ Is féidir an cnaipe a **mhapáil chuig an ngníomh** freisin nach mór a dhéan ![Teachtaireacht earráide léirithe laistigh den phríomh CTA](./17.png) -## Tóg do cheann féin leis an gcomhad figma seo {#build-your-own-with-this-figma-file} +### Tóg do cheann féin leis an gcomhad figma seo {#build-your-own-with-this-figma-file} A bhuí le hobair chrua na bprótacal iolrach, tá feabhas mór tagtha ar dhearadh DEX. Tá a fhios againn cén fhaisnéis a theastaíonn ón úsáideoir, conas ba cheart dúinn é a thaispeáint, agus conas an sreabhadh a dhéanamh chomh réidh agus is féidir. Tá súil agam go dtugann an t-alt seo forbhreathnú láidir ar phrionsabail UX. diff --git a/public/content/translations/hu/contributing/adding-layer-2s/index.md b/public/content/translations/hu/contributing/adding-layer-2s/index.md index a5d9176362d..c160793f024 100644 --- a/public/content/translations/hu/contributing/adding-layer-2s/index.md +++ b/public/content/translations/hu/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Más skálázási megoldásokat nem tekintünk L2-nek, melyek nem használják Ha egy L2-t szeretne hozzáadni az ethereum.org webhelyhez, hozzon létre egy problémát a GitHubon. - + Issue létrehozása diff --git a/public/content/translations/hu/contributing/content-resources/index.md b/public/content/translations/hu/contributing/content-resources/index.md index eef66c3d199..34025b7a923 100644 --- a/public/content/translations/hu/contributing/content-resources/index.md +++ b/public/content/translations/hu/contributing/content-resources/index.md @@ -27,6 +27,6 @@ A tanulási forrásokat a következőképpen ítéljük meg: Ha egy tartalmi forrást szeretne hozzáadni az ethereum.org-hoz, és az megfelel a feltételeknek, hozzon létre egy issue-t a GitHubon. - + Issue létrehozása diff --git a/public/content/translations/hu/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/hu/developers/docs/design-and-ux/dex-design-best-practice/index.md index 26b5b1372f3..262aa0a1cbc 100644 --- a/public/content/translations/hu/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/hu/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ A közelség törvénye azt mondja, hogy a közeli dolgok összefüggőbbnek tű Végülis mindkét megoldásnak vannak előnyei és hátrányai, de a trend szerint a token a jobb oldalra kerül. -# Gombműködés {#button-behavior} +## Gombműködés {#button-behavior} Ne legyen külön gomb a jóváhagyásra. Ne is kelljen ehhez külön kattintani. A felhasználó átváltást akar, ezért legyen a gombon átváltás felirat és az első lépés maga a jóváhagyás. Az ablak mutathatja a haladást lépésekkel, vagy egyszerűen egy „2-ből 1 tranzakció jóváhagyása” figyelmeztetéssel. @@ -188,7 +188,7 @@ Ne legyen külön gomb a jóváhagyásra. Ne is kelljen ehhez külön kattintani ![UI, ahol egy jóváhagyás gomb van](./15.png) -## Gomb mint helyi segítség {#button-as-contextual-help} +### Gomb mint helyi segítség {#button-as-contextual-help} A gomb figyelmeztetésként is működhet! @@ -206,7 +206,7 @@ A gombot **hozzá is lehet kapcsolni az elvégzendő cselekvéshez**. Például, ![Hibaüzenet a fő CTA-n](./17.png) -## Építse meg sajátját ezzel a figma fájllal {#build-your-own-with-this-figma-file} +### Építse meg sajátját ezzel a figma fájllal {#build-your-own-with-this-figma-file} Számos protokoll kemény munkájának köszönhető, hogy a DEX dizájnja sokat fejlődött. Tudjuk, hogy a felhasználónak milyen információra van szüksége, hogyan mutassuk azt meg, és hogyan legyen könnyed a használat menete. Remélhetőleg ez a cikk segített áttekinteni az UX elveket. diff --git a/public/content/translations/id/contributing/adding-layer-2s/index.md b/public/content/translations/id/contributing/adding-layer-2s/index.md index 787474e9088..2657afae242 100644 --- a/public/content/translations/id/contributing/adding-layer-2s/index.md +++ b/public/content/translations/id/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Kami tidak menganggap solusi pengukuran lain yang tidak menggunakan ethereum un Jika Anda ingin menambahkan lapisan ke-2 ke ethereum.org, buatlah sebuah isu di GitHub. - + Buat isu diff --git a/public/content/translations/id/contributing/content-resources/index.md b/public/content/translations/id/contributing/content-resources/index.md index 9f32731bcde..7fe7b1bf493 100644 --- a/public/content/translations/id/contributing/content-resources/index.md +++ b/public/content/translations/id/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Sumber pembelajaran akan dinilai berdasarkan kriteria sebagai berikut: Jika Anda ingin menambahkan sumber konten ke ethereum.org dan itu memenuhi kriteria, buatlah isu di GitHub. - + Buat isu diff --git a/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md index 0609ecad20b..5d57c8edec5 100644 --- a/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Siapa pun yang diizinkan untuk mentransfer sebuah token diizinkan untuk membakarnya. Sekalipun pembakaran tampak sama dengan transfer ke alamat kosong, alamat nolnya tidak benar-benar menerima token. Ini memungkinkan kita untuk membebaskan semua penyimpanan yang digunakan untuk token, yang dapat mengurangi biaya gas transaksi. -# Menggunakan Kontrak ini {#using-contract} +## Menggunakan Kontrak ini {#using-contract} Berlawanan dengan Solidity, Vyper tidak memiliki warisan. Ini adalah pilihan rancangan yang disengaja untuk membuat kode lebih jelas dan karena itu lebih mudah untuk diamankan. Jadi, untuk membuat kontrak ERC-721 Vyper Anda, Anda mengambil [kontrak ini](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) dan memodifikasinya untuk mengimplementasikan logika bisnis yang Anda inginkan. -## Kesimpulan {#conclusion} +### Kesimpulan {#conclusion} Sebagai tinjauan, berikut adalah beberapa dari pokok pikiran terpenting dalam kontrak ini: diff --git a/public/content/translations/it/contributing/adding-layer-2s/index.md b/public/content/translations/it/contributing/adding-layer-2s/index.md index c2555ded0dc..e9849ec77de 100644 --- a/public/content/translations/it/contributing/adding-layer-2s/index.md +++ b/public/content/translations/it/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Non prendiamo in considerazione altre soluzioni di scalabilità che non utilizz Se desideri aggiungere un livello 2 su ethereum.org, crea un ticket su GitHub. - + Crea un ticket diff --git a/public/content/translations/it/contributing/content-resources/index.md b/public/content/translations/it/contributing/content-resources/index.md index e054d002c9b..86d4b4a66f0 100644 --- a/public/content/translations/it/contributing/content-resources/index.md +++ b/public/content/translations/it/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Le risorse di apprendimento saranno valutate sulla base dei seguenti criteri: Se desideri aggiungere a ethereum.org una risorsa di contenuto che soddisfa i criteri, crea un ticket su GitHub. - + Crea un ticket diff --git a/public/content/translations/it/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/it/developers/docs/design-and-ux/dex-design-best-practice/index.md index d45812a84dd..c63da6300fd 100644 --- a/public/content/translations/it/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/it/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ La legge della prossimità dice che gli elementi vicini sono percepiti come corr In definitiva ci sono pro e contro in entrambe le opzioni, ma è interessante come il trend sembri andare verso il token sulla destra. -# Comportamento del pulsante {#button-behavior} +## Comportamento del pulsante {#button-behavior} Non inserire un pulsante separato per Approva. Inoltre, non prevedere clic separati per Approva. L'utente vuole Scambiare, quindi basta indicare "scambia" sul pulsante e avviare l'approvazione come primo passaggio. Una finestra modale può mostrare il progresso con uno stepper o con una semplice notifica che dica "tx 1 di 2 - approvazione in corso". @@ -188,7 +188,7 @@ Non inserire un pulsante separato per Approva. Inoltre, non prevedere clic separ ![Una UI con un pulsante che indica approva](./15.png) -## Pulsanti come aiuto contestuale {#button-as-contextual-help} +### Pulsanti come aiuto contestuale {#button-as-contextual-help} Il pulsante può svolgere il doppio compito di avviso! @@ -206,7 +206,7 @@ Il pulsante può anche venire **mappato all'azione** che deve essere eseguita. P ![Messaggio di errore visualizzato nella CTA principale](./17.png) -## Costruisci la tua con questo file di Figma {#build-your-own-with-this-figma-file} +### Costruisci la tua con questo file di Figma {#build-your-own-with-this-figma-file} Grazie al duro lavoro di vari protocolli, la progettazione delle DEX è migliorata parecchio. Sappiamo di quali informazioni ha bisogno l'utente, come dobbiamo visualizzarle e come far andare più liscio possibile il flusso. Speriamo che questo articolo ti abbia dato una solida panoramica dei principi UX. diff --git a/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md index fe5495cd10a..1aa4513316d 100644 --- a/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Chiunque è autorizzato a trasferire un token, può bruciarlo. Anche se bruciare un token appare equivalente a trasferirlo all'indirizzo zero, l'indirizzo zero non riceve realmente il token. Ciò ci consente di liberare tutta l'archiviazione usata per il token, riducendo il costo del gas della transazione. -# Usare questo contratto {#using-contract} +## Usare questo contratto {#using-contract} A differenza di Solidity, Vyper non ha un ereditarietà. Si tratta di una scelta progettuale deliberata per rendere il codice più chiaro e quindi più facile da proteggere. Quindi, per creare il tuo contratto ERC-721 in Vyper, prendi [questo contratto](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) e lo modifichi per implementare la logica di business che desideri. -## Conclusione {#conclusion} +### Conclusione {#conclusion} Per ripasso presentiamo alcune delle idee più importanti in questo contratto: diff --git a/public/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md index 6275c7e1a6f..8dc7d89dbe0 100644 --- a/public/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - Hai utilizzato dei gestori di pacchetti come yarn o npm - Possiedi conoscenze molto essenziali dei contratti intelligenti e di Solidity -# Primi passi {#getting-started} +## Primi passi {#getting-started} Il tutorial dimostra la configurazione di prova e opera utilizzando yarn, ma non ci sono problemi se preferisci npm: fornirò gli adeguati riferimenti alla [documentazione](https://ethereum-waffle.readthedocs.io/en/latest/index.html) ufficiale di Waffle. -## Installa dipendenze {#install-dependencies} +### Installa dipendenze {#install-dependencies} [Aggiungi](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation) ethereum-waffle e le dipendenze di TypeScript alle dipendenze di sviluppo del tuo progetto. @@ -37,7 +37,7 @@ Il tutorial dimostra la configurazione di prova e opera utilizzando yarn, ma non yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## Esempio di contratto intelligente {#example-smart-contract} +### Esempio di contratto intelligente {#example-smart-contract} Durante il tutorial lavoreremo a un esempio di contratto intelligente semplice: EtherSplitter. Non fa molto, tranne che consentire a chiunque di inviare wei e dividerli uniformemente tra due destinatari predefiniti. La funzione di divisione richiede che il numero di wei sia pari, altrimenti si ripristinerà. Per entrambi i destinatari esegue un trasferimento di wei, seguito dall'emissione dell'evento Trasferimento. @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## Compila il contratto {#compile-the-contract} +### Compila il contratto {#compile-the-contract} Per [compilare](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract) il contratto, aggiungi il seguente elemento al file package.json: @@ -90,7 +90,7 @@ Poi, crea un file di configurazione di Waffle nella cartella di root del progett Esegui `yarn build`. Di conseguenza, la cartella `build` apparirà con il contratto compilato di EtherSplitter nel formato JSON. -## Testare la configurazione {#test-setup} +### Testare la configurazione {#test-setup} Testare con Waffle richiede l'utilizzo di abbinatori Chai e Mocha, quindi, devi [aggiungerli](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) al tuo progetto. Aggiorna il tuo file package.json e aggiungi l'elemento `test` nella parte degli script: @@ -103,7 +103,7 @@ Testare con Waffle richiede l'utilizzo di abbinatori Chai e Mocha, quindi, devi Se desideri [eseguire](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests) i tuoi test, basta eseguire `yarn test`. -# Test {#testing} +## Test {#testing} Ora, crea la cartella `test` e crea il nuovo file `test\EtherSplitter.test.ts`. Copia il seguente frammento e incollalo sul nostro file di test. @@ -134,7 +134,7 @@ Solo due parole prima di iniziare. `MockProvider` offre una versione fittizia de Quindi, dichiariamo una variabile detta "splitter" (divisore), che è il nostro contratto fittizio EtherSplitter. È creato prima di ogni esecuzione di un singolo test dal metodo `deployContract`. Questo metodo simula la distribuzione di un contratto dal portafoglio passato come primo parametro (nel nostro caso, il portafoglio del mittente). Il secondo parametro è l'ABI e il bytecode del contratto testato; qui, passiamo il file json del contratto compilato EtherSplitter dalla cartella `build`. Il terzo parametro è un insieme con gli argomenti del costruttore del contratto che, nel nostro caso, sono gli indirizzi dei due destinatari. -## changeBalances {#changebalances} +### changeBalances {#changebalances} Prima controlleremo se il metodo di divisione modifica effettivamente i saldi dei portafogli dei destinatari. Se dividiamo 50 wei dall'account del mittente, i saldi di entrambi i destinatari dovrebbero aumentare di 25 wei. Utilizzeremo l'abbinatore di Waffle "`changeBalances`: @@ -162,7 +162,7 @@ Nota che in entrambi i casi di `changeBalance` e `changeBalances`, passiamo la f Poi, testeremo se l'evento Trasferimento è stato emesso dopo ogni trasferimento di wei. Ci rivolgeremo a un altro abbinatore da Waffle: -## Emetti {#emit} +### Emetti {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { L'abbinatore `emit` ci consente di verificare se un contratto ha emesso un evento alla chiamata di un metodo. Come parametri all'abbinatore `emit`, forniamo il contratto fittizio che prevediamo emetterà l'evento, insieme al nome di tale evento. Nel nostro caso, il contratto fittizio è `splitter` e il nome dell'evento è `Trasferimento`. Inoltre, possiamo verificare i valori precisi degli argomenti con cui è stato emesso l'evento; passiamo altrettanti argomenti all'abbinatore `withArgs`, come previsto dalla dichiarazione del nostro evento. Nel caso del contratto EtherSplitter, passiamo gli indirizzi del mittente e del destinatario insieme all'importo trasferito di wei. -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} Come ultimo esempio verificheremo se la transazione è stata ripristinata, nel caso di un numero dispari di wei. Utilizzeremo l'abbinatore `revertedWith`: @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { Il test, se superato, ci assicurerà che la transazione è stata effettivamente ripristinata. Tuttavia, deve anche verificarsi una corrispondenza esatta tra i messaggi passati nella dichiarazione `require` e il messaggio previsto in `revertedWith`. Se torniamo al codice del contratto EtherSplitter, nella dichiarazione `require` per l'importo di wei, forniamo il messaggio: "Importo di wei dispari non consentito". Questo corrisponde al messaggio che ci aspettiamo nel nostro test. Se non fossero stati uguali, il test sarebbe fallito. -# Congratulazioni! {#congratulations} +## Congratulazioni! {#congratulations} Hai compiuto il tuo primo grande passo verso il test dei contratti intelligenti con Waffle! Potresti essere interessato ad altri tutorial di Waffle: diff --git a/public/content/translations/ja/contributing/adding-layer-2s/index.md b/public/content/translations/ja/contributing/adding-layer-2s/index.md index 6bedb8f5af5..9a8b1a8646b 100644 --- a/public/content/translations/ja/contributing/adding-layer-2s/index.md +++ b/public/content/translations/ja/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _データの可用性やセキュリティにイーサリアムを使用しな ethereum.orgにレイヤー2の追加をご希望の場合は、GitHubで問題を作成してください。 - + 問題の作成 diff --git a/public/content/translations/ja/contributing/content-resources/index.md b/public/content/translations/ja/contributing/content-resources/index.md index b6ce38c02ec..b4cbcb02fa9 100644 --- a/public/content/translations/ja/contributing/content-resources/index.md +++ b/public/content/translations/ja/contributing/content-resources/index.md @@ -27,6 +27,6 @@ description: ethereum.orgへのコンテンツリソースの掲載基準 本基準を満たしたコンテンツのethereum.orgへの掲載をご希望の場合は、GitHubで問題を作成してください。 - + 問題の作成 diff --git a/public/content/translations/ja/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/ja/developers/docs/design-and-ux/dex-design-best-practice/index.md index 17907a0a5d0..df9ee52e5e8 100644 --- a/public/content/translations/ja/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/ja/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -178,7 +178,7 @@ DeFi初期の頃は、法定通貨換算の価値表示がしばしば欠けて 最終的には、どちらのオプションにも利点と欠点がありますが、トークンを右側に配置するトレンドが見られるのは興味深いです。 -# ボタンの動作 {#button-behavior} +## ボタンの動作 {#button-behavior} 承認用の別ボタンは設けないでください。 また、承認のための別クリックも不要です。 ユーザーはスワップを望んでいるので、ボタンには単に「スワップ」と表示し、最初のステップとして承認を開始してください。 モーダルでステッパーを使って進捗を表示するか、シンプルに「取引1/2 - 承認中」という通知を表示することができます。 @@ -186,7 +186,7 @@ DeFi初期の頃は、法定通貨換算の価値表示がしばしば欠けて ![A UI with one button that says approve](./15.png) -## コンテキストヘルプとしてのボタン {#button-as-contextual-help} +### コンテキストヘルプとしてのボタン {#button-as-contextual-help} ボタンはアラートとしても活用できます! @@ -204,7 +204,7 @@ DeFi初期の頃は、法定通貨換算の価値表示がしばしば欠けて ![Error message shown within the main CTA](./17.png) -## Figmaファイルで自作する {#build-your-own-with-this-figma-file} +### Figmaファイルで自作する {#build-your-own-with-this-figma-file} 複数のプロトコルの尽力により、DEXのデザインは大幅に改善されました。 私たちは、ユーザーが必要とする情報や、その表示方法、そしてできるだけスムーズなフローの作り方を理解しています。 この記事がUXの基本原則についてのしっかりとした概要を提供できていれば幸いです。 diff --git a/public/content/translations/ja/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/ja/developers/docs/standards/tokens/erc-777/index.md deleted file mode 100644 index b22445732cd..00000000000 --- a/public/content/translations/ja/developers/docs/standards/tokens/erc-777/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: ERC-777 トークン規格 -description: -lang: ja ---- - -## {#introduction} - -**** - -**** - -フックとは、スマートコントラクトのコードで記述された関数です。 フックは、コントラクトによりトークンが送受信される際に呼び出されます。 これにより、スマートコントラクトはトークンの受信/送信に対応できるようになります。 - -## {#prerequisites} - -- []() -- []() -- []() - -## {#body} - -フックの登録および検出は、[ERC-1820](https://eips.ethereum.org/EIPS/eip-1820)規格に基づいて実行されます。 - -ERC-777はさらに、ERC-20における`通貨の最小単位`に関する混乱を解消します。 この混乱を解消することで、デベロッパーの利用体験が向上します。 - -ERC-777コントラクトとの間は、ERC-20コントラクトに対する場合と同様のやりとりが可能です。 - -### {#methods} - -```solidity - -``` - -### {#events} - -```solidity - -``` - -### {#web3py-example} - -#### {#web3py-example} - -``` - -``` - -```python - - - - -``` - -```python - - -``` - -## {#popular-nfts} - -- -- -- -- -- -- -- -- - -## 参考文献 {#further-reading} - -- []() -- []() -- []() -- []() diff --git a/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md index 9e6bbd25911..8a073d19f70 100644 --- a/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): トークンの送信が許可されているユーザーは、そのトークンをバーンすることができます。 バーンは、ゼロアドレスへの送信と同じ外見を持ちますが、このゼロアドレスは実際にはこのトークンを受け取りません。 バーンを通じて、このトークンに使用されたすべてのストレージを解放できるため、トランザクションのガス代を軽減することができます。 -# コントラクトの使用方法 {#using-contract} +## コントラクトの使用方法 {#using-contract} Solidityとは異なり、Viperは相続機能を提供しません。 これは、コードをより明確にし、セキュリティを確保しやすくするための意図的な設計上の選択によるものです。 このため、あなた自身がVyperでERC-721コントラクトを作成する際は、[このコントラクト](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy)を用いて修正し、必要なビジネスロジックを実装してください。 -## まとめ {#conclusion} +### まとめ {#conclusion} このコントラクトにつき、最も重要なポイントを以下にまとめました: diff --git a/public/content/translations/ja/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/ja/developers/tutorials/waffle-test-simple-smart-contract/index.md index a3464307588..977e6b72c4f 100644 --- a/public/content/translations/ja/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/ja/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - yarnやnpmなどのパッケージマネージャーを使用したことがある - スマートコントラクトおよびSolidityのごく基本的な知識を持っている -# はじめに {#getting-started} +## はじめに {#getting-started} このチュートリアルでは、yarnを使ってテストのセットアップおよび実行をしていますが、npmの方が良ければnpmでも問題ありません。公式のWaffleのドキュメントは、[こちら](https://ethereum-waffle.readthedocs.io/en/latest/index.html)になります。 -## 依存関係のインストール {#install-dependencies} +### 依存関係のインストール {#install-dependencies} プロジェクトに対してethereum-waffleとtypescriptの依存関係を開発環境の依存関係に[追加](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation)します。 @@ -37,7 +37,7 @@ published: 2021-02-26 yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## スマートコントラクトのコード例 {#example-smart-contract} +### スマートコントラクトのコード例 {#example-smart-contract} このチュートリアルでは、EtherSplitterというシンプルなスマートコントラクトの例に取り組みます。 このコードでは、誰もがweiを送信でき、それを2つの事前定義された受信者間で均等に分割するだけです。 split関数ではweiの数が偶数でなければなりません。さもないと処理が取り消されます。 両方の受信者に対して、weiの送金を実行し、続いてTransferイベントを発行します。 @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## コントラクトのコンパイル {#compile-the-contract} +### コントラクトのコンパイル {#compile-the-contract} コントラクトを[コンパイル](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract)するのに、package.jsonファイルに次のエントリを追加します。 @@ -90,7 +90,7 @@ contract EtherSplitter { `yarn build`を実行してください。 終了すると、`build`ディレクトリに、JSON形式でコンパイルされたEtherSplitterコントラクトが現れます。 -## テストの設定 {#test-setup} +### テストの設定 {#test-setup} Waffleでテストするには ChaiマッチャーとMochaが必要になるため、プロジェクトに[追加](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests)します。 次のようにscriptの場所に`test`エントリを追加してpackage.jsonファイルを更新してください。 @@ -103,7 +103,7 @@ Waffleでテストするには ChaiマッチャーとMochaが必要になるた テストを[実行](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests)する場合は、 `yarn test`を実行します。 -# テストを実行する {#testing} +## テストを実行する {#testing} それでは、`test`ディレクトリを作成し、新しいファイル `test\EtherSplitter.test.ts`を作成してください。 以下のスニペットをコピーして、テストファイルに貼り付けてください。 @@ -134,7 +134,7 @@ describe("Ether Splitter", () => { 次に、「splitter」という変数を宣言します。これは、 EtherSplitterコントラクトのモックです。 このモックは、単一のテストを実行する前に`deployContract`メソッドによって作成されます。 当該のメソッドは、最初のパラメータとして渡されたウォレット (この場合は送信者のウォレット) からコントラクトのデプロイメントをシミュレートします。 2番目のパラメータは、テストされるコントラクトのABIとバイトコードです。コンパイルされたEtherSplitterコントラクトのjsonファイルを`build`ディレクトから渡します。 3番目のパラメータは、コントラクトのコンストラクタ引数を持つ配列です。この場合、受信者の2つのアドレスです。 -## changeBalances {#changebalances} +### changeBalances {#changebalances} まず、splitメソッドによって実際に受取人のウォレットの残高が変わるかどうかを確認します。 送信者のアカウントから50weiを分割すると、両方の受信者の残高が25wei増えることが期待されます。 ここで、Waffleの`changeBalances`マッチャーを使います。 @@ -162,7 +162,7 @@ it("Changes account balance", async () => { 次では、weiの各転送後にTransferイベントが発行されたかどうかをテストします。 それでは、Waffleの別のマッチャーに移ります。 -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { `emit`マッチャーを使うと、メソッドの呼び出し時にコントラクトがイベントを発行したかどうかを確認できます。 `emit`マッチャーへのパラメーターとして、イベントを発行することが予期されるモックコントラクトとそのイベントの名前を渡します。 この場合、モックコントラクトは`splitter`で、イベント名は`Transfer`です。 また、イベントの発行で引数の正確な値を検証することもできます。その場合、イベントの宣言で期待される数の引数を `withArgs`マッチャーに渡します。 EtherSplitterコントラクトの場合では、送金されるwei単位の金額とともに送信者と受信者のアドレスを渡します。 -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} 最後の例として、weiの数が奇数の場合にトランザクションが取り消されるかどうかを確認します。 ここでは、`revertedWith`マッチャーを使います。 @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { このテストをパスすれば、トランザクションが実際に取り消されたことが保証されます。 ただし、`require`ステートメントで渡したメッセージと、`revertedWith`で期待しているメッセージとが完全に一致している必要があります。 EtherSplitterコントラクトのコードに戻った場合、weiの金額の`require`ステートメントで、「偶数でないwei単位の金額は許可されていません」というメッセージが表示されます。 これは、テストで予期されるメッセージと一致します。 それらが等しくなければ、テストは失敗します。 -# おめでとうございます! {#congratulations} +## おめでとうございます! {#congratulations} Waffleでスマートコントラクトをテストするための最初の大きな一歩を踏み出すことができました。 他のWaffleのチュートリアルについては、以下をご参照ください。 diff --git a/public/content/translations/pt-br/contributing/adding-layer-2s/index.md b/public/content/translations/pt-br/contributing/adding-layer-2s/index.md index 08f7dd53614..c465ca5edd4 100644 --- a/public/content/translations/pt-br/contributing/adding-layer-2s/index.md +++ b/public/content/translations/pt-br/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Não consideramos outras soluções de dimensionamento que não usam o Ethereum Se você quiser adicionar uma camada 2 ao ethereum.org, abra um tíquete no Github. - + Crie um ticket diff --git a/public/content/translations/pt-br/contributing/content-resources/index.md b/public/content/translations/pt-br/contributing/content-resources/index.md index 8215db0dd93..acba18e7eb7 100644 --- a/public/content/translations/pt-br/contributing/content-resources/index.md +++ b/public/content/translations/pt-br/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Conteúdos de aprendizado serão avaliados pelos seguintes critérios: Se você deseja adicionar uma fonte de conteúdo ao ethereum.org que atende aos critérios, abra um tíquete no GitHub. - + Criar um novo problema diff --git a/public/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md b/public/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md index 3f1a8b3b7e5..5ea32476a61 100644 --- a/public/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md +++ b/public/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md @@ -18,7 +18,7 @@ Para as pessoas que aprendem melhor de forma visual, assistam ao vídeo do Luka Você precisará fazer login na sua conta do Crowdin ou criar uma conta, caso ainda não tenha. Você só precisa de uma conta de e-mail e senha para se cadastrar. - + Junte-se ao projeto diff --git a/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md index 18e42ed6009..b782878b951 100644 --- a/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Qualquer pessoa autorizada a transferir um token, tem permissão para queimá-lo. Enquanto uma queima aparece equivalente à transferência para o endereço zero, o endereço zero não recebe de verdade o token. Isso permite-nos liberar todo o armazenamento usado pelo token, o que pode reduzir o custo de gás da transação. -# Usando este contrato {#using-contract} +## Usando este contrato {#using-contract} Ao contrário do Solidity, o Vyper não tem herança. Esta é uma escolha de design deliberada para tornar o código mais claro e, com isso, mais fácil de proteger. Portanto, para criar seu próprio contrato Vyper ERC-721, você usa [este contrato](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) e o modifica para implementar a lógica comercial que você desejar. -## Conclusão {#conclusion} +### Conclusão {#conclusion} Recapitulando, aqui estão algumas das ideias mais importantes neste contrato: diff --git a/public/content/translations/pt-br/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/pt-br/developers/tutorials/waffle-test-simple-smart-contract/index.md index 8d2d9f44d07..ccbdae1f85b 100644 --- a/public/content/translations/pt-br/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/pt-br/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - Você tem usado gerenciadores de pacotes como Yarn ou NPM - Você possui um conhecimento muito básico de contratos inteligentes e Solidity -# Introdução {#getting-started} +## Introdução {#getting-started} O tutorial demonstra a configuração do teste e a execução usando yarn, mas não há problema se você preferir npm - Eu fornecerei referências adequadas a [documentação](https://ethereum-waffle.readthedocs.io/en/latest/index.html) oficial do Waffle. -## Instalando Dependências {#install-dependencies} +### Instalando Dependências {#install-dependencies} [Adicione](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation) as dependências do ethereum-waffle e typescript às dependências de desenvolvimento do seu projeto. @@ -37,7 +37,7 @@ O tutorial demonstra a configuração do teste e a execução usando yarn, mas n yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## Exemplo de contrato inteligente {#example-smart-contract} +### Exemplo de contrato inteligente {#example-smart-contract} Durante o tutorial, nós trabalharemos em um exemplo de contrato inteligente simples - EtherSplitter. Não faz nada de mais, além de permitir que qualquer um envie somas em wei e divida-as igualmente entre dois destinatários predefinidos. A função split exige que a quantidade de wei seja par, caso contrário, ela será anulada. Para ambos os destinatários, ela realiza uma transferência em wei, seguido da emissão do evento Transferir. @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## Compilar o contrato {#compile-the-contract} +### Compilar o contrato {#compile-the-contract} Para [compilar](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract) o contrato, adicione a seguinte entrada ao arquivo package.json: @@ -90,7 +90,7 @@ Em seguida, crie o arquivo de configuração do Waffle, no diretório raiz do pr Execute `yarn build`. Como resultado, o diretório `build` aparecerá com o contrato compilado, EtherSplitter, no formato JSON. -## Teste de configuração {#test-setup} +### Teste de configuração {#test-setup} Testar com Waffle requer usar os matchers (comparadores) Chai e Mocha, então você precisa [adicionar](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) ao seu projeto. Atualize seu arquivo package.json e adicione a entrada `test` na parte de scripts: @@ -103,7 +103,7 @@ Testar com Waffle requer usar os matchers (comparadores) Chai e Mocha, então vo Se você quiser [executar](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests) seus testes, basta executar `yarn test`. -# Testando {#testing} +## Testando {#testing} Agora crie o diretório `test` e crie o novo arquivo `test\EtherSplitter.test.ts`. Copie o trecho de código abaixo e cole-o em nosso arquivo de teste. @@ -134,7 +134,7 @@ Algumas palavras antes de começarmos. O `MockProvider` vem com uma versão em m Em seguida, declaramos uma variável chamada 'splitter' - este é o nosso contrato mock EtherSplitter. Ele é criado antes de cada execução de um único teste pelo método `deployContract`. Este método simula a implantação de um contrato, da carteira passada como primeiro parâmetro (a carteira do remetente em nosso caso). O segundo parâmetro é a ABI e o bytecode do contrato testado — passamos para lá o arquivo json do contrato EtherSplitter compilado no diretório `build`. O terceiro parâmetro é uma matriz com os argumentos do construtor do contrato que, no nosso caso, são os dois endereços dos destinatários. -## changeBalances {#changebalances} +### changeBalances {#changebalances} Primeiro, verificaremos se o método split realmente altera os saldos das carteiras dos destinatários. Se dividirmos 50 wei da conta do remetente, nós esperaríamos que os saldos de ambos os destinatários aumentassem em 25 wei. Nós usaremos o matcher `changeBalances` do Waffle: @@ -162,7 +162,7 @@ Observe que, em ambos os casos de `changeBalance` e de `changeBalances`, transmi A seguir, testaremos se o evento Transfer foi emitido após cada transferência de wei. Vamos passar para outro comparador do Waffle: -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { O matcher `emit` nos permite verificar, se um contrato emitiu um evento ao chamar um método. Como parâmetros para o matcher `emit`, nós fornecemos o mock do contrato, que prevemos para emitir o evento, juntamente com o nome desse evento. Em nosso caso, o contrato simulado é o `splitter` e o nome do evento é `Transfer`. Nós também podemos verificar os valores precisos dos argumentos, com os quais o evento foi emitido - nós passamos tantos argumentos para o matcher `withArgs`, como espera a nossa declaração de evento. No caso do contrato EtherSplitter, passamos os endereços do remetente e do destinatário, juntamente com a quantia de wei transferida. -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} Como último exemplo, nós verificaremos se a transação foi revertida, em caso de número desigual de wei. Usaremos o matcher `revertedWith`: @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { O teste, se aprovado, nos garantirá que a transação foi revertida de fato. No entanto, também deve haver uma correspondência exata entre as mensagens que passamos, na instrução `require` e a mensagem que esperamos em `revertedWith`. Se voltarmos ao código do contrato EtherSplitter, na declaração `require` para a quantidade wei, fornecemos a mensagem: 'Quantidade de wei desigual não permitida'. Isso corresponde à mensagem que esperamos em nosso teste. Se eles não fossem iguais, o teste falharia. -# Parabéns! {#congratulations} +## Parabéns! {#congratulations} Você acabou de dar seu primeiro grande passo para testar contratos inteligentes com Waffle! Caso esteja interessado em outros tutoriais do Waffle: diff --git a/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md index d64c0889b48..95a18023ef2 100644 --- a/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Oricine este autorizat să transfere un token este autorizat să îl și ardă. În timp ce arderea pare echivalentul unui transfer la adresa zero, această adresă nu primește de fapt tokenul. Aceasta ne permite să eliberăm tot spațiul de stocare folosit pentru token, ceea ce poate reduce costul de gaz al tranzacției. -# Utilizarea acestui contract {#using-contract} +## Utilizarea acestui contract {#using-contract} Spre deosebire de Solidity, Vyper nu are funcția de moștenire. Aceasta este o opțiune deliberată de concepție, pentru a conferi claritate codului, facilitându-i prin aceasta securizarea. Deci, pentru a vă crea propriul contract Vyper ERC-721, porniți de la [acest contract](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) și modificați-l pentru a implementa logica operațională pe care o doriți. -## Concluzie {#conclusion} +### Concluzie {#conclusion} În recapitulare, iată câteva din cele mai importante idei din acest contract: diff --git a/public/content/translations/sr/contributing/adding-layer-2s/index.md b/public/content/translations/sr/contributing/adding-layer-2s/index.md index 0d58a692af2..17e18780720 100644 --- a/public/content/translations/sr/contributing/adding-layer-2s/index.md +++ b/public/content/translations/sr/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Ne uzimamo u obzir druga rešenja za skaliranje koja ne koriste Ethereum za dos Ukoliko želite da dodate nivo 2 na ethereum.org, kreirajte upit na GitHub-u. - + Kreirajte upit diff --git a/public/content/translations/sr/contributing/content-resources/index.md b/public/content/translations/sr/contributing/content-resources/index.md index 6bf7e0c6ca8..d5195ee4b48 100644 --- a/public/content/translations/sr/contributing/content-resources/index.md +++ b/public/content/translations/sr/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Edukativni resursi će biti ocenjivani prema sledećim kriterijumima: Ukoliko želite da dodate resurs za sadržaj na ethereum.org i ukoliko taj izvor ispunjava kriterijume, kreirajte upit na GitHub-u. - + Kreirajte upit diff --git a/public/content/translations/tr/contributing/adding-layer-2s/index.md b/public/content/translations/tr/contributing/adding-layer-2s/index.md index df1fcf7283c..4952c0b9de5 100644 --- a/public/content/translations/tr/contributing/adding-layer-2s/index.md +++ b/public/content/translations/tr/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Veri kullanılabilirliği veya güvenlik için Ethereum kullanmayan diğer öl Ethereum.org'a bir katman 2 eklemek istiyorsanız, GitHub'da bir konu oluşturun. - + Bir konu oluştur diff --git a/public/content/translations/tr/contributing/content-resources/index.md b/public/content/translations/tr/contributing/content-resources/index.md index 36e8c9acd26..ea6e40165e1 100644 --- a/public/content/translations/tr/contributing/content-resources/index.md +++ b/public/content/translations/tr/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Bir sayfaya eklenmesi gerektiğini düşündüğünüz bir içerik kaynağı var Eğer ethereum.org'a içerik kaynağı eklemek istiyorsanız ve kriterleri karşılıyorsa GitHub'da bir konu oluşturun. - + Bir konu oluştur diff --git a/public/content/translations/tr/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/tr/developers/docs/design-and-ux/dex-design-best-practice/index.md index 3c4c848be03..a0202ec96af 100644 --- a/public/content/translations/tr/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/tr/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -179,7 +179,7 @@ Yakınlık yasası, birbirine yakın duran öğelerin birbiriyle alakalı olarak Sonuç olarak, iki seçeneğin de artıları ve eksileri vardır fakat jetonun sağa yerleştirilmesi ilginç bir şekilde daha popülerdir. -# Buton davranışı {#button-behavior} +## Buton davranışı {#button-behavior} Onaylama için ayrı bir buton oluşturmayın. Onaylama için ayrı bir tıklamaya da gerek olmasın. Kullanıcı Takas yapmak istiyor, butona “swap” deyin ve ilk adım olarak onayı başlatın. Bir mod, bir adımlayıcı ile ilerlemeyi veya basit bir "tx 1/2 - onaylanıyor" bildirimini gösterebilir. @@ -187,7 +187,7 @@ Onaylama için ayrı bir buton oluşturmayın. Onaylama için ayrı bir tıklama ![Onayla yazan tek bir butona sahip bir UI](./15.png) -## Bağlamsal yardım olarak buton {#button-as-contextual-help} +### Bağlamsal yardım olarak buton {#button-as-contextual-help} Bu buton bir uyarı görevi de görebilir! @@ -205,7 +205,7 @@ Buton, aynı zamanda gerçekleştirilmesi gereken **eylemle de eşleştirilebili ![Ana CTA içinde gösterilen hata mesajı](./17.png) -## Bu figma dosyasıyla kendinizinkini oluşturun {#build-your-own-with-this-figma-file} +### Bu figma dosyasıyla kendinizinkini oluşturun {#build-your-own-with-this-figma-file} Birçok farklı protokolün sıkı çalışması sayesinde merkeziyetsiz borsa tasarımı oldukça ilerledi. Kullanıcının hangi bilgilere ihtiyacı olduğunu, bu bilgileri nasıl göstermemiz gerektiğini ve bu akışı nasıl mümkün olabildiğince düzgün yapabileceğimizi biliyoruz. Bu makalenin UX prensipleriyle ilgili sağlam bir temel sunabildiğini umarız. diff --git a/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md index d3010de1966..25254b47a84 100644 --- a/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Bir token'ı transfer etmesine izin verilen herkesin onu yakmasına izin verilir. Bir yakma işlemi, sıfır adresine aktarıma eş değer görünse de, sıfır adresi aslında token'ı almaz. Bu, token için kullanılan tüm depolama alanını boşaltmamızı sağlar ve bu da işlemin gasz maliyetini azaltabilir. -# Bu Sözleşmeyi Kullanmak {#using-contract} +## Bu Sözleşmeyi Kullanmak {#using-contract} Solidity'nin aksine, Vyper'ın kalıtımı yoktur. Bu, kodu daha net hâle getirmek ve dolayısıyla güvenliğini sağlamak için bilinçli bir tasarım seçimidir. Bu nedenle, kendi Vyper ERC-721 sözleşmenizi oluşturmak için [bu sözleşmeyi](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) alın ve istediğiniz iş mantığını uygulamak için değiştirin. -## Sonuç {#conclusion} +### Sonuç {#conclusion} İnceleme için, bu sözleşmedeki en önemli fikirlerden bazıları şunlardır: diff --git a/public/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md index 20b01d0d49e..8c71275ad41 100644 --- a/public/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - Yarn ya da npm gibi bazı paket yöneticilerini daha önce kullandınız - Akıllı sözleşmeler ve Solidity ile ilgili giriş seviyesinde bilgi sahibisiniz -# Başlarken {#getting-started} +## Başlarken {#getting-started} Bu öğretici, yarn kullanarak test kurulumunu ve çalıştırmasını göstermektedir ancak npm tercihinde bulunmanız da sorun teşkil etmez. Resmi Waffle [dokümanlarına](https://ethereum-waffle.readthedocs.io/en/latest/index.html) uygun referanslar sunacağım. -## Bağımlılıkları Yükleme {#install-dependencies} +### Bağımlılıkları Yükleme {#install-dependencies} Ethereum-waffle ve typescript bağımlılıklarını projenizin dev bağımlılıklarına [ekleyin](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation). @@ -37,7 +37,7 @@ Ethereum-waffle ve typescript bağımlılıklarını projenizin dev bağımlıl yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## Örnek akıllı sözleşme {#example-smart-contract} +### Örnek akıllı sözleşme {#example-smart-contract} Öğretici boyunca basit bir akıllı sözleşme örneği olan EtherSplitter üzerinde çalışacağız. Bu, herhangi birinin belirli bir miktarda wei göndermesine ve bu miktarı önceden tanımlanmış iki alıcı arasında eşit olarak bölmesine izin vermenin haricinde pek bir şey yapmaz. Bölme işleminin gerçekleşmesi için wei sayısının çift olması gerekir, aksi takdirde işlem geri döner. Her iki alıcı için de, önce bir wei transferi ve ardından Transfer olayı gerçekleştirilir. @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## Sözleşmeyi derleme {#compile-the-contract} +### Sözleşmeyi derleme {#compile-the-contract} Sözleşmeyi [derlemek](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract) için aşağıdaki girdiyi package.json dosyasına ekleyin: @@ -90,7 +90,7 @@ Sonraki adım olarak, proje kök dizininde - `waffle.json` - Waffle yapılandır `yarn build` komutunu çalıştırın. Sonuç olarak, JSON formatında derlenmiş EtherSplitter sözleşmesinin bulunduğu `build` dizini görünecektir. -## Test kurulumu {#test-setup} +### Test kurulumu {#test-setup} Waffle ile test yapmak için Chai eşleştiricilerini ve Mocha'yı kullanmanız gerekeceğinden, bunları projenize [eklemeniz](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) gerekir. Package.json dosyanızı güncelleyin ve komut dosyaları bölümüne `test` girdisini ekleyin: @@ -103,7 +103,7 @@ Waffle ile test yapmak için Chai eşleştiricilerini ve Mocha'yı kullanmanız Eğer testlerinizi [çalıştırmak](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests) istiyorsanız, sadece `yarn test` komutunu çalıştırmanız yeterlidir. -# Test {#testing} +## Test {#testing} Şimdi `test` dizinini ve `test\EtherSplitter.test.ts` yeni dosyasını oluşturun. Aşağıdaki kod parçasını kopyalayın ve test dosyanıza yapıştırın. @@ -134,7 +134,7 @@ Başlamadan önce bir kaç kelime. `MockProvider`, blokzinciri taklit eden bir s Sonraki adımda, "splitter" adında bir değişken tanımlıyoruz; bu, taklit EtherSplitter sözleşmemizdir. Bu, tek bir testin her yürütülmesinden önce `deployContract` yöntemi ile oluşturulur. Bu yöntem, ilk parametre olarak aktarılan cüzdandan (bizim durumumuzda göndericinin cüzdanı) bir sözleşmenin dağıtımını simüle eder. İkinci parametre, test edilen sözleşmenin ABI'si ve bit kodudur; burada `build` dizininden derlenmiş EtherSplitter sözleşmesinin json dosyasını aktarıyoruz. Üçüncü parametre, sözleşmenin oluşturucu argümanlarının bir dizisidir; bizim durumumuzda ise alıcıların iki adresidir. -## changeBalances {#changebalances} +### changeBalances {#changebalances} İlk olarak, bölme yönteminin alıcıların cüzdan bakiyelerini gerçekten değiştirip değiştirmediğini kontrol edeceğiz. Eğer gönderen hesaptan 50 wei bölersek, her iki alıcının bakiyelerinin de 25 wei artmasını bekleriz. Waffle'ın `changeBalances` eşleştiricisini kullanacağız: @@ -162,7 +162,7 @@ Hem `changeBalance` hem de `changeBalances` durumlarında, eşleştiricinin ça Sonra, her wei transferi sonrası Transfer olayının yayımlanıp yayımlanmadığını test ediyoruz. Waffle'daki başka bir eşleştiriciye geçeceğiz: -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { `emit` eşleştiricisi, bir sözleşmenin bir yöntemi çağırırken bir etkinlik yayımlayıp yayımlamadığını kontrol etmemizi sağlar. `emit` eşleştiricisinin parametreleri olarak, olayı yayımlayacağını tahmin ettiğimiz taklit sözleşmeyi ve bu olayın adını sağlıyoruz. Bizim durumumuzda, taklit sözleşme `splitter` ve olayın adı `Transfer`'dir. Ayrıca, olayın yayımlandığı sırada verilen argümanların kesin değerlerini de doğrulayabiliriz; `withArgs` eşleştiricisine, olay bildirimi beklediğimiz sayıda argümanı aktarırız. EtherSplitter sözleşmesi durumunda ise, gönderici ve alıcının adresleri ile transfer edilen wei miktarını aktarırız. -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} Son örnek olarak, wei miktarının çift olmadığı durumlarda işlemin geri dönüp dönmediğini kontrol edeceğiz. `revertedWith` eşleştiricisini kullanacağız: @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { Eğer test başarılı olursa, işlemin gerçekten geri döndüğüne emin olacağız. Ancak `require` ifadesine aktardığımız mesajlar ile `revertedWith` içinde beklediğimiz mesaj arasında kesin bir eşleşme olmalıdır. EtherSplitter sözleşmesinin koduna geri dönersek, wei miktarı için `require` ifadesine mesaj olarak "Tek wei miktarına izin verilmiyor" ifadesini giriyoruz. Bu, testimizde beklediğimiz mesajla eşleşir. Eğer eşit değillerse, test başarısız olacaktır. -# Tebrikler! {#congratulations} +## Tebrikler! {#congratulations} Waffle ile akıllı sözleşmeleri test etmenin ilk büyük adımını tamamladınız! Diğer Waffle öğreticileri de ilginizi çekebilir: diff --git a/public/content/translations/zh-tw/contributing/adding-layer-2s/index.md b/public/content/translations/zh-tw/contributing/adding-layer-2s/index.md index 9a6c4a5bd46..3e476220719 100644 --- a/public/content/translations/zh-tw/contributing/adding-layer-2s/index.md +++ b/public/content/translations/zh-tw/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _我們認為,其他不使用以太坊來實現資料可用性或安全性的 如果你想在 ethereum.org 上新增二層網路層,請在 GitHub 上建立議題。 - + 建立一個議題 diff --git a/public/content/translations/zh-tw/contributing/content-resources/index.md b/public/content/translations/zh-tw/contributing/content-resources/index.md index 51cc723e439..0b1107dfa00 100644 --- a/public/content/translations/zh-tw/contributing/content-resources/index.md +++ b/public/content/translations/zh-tw/contributing/content-resources/index.md @@ -27,6 +27,6 @@ description: 我們在 ethereum.org 上列出內容資源的標準 如果你想將內容資源新增至 ethereum.org 並且它符合標準,請在 GitHub 上建立一個議題。 - + 創建一個議題 diff --git a/public/content/translations/zh/contributing/adding-layer-2s/index.md b/public/content/translations/zh/contributing/adding-layer-2s/index.md index d57ce9f51d1..2aec168e548 100644 --- a/public/content/translations/zh/contributing/adding-layer-2s/index.md +++ b/public/content/translations/zh/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _我们认为,其他不使用以太坊来实现数据可用性或安全性的 如果你想将二层网络添加到 ethereum.org,请在 GitHub 上创建一个提议。 - + 创建一个提议 diff --git a/public/content/translations/zh/contributing/content-resources/index.md b/public/content/translations/zh/contributing/content-resources/index.md index c9f33cd0bab..049361ca6ba 100644 --- a/public/content/translations/zh/contributing/content-resources/index.md +++ b/public/content/translations/zh/contributing/content-resources/index.md @@ -27,6 +27,6 @@ description: 在 ethereum.org 上上架内容资源的标准 如果你想要将内容资源添加到 ethereum.org,并且该内容资源符合标准,请在 GitHub 上创建一个提议。 - + 创建一个提议 diff --git a/public/content/translations/zh/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/zh/developers/docs/design-and-ux/dex-design-best-practice/index.md index c4912ed77a6..92e6b7c2c7f 100644 --- a/public/content/translations/zh/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/zh/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ Figma 工具包也附于本文底部 - 请随意使用,快速制作你自己 总的来说,两种选择各有优缺点,但有趣的是,当前的趋势似乎是将代币放在右边。 -# 按钮行为 {#button-behavior} +## 按钮行为 {#button-behavior} 不要有单独的“批准”按钮。 也不要单独点击“批准”。 用户想要交换,只需要点击“交换”按钮,并启动批准来作为第一步。 可以用一个模态,通过计步器显示交易进度,或者显示简单通知“交易 1/2 - 正在批准”。 @@ -188,7 +188,7 @@ Figma 工具包也附于本文底部 - 请随意使用,快速制作你自己 ![包含一个批准按钮的用户界面](./15.png) -## 用作上下文帮助的按钮 {#button-as-contextual-help} +### 用作上下文帮助的按钮 {#button-as-contextual-help} 按钮可以起到另一个作用 - 作为警报! @@ -206,7 +206,7 @@ Figma 工具包也附于本文底部 - 请随意使用,快速制作你自己 ![主要行动号召中显示的错误信息](./17.png) -## 使用此 figma 文件构建你自己的设计 {#build-your-own-with-this-figma-file} +### 使用此 figma 文件构建你自己的设计 {#build-your-own-with-this-figma-file} 得益于多个协议的共同作用,去中心化交易所设计已经有了显著改进。 我们知道用户需要哪些信息,应该如何展示这些信息,以及如何使流程尽可能流畅。 希望这篇文章提供了关于用户体验原则的全面概述。 diff --git a/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md index ba75f08b2d5..b22617d525b 100644 --- a/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): 任何可以转移代币的人都可以销毁它。 虽然销毁代币看起来等同于 转移到零地址,但零地址实际上并没有接收到代币。 这样我们可以释放所有用于代币的 存储,因而可以降低交易的燃料成本。 -# 使用此合约 {#using-contract} +## 使用此合约 {#using-contract} 与 Solidity 相比,Vyper 中没有继承。 这种有意而为之的设计选择,是为了使代码 更清晰,从而更容易受保护。 因此,要创建你自己的 Vyper ERC-721 合约,你可以 利用[此合约](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy),并修改 它以实现想要的业务逻辑。 -## 总结 {#conclusion} +### 总结 {#conclusion} 回顾一下,下面是此合约中最重要的几点: diff --git a/public/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md index cb94430a192..6db470f76db 100644 --- a/public/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - 你使用过一些包管理器,如 yarn 或 npm - 你拥有关于智能合约和 Solidity 的非常基础的知识 -# 入门指南 {#getting-started} +## 入门指南 {#getting-started} 该教程演示了如何使用 yarn 进行测试设置和运行,但如果你更喜欢使用 npm 也没有问题——我将为你提供官方 Waffle [文档](https://ethereum-waffle.readthedocs.io/en/latest/index.html)的参考链接。 -## 安装依赖项 {#install-dependencies} +### 安装依赖项 {#install-dependencies} 将 ethereum-waffle 和 typescript 依赖项[添加](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation)到你的项目的开发依赖项中。 @@ -37,7 +37,7 @@ published: 2021-02-26 yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## 智能合约示例 {#example-smart-contract} +### 智能合约示例 {#example-smart-contract} 在本教程中,我们将使用一个简单的智能合约示例- EtherSplitter。 它的作用无非是允许任何人发送一些以 wei 为单位的以太币,并平均分配给两个预定义的接收者。 Split 函数需要 wei 的数量是偶数,否则会回滚。 对于两个接收者,它都会执行 wei 转账,然后触发 Transfer 转账事件。 @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## 编译合约 {#compile-the-contract} +### 编译合约 {#compile-the-contract} 要[编译](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract)该合约,请将以下条目添加到 package.json 文件中: @@ -90,7 +90,7 @@ contract EtherSplitter { 运行 `yarn build`。 作为结果,将出现 `build` 目录,并包含以 JSON 格式编译的 EtherSplitter 合约。 -## 测试设置 {#test-setup} +### 测试设置 {#test-setup} 使用 Waffle 进行测试需要使用 Chai 匹配器和 Mocha,因此你需要将它们[添加](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests)到你的项目中。 请更新你的 package.json 文件,在 scripts 部分添加 `test` 条目: @@ -103,7 +103,7 @@ contract EtherSplitter { 如果你想要[执行](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests)你的测试,只需要运行 `yarn test`。 -# 测试 {#testing} +## 测试 {#testing} 现在创建 `test` 目录,并创建一个新文件 `test\EtherSplitter.test.ts`。 复制下面的代码片段,并粘贴到我们的测试文件中。 @@ -134,7 +134,7 @@ describe("Ether Splitter", () => { 下一步,我们声明一个名为“splitter”的变量 - 这是我们的模拟 EtherSplitter 合约。 它在每次执行单个测试之前通过 `deployContract` 方法创建。 这个方法模拟了从钱包(作为第一个参数进行传递,在我们的例子中是发送者的钱包)部署合约的过程。 第二个参数是被测试合约的 ABI 和字节码,我们传入了从 `build` 目录中编译的 EtherSplitter 合约的 JSON 文件。 第三个参数是一个数组,包含合约的构造函数参数,在我们的例子中,它是接收者的两个地址。 -## changeBalances {#changebalances} +### changeBalances {#changebalances} 首先,我们将检查 split 方法是否确实更改了接收者钱包的余额。 如果我们从发送者帐户中拆分 50 wei,我们预计两个接收者的余额都会增加 25 wei。 我们将使用 Waffle 的 `changeBalances` 匹配器: @@ -162,7 +162,7 @@ it("Changes account balance", async () => { 接下来,我们将测试是否在每次 wei 转账后触发了 Transfer 转账事件。 我们将转向 Waffle 中的另一个匹配器: -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { `emit` 匹配器允许我们检查合约在调用方法时是否触发了事件。 作为 `emit` 匹配器的参数,我们提供我们预测将触发事件的模拟合约,以及该事件的名称。 在我们的例子中,模拟合约是 `splitter`,事件名称为 `Transfer`。 我们还可以验证事件触发时使用的具体参数值 - 我们向 `withArgs` 匹配器传递的参数数量应该与我们事件声明所期望的参数数量相同。 对于 EtherSplitter 合约,我们需要传递发送者和接收者的地址,以及转移的 wei 数量作为参数。 -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} 作为最后一个例子,我们将检查如果 wei 数量拆分不均匀时是否回滚了交易。 我们将使用 `revertedWith` 匹配器: @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { 如果测试通过,这将确保该交易确实已被回滚。 然而,在 `require` 语句中传递的消息和我们在 `revertedWith` 中期望的消息之间也必须完全匹配。 如果我们回到 EtherSplitter 合约的代码中,在关于 wei 数量的 `require` 语句中,我们提供了这样的信息:“Uneven wei amount not allowed”(不允许 wei 数量不均匀)。 这与我们在测试中期望的消息相匹配。 如果它们不相等,则测试将失败。 -# 恭喜你! {#congratulations} +## 恭喜你! {#congratulations} 你已经迈出了使用 Waffle 测试智能合约的第一步! 你可能对其它的 Waffle 教程感兴趣: diff --git a/src/components/ui/Link.tsx b/src/components/ui/Link.tsx index ba948f3fd73..12e7e301b2b 100644 --- a/src/components/ui/Link.tsx +++ b/src/components/ui/Link.tsx @@ -57,6 +57,7 @@ export const BaseLink = forwardRef(function Link( const { twFlipForRtl } = useRtlFlip() if (!href) { + // If troubleshooting this warning, check for multiple h1's in markdown content—these will result in broken id hrefs console.warn(`Link component missing href prop, pathname: ${pathname}`) return } diff --git a/src/intl/ca/page-what-is-ethereum.json b/src/intl/ca/page-what-is-ethereum.json index aa4fca540d6..1caffe65aa5 100644 --- a/src/intl/ca/page-what-is-ethereum.json +++ b/src/intl/ca/page-what-is-ethereum.json @@ -54,7 +54,7 @@ "page-what-is-ethereum-slide-1-desc-2": "Ethereum i les stablecoins simplifiquen el procés d'enviament de diners a l'estranger. Sovint es triga només uns minuts a moure els fons a tot el món, en lloc d'esperar dies hàbils o fins i tot setmanes, i per una fracció del preu. A més, no hi ha cap comissió addicional per realitzar una transacció de gran valor, i no hi ha restriccions sobre on o per què s'envia els diners.", "page-what-is-ethereum-slide-2-title": "L'ajuda més ràpida en temps de crisi", "page-what-is-ethereum-slide-2-desc-1": "Si teniu la sort de comptar amb múltiples opcions bancàries a través d'institucions de confiança en el lloc on viviu, la llibertat d'elecció, la seguretat i estabilitat financera que ofereixen estan garantides. Però per a moltes persones de tot el món que s'enfronten a la repressió política o a les dificultats econòmiques, les institucions financeres poden no oferir la protecció o els serveis que necessiten.", - "page-what-is-ethereum-slide-2-desc-2": "Quan la guerra, les catàstrofes econòmiques o les mesures energètiques contra les llibertats civils van afectar els residents de Veneçuela, Cuba, Afganistan, Nigèria, Bielorússia i Ucraïna les criptomonedes van constituir la més ràpida i, sovint, l'única opció per a retenir agència financera. 1 Com es veu en aquests exemples, les criptomonedes com Ethereum poden proporcionar accés sense restriccions a l'economia global quan les persones estan aïllades del món exterior. A més, els \"stablecoins\" (monedes estables) ofereixen una botiga de valor quan les monedes locals s'estan col·lapsant a causa de la hiperinflació.", + "page-what-is-ethereum-slide-2-desc-2": "Quan la guerra, les catàstrofes econòmiques o les mesures energètiques contra les llibertats civils van afectar els residents de Veneçuela, Cuba, Afganistan, Nigèria, Bielorússia i Ucraïna les criptomonedes van constituir la més ràpida i, sovint, l'única opció per a retenir agència financera. 1 Com es veu en aquests exemples, les criptomonedes com Ethereum poden proporcionar accés sense restriccions a l'economia global quan les persones estan aïllades del món exterior. A més, els \"stablecoins\" (monedes estables) ofereixen una botiga de valor quan les monedes locals s'estan col·lapsant a causa de la hiperinflació.", "page-what-is-ethereum-slide-3-title": "Empoderant creadors", "page-what-is-ethereum-slide-3-desc-1": "Només en 2021, artistes, músics, escriptors i altres creadors van utilitzar Ethereum per a guanyar al voltant de 3.500 milions de dòlars en conjunt. Això converteix a Ethereum en una de les majors plataformes globals per a creadors, juntament amb Spotify, YouTube i Etsy. Més informació..", "page-what-is-ethereum-slide-4-title": "Empoderant jugadors", diff --git a/src/intl/cs/page-what-is-ethereum.json b/src/intl/cs/page-what-is-ethereum.json index c3a818df38d..d910793d8de 100644 --- a/src/intl/cs/page-what-is-ethereum.json +++ b/src/intl/cs/page-what-is-ethereum.json @@ -54,7 +54,7 @@ "page-what-is-ethereum-slide-1-desc-2": "Ethereum a stablecoiny zjednodušují proces posílání peněz do zahraničí. Přesun finančních prostředků po celém světě často trvá jen několik minut a za zlomek ceny, na rozdíl od průměrných bank, kterým to trvá několik pracovních dnů nebo dokonce týdnů. Kromě toho neexistuje žádný dodatečný poplatek za provedení transakce s vysokou hodnotou a existují nulová omezení toho, kde nebo proč posíláte své peníze.", "page-what-is-ethereum-slide-2-title": "Nejrychlejší pomoc v době krize", "page-what-is-ethereum-slide-2-desc-1": "Máte-li to štěstí, že máte více možností bankovnictví prostřednictvím důvěryhodných institucí, kde žijete, můžete považovat za samozřejmou finanční svobodu, bezpečnost a stabilitu, kterou nabízejí. Pro mnoho lidí po celém světě, kteří čelí politické represi nebo hospodářským těžkostem, však finanční instituce nemusí poskytovat potřebnou ochranu nebo služby.", - "page-what-is-ethereum-slide-2-desc-2": "Během války, kdy ekonomické katastrofy a potlačování občanských svobod dopadaly na obyvatele Venezuely, Kuby, Afghánistánu, Nigérie, Běloruska a Ukrajiny, představovaly kryptoměny nejrychlejší a často jedinou možnost, jak si zachovat finanční nezávislost. 1 Jak je vidět na těchto příkladech, kryptoměny jako Ethereum mohou poskytnout neomezený přístup ke globální ekonomice v případech, kdy jsou lidé odříznuti od okolního světa. Stablecoiny navíc nabízejí uchování hodnoty, když se místní měny hroutí v důsledku hyperinflace.", + "page-what-is-ethereum-slide-2-desc-2": "Během války, kdy ekonomické katastrofy a potlačování občanských svobod dopadaly na obyvatele Venezuely, Kuby, Afghánistánu, Nigérie, Běloruska a Ukrajiny, představovaly kryptoměny nejrychlejší a často jedinou možnost, jak si zachovat finanční nezávislost. 1 Jak je vidět na těchto příkladech, kryptoměny jako Ethereum mohou poskytnout neomezený přístup ke globální ekonomice v případech, kdy jsou lidé odříznuti od okolního světa. Stablecoiny navíc nabízejí uchování hodnoty, když se místní měny hroutí v důsledku hyperinflace.", "page-what-is-ethereum-slide-3-title": "Podpora tvůrců", "page-what-is-ethereum-slide-3-desc-1": "Jen v roce 2021 využili síť Ethereum umělci, hudebníci, spisovatelé a další tvůrci ke kolektivnímu výdělku kolem 3,5 miliardy dolarů. Díky tomu je Ethereum jednou z největších globálních platforem pro tvůrce, vedle Spotify, YouTube a Etsy. Zjistěte více.", "page-what-is-ethereum-slide-4-title": "Podpora hráčů videoher", diff --git a/src/intl/fil/page-what-is-ethereum.json b/src/intl/fil/page-what-is-ethereum.json index 66bae4228f1..e8c515e7300 100644 --- a/src/intl/fil/page-what-is-ethereum.json +++ b/src/intl/fil/page-what-is-ethereum.json @@ -51,7 +51,7 @@ "page-what-is-ethereum-slide-1-desc-2": "Pinapasimple ng Ethereum at stablecoin ang proseso ng pagpapadala ng pera sa ibang bansa. Kadalasan ay tumatagal lang nang ilang minuto upang ilipat ang pondo sa buong mundo, kumpara sa ilang araw na may pasok o baka ilang linggo pa na maaaring tagal sa inyong average na bangko, at nang mas mababa talaga ang presyo. Bukod pa rito, walang dagdag na bayad para sa paggawa ng isang transaksyong may mataas na halaga, at walang mga paghihigpit sa kung saan o bakit ninyo ipinapadala ang inyong pera.", "page-what-is-ethereum-slide-2-title": "Ang Pinakamabilis na Tulong sa Panahon ng Krisis", "page-what-is-ethereum-slide-2-desc-1": "Kung mapalad kayong magkaroon ng maraming opsyon sa banking sa mga pinagkakatiwalaang institusyon kung saan kayo nakatira, maaaring hindi ninyo masyadong pinahahalagahan ang kalayaan, seguridad at katatagan sa pananalapi na ibinibigay ng mga ito. Ngunit para sa maraming tao sa buong mundo na nahaharap sa pampulitikang panunupil o kahirapan sa ekonomiya, ang mga institusyong pampinansyal ay maaaring hindi nagbibigay ng proteksyon o mga serbisyong kailangan nila.", - "page-what-is-ethereum-slide-2-desc-2": "Noong digmaan, ang mga sakuna sa ekonomiya o pagsugpo sa mga kalayaang sibil ay tumama sa mga residente ng Venezuela, Cuba, Afghanistan, Nigeria, Belarus, and Ukraine, ang mga cryptocurrency ay naging pinakamabilis at karaniwan ay tanging opsyon para magkaroon ng pinansyal na kalayaan.1 Tulad ng nakikita sa mga halimbawang ito, ang mga cryptocurrency tulad ng Ethereum ay maaaring magbigay ng hindi mapipigilang pag-access sa pandaigdigang ekonomiya kapag ang mga tao ay nawalay sa labas ng mundo. Bukod pa rito, nag-aalok ang mga stablecoin ng pag-iimbak ng halaga kapag bumabagsak ang mga lokal na pera dahil sa sobrang implasyon.", + "page-what-is-ethereum-slide-2-desc-2": "Noong digmaan, ang mga sakuna sa ekonomiya o pagsugpo sa mga kalayaang sibil ay tumama sa mga residente ng Venezuela, Cuba, Afghanistan, Nigeria, Belarus, and Ukraine, ang mga cryptocurrency ay naging pinakamabilis at karaniwan ay tanging opsyon para magkaroon ng pinansyal na kalayaan.1 Tulad ng nakikita sa mga halimbawang ito, ang mga cryptocurrency tulad ng Ethereum ay maaaring magbigay ng hindi mapipigilang pag-access sa pandaigdigang ekonomiya kapag ang mga tao ay nawalay sa labas ng mundo. Bukod pa rito, nag-aalok ang mga stablecoin ng pag-iimbak ng halaga kapag bumabagsak ang mga lokal na pera dahil sa sobrang implasyon.", "page-what-is-ethereum-slide-3-title": "Pagpapalakas ng mga Tagalikha", "page-what-is-ethereum-slide-3-desc-1": "Noong 2021 lamang, ginamit ng mga artist, musikero, manunulat, at iba pang creator ang Ethereum para kumita ng humigit-kumulang $3.5 bilyon sa kabuuan. Ginagawa nitong isa ang Ethereum sa pinakamalaking pandaigdigang platform para sa mga creator, kasama ng Spotify, YouTube, at Etsy. Matuto pa.", "page-what-is-ethereum-slide-4-title": "Pagpapalakas sa mga Manlalaro", diff --git a/src/intl/it/page-what-is-ethereum.json b/src/intl/it/page-what-is-ethereum.json index 591cb7eeb90..8f06f82090c 100644 --- a/src/intl/it/page-what-is-ethereum.json +++ b/src/intl/it/page-what-is-ethereum.json @@ -54,7 +54,7 @@ "page-what-is-ethereum-slide-1-desc-2": "Ethereum e gli stablecoin semplificano il processo di invio di denaro all'estero. Spesso bastano solo alcuni minuti spostare i fondi in qualunque parte del mondo, rispetto ad alcuni giorni lavorativi o persino settimane che potrebbe impiegare una banca media, e a una frazione del costo. Inoltre, non vi è alcuna commissione aggiuntiva per aver effettuato transazioni di alto valore e non ci sono limitazioni su dove o perché stai inviando il tuo denaro.", "page-what-is-ethereum-slide-2-title": "L'aiuto più rapido nei momenti di crisi", "page-what-is-ethereum-slide-2-desc-1": "Se sei abbastanza fortunato da avere diverse opzioni bancarie tramite le istituzioni fidate dove vivi, potresti dare per scontata la libertà finanziaria, la sicurezza e la stabilità che offrono. Ma per molte persone in tutto il mondo, che affrontano repressione politica o disagio economico, le istituzioni finanziarie potrebbero non fornire la protezione o i servizi che necessitano.", - "page-what-is-ethereum-slide-2-desc-2": "Quando la guerra, catastrofi economiche o repressioni delle libertà civili hanno colpito i cittadini di Venezuela, Cuba, Afghanistan, Nigeria, Bielorussia e Ucraina, le criptovalute sono state l'opzione più veloce e spesso l'unica alternativa per mantenere potere finanziario. 1 Come dimostrato da questi esempi, le criptovalute come Ethereum possono garantire accesso illimitato all'economia globale nel momento in cui le persone vengono escluse dal mondo esterno. Inoltre, le stablecoin conservano valore nei momenti in cui le valute locali collassano a causa dell'iperinflazione.", + "page-what-is-ethereum-slide-2-desc-2": "Quando la guerra, catastrofi economiche o repressioni delle libertà civili hanno colpito i cittadini di Venezuela, Cuba, Afghanistan, Nigeria, Bielorussia e Ucraina, le criptovalute sono state l'opzione più veloce e spesso l'unica alternativa per mantenere potere finanziario. 1 Come dimostrato da questi esempi, le criptovalute come Ethereum possono garantire accesso illimitato all'economia globale nel momento in cui le persone vengono escluse dal mondo esterno. Inoltre, le stablecoin conservano valore nei momenti in cui le valute locali collassano a causa dell'iperinflazione.", "page-what-is-ethereum-slide-3-title": "Dare potere a creatori", "page-what-is-ethereum-slide-3-desc-1": "Nel solo 2021, artisti, musicisti, scrittori e altri creatori hanno usato Ethereum per guadagnare complessivamente circa $3,5 miliardi. Questo rende Ethereum una delle più grandi piattaforme globali per creatori, insieme a Spotify, YouTube ed Etsy. Scopri di più.", "page-what-is-ethereum-slide-4-title": "Dare potere ai giocatori", diff --git a/src/intl/nl/page-what-is-ethereum.json b/src/intl/nl/page-what-is-ethereum.json index e2be2e09d69..87e6b775763 100644 --- a/src/intl/nl/page-what-is-ethereum.json +++ b/src/intl/nl/page-what-is-ethereum.json @@ -51,7 +51,7 @@ "page-what-is-ethereum-slide-1-desc-2": "Ethereum en stablecoins vereenvoudigen het proces van het verzenden van geld naar het buitenalnd. Het duurt vaak maar een paar minuten om fondsen over de hele wereld te verschuiven, dit in tegenstelling tot enkele werkdagen of zelfs weken bij de gemiddelde bank, en voor een fractie van de prijs. Daarnaast zijn er geen extra kosten voor het uitvoeren van een hoge waarde en er zijn geen beperkingen op waar of waarom u uw geld stuurt.", "page-what-is-ethereum-slide-2-title": "De snelste hulp in tijden van crisis", "page-what-is-ethereum-slide-2-desc-1": "Als u het geluk heeft om op een plaats te wonen met meerdere vertrouwde financiële instellingen voor bankzaken, dan zijn financiële vrijheid, veiligheid en stabiliteit vanzelfsprekend voor u. Maar voor veel mensen over de hele wereld die te maken hebben met politieke onderdrukking of economische tegenspoed, bieden de financiële instellingen wellicht niet de bescherming en diensten die zij nodig hebben.", - "page-what-is-ethereum-slide-2-desc-2": "Wanneer oorlog, economische rampen of repressies tegen de burgerlijke vrijheden de inwoners van Venezuela, Cuba, Afghanistan, Nigeria, Belarus en Oekraïne troffen, vormden cryptovaluta's de snelste en vaak de enige mogelijkheid om financiële onafhankelijkheid te behouden.1 Zoals te zien in deze voorbeelden, kunnen cryptovaluta zoals Ethereum onbeperkte toegang tot de mondiale economie bieden wanneer mensen worden afgesloten van de buitenwereld. Stablecoins bieden bovendien een ruilmiddel wanneer lokale valuta instorten als gevolg van superinflatie.", + "page-what-is-ethereum-slide-2-desc-2": "Wanneer oorlog, economische rampen of repressies tegen de burgerlijke vrijheden de inwoners van Venezuela, Cuba, Afghanistan, Nigeria, Belarus en Oekraïne troffen, vormden cryptovaluta's de snelste en vaak de enige mogelijkheid om financiële onafhankelijkheid te behouden.1 Zoals te zien in deze voorbeelden, kunnen cryptovaluta zoals Ethereum onbeperkte toegang tot de mondiale economie bieden wanneer mensen worden afgesloten van de buitenwereld. Stablecoins bieden bovendien een ruilmiddel wanneer lokale valuta instorten als gevolg van superinflatie.", "page-what-is-ethereum-slide-3-title": "Creators empowereren", "page-what-is-ethereum-slide-3-desc-1": "Alleen al in 2021 gebruikten artiesten, muzikanten, schrijvers en andere makers Ethereum, die hiermee collectief ongeveer $3,5 miljard verdienden. Dit maakt Ethereum een van de grootste globale platforms voor creators, naast Spotify, YouTube en Etsy. \nMeer informatie.", "page-what-is-ethereum-slide-4-title": "Gamers empowereren", diff --git a/src/intl/ro/page-what-is-ethereum.json b/src/intl/ro/page-what-is-ethereum.json index f9bd759bc66..ceb28a83a1b 100644 --- a/src/intl/ro/page-what-is-ethereum.json +++ b/src/intl/ro/page-what-is-ethereum.json @@ -54,7 +54,7 @@ "page-what-is-ethereum-slide-1-desc-2": "Ethereum și monedele stabile simplifică procesul de trimitere a banilor în străinătate. De multe ori, durează doar câteva minute pentru a muta fonduri pe glob, spre deosebire de cele câteva zile lucrătoare sau chiar săptămâni necesare unei bănci obișnuite și pentru o fracțiune din preț. În plus, nu există nicio taxă suplimentară pentru efectuarea unei tranzacții cu valoare ridicată, și nu există restricții cu privire la unde sau de ce trimiteți bani.", "page-what-is-ethereum-slide-2-title": "Cel mai rapid ajutor în timp de criză", "page-what-is-ethereum-slide-2-desc-1": "Dacă sunteți suficient de norocos(oasă) să aveți mai multe opțiuni bancare prin intermediul instituțiilor de încredere acolo unde locuiți, vă puteți bucura de libertățile financiare, securitatea și stabilitatea pe care le oferă. Însă, pentru multe persoane din întreaga lume, care se confruntă cu represiuni politice sau cu dificultăți economice, este posibil ca instituțiile financiare să nu le ofere protecția sau serviciile de care au nevoie.", - "page-what-is-ethereum-slide-2-desc-2": "Atunci când războiul, catastrofele economice sau reprimarea libertăților civile i-au lovit pe rezidenții din Venezuela, Cuba, Afganistan, Nigeria, Belarus și Ucraina criptomonedele au constituit cea mai rapidă și adesea singura opțiune de a păstra controlul financiar.1 După cum s-a văzut în aceste exemple, criptomonedele precum Ethereum pot oferi acces neîngrădit la economia globală atunci când oamenii sunt deconectați de lumea exterioară. În plus, monedele stabile oferă un magazin de valoare atunci când monedele locale se prăbușesc din cauza hiperinflației.", + "page-what-is-ethereum-slide-2-desc-2": "Atunci când războiul, catastrofele economice sau reprimarea libertăților civile i-au lovit pe rezidenții din Venezuela, Cuba, Afganistan, Nigeria, Belarus și Ucraina criptomonedele au constituit cea mai rapidă și adesea singura opțiune de a păstra controlul financiar.1 După cum s-a văzut în aceste exemple, criptomonedele precum Ethereum pot oferi acces neîngrădit la economia globală atunci când oamenii sunt deconectați de lumea exterioară. În plus, monedele stabile oferă un magazin de valoare atunci când monedele locale se prăbușesc din cauza hiperinflației.", "page-what-is-ethereum-slide-3-title": "Susținem creatorii", "page-what-is-ethereum-slide-3-desc-1": "Numai în 2021, artiștii, muzicienii, scriitorii și alți creatori au folosit Ethereum pentru a câștiga în jur de 3,5 miliarde USD în mod colectiv. Acest lucru face ca Ethereum să fie una dintre cele mai mari platforme globale pentru creatori, alături de Spotify, YouTube, și Etsy. Aflați mai multe.", "page-what-is-ethereum-slide-4-title": "Susținem pasionații de jocuri", diff --git a/src/intl/sk/page-what-is-ethereum.json b/src/intl/sk/page-what-is-ethereum.json index 2e5e45f22f8..a3ab2187f92 100644 --- a/src/intl/sk/page-what-is-ethereum.json +++ b/src/intl/sk/page-what-is-ethereum.json @@ -51,7 +51,7 @@ "page-what-is-ethereum-slide-1-desc-2": "Ethereum a stablecoiny zjednodušujú proces posielania peňazí po celom svete. Poslanie prostriedkov na druhú stranu planéty zvyčajne zaberie len niekoľko minút čo môže bežnej banke trvať niekoľko pracovných dní a niekedy aj týždňov a navyše za zlomok poplatku za prevod. Navyše nejestvuje žiaden extra poplatok za prevdy vyššej sumy a nejestvujú obmedzenia toho prečo a kam chcete poslať svoje peniaze.", "page-what-is-ethereum-slide-2-title": "Najrýchlejšia pomoc v krízových časoch", "page-what-is-ethereum-slide-2-desc-1": "Pokiaľ máte to šťastie, že žijete v oblasti, kde máte zabezpečený prístup k viacerým dôveryhodným finančným inštitúciám tak si môžete užívať finančnú stabilitu a slobodu, ktorú vám poskytujú. Avšak veľa ľudí po celej planéte čelí represiám a finančnej neistote, pričom finančné inštitúcie im neposkytujú dostatočnú ochranu prostriedkov, ktoré vlastnia.", - "page-what-is-ethereum-slide-2-desc-2": "Počas vojny, ekonomickej katastrofy alebo zásahy proti občianskym právam ktoré postihli obyvateľov Venezuely, Kuby, Afganistánu, Nigérii, Bieloruska, a Ukrajiny, kryptomeny predstavovali najrýchlejšiu a často jedinú možnosť, ako si udržať finančné postavenie. 1 Tak ako môžete vidieť v týchto príkladoch, kryptomeny ako je Ethereum môžu poskytnúť neobmedzený prístup do svetovej ekonomiky, keď sú ľudia odrezaní od vonkajšieho sveta. Stable coiny navyše ponúkajú stabilnú hodnotu, keď miestne meny kolabujú v dôsledku hyperinflácie.", + "page-what-is-ethereum-slide-2-desc-2": "Počas vojny, ekonomickej katastrofy alebo zásahy proti občianskym právam ktoré postihli obyvateľov Venezuely, Kuby, Afganistánu, Nigérii, Bieloruska, a Ukrajiny, kryptomeny predstavovali najrýchlejšiu a často jedinú možnosť, ako si udržať finančné postavenie. 1 Tak ako môžete vidieť v týchto príkladoch, kryptomeny ako je Ethereum môžu poskytnúť neobmedzený prístup do svetovej ekonomiky, keď sú ľudia odrezaní od vonkajšieho sveta. Stable coiny navyše ponúkajú stabilnú hodnotu, keď miestne meny kolabujú v dôsledku hyperinflácie.", "page-what-is-ethereum-slide-3-title": "Podpora tvorby", "page-what-is-ethereum-slide-3-desc-1": "Umelci, hudobníci, spisovatelia a iní kreatívci zarobili len v roku 2021 spolu okolo 3,5 miliardy USD. Toto robí Ethereum jednou z najväčších globálnych platform popri Spotify, YouTube a Etsy. Dozvedieť sa viac.", "page-what-is-ethereum-slide-4-title": "Podpora herného priemyslu", diff --git a/src/intl/tr/page-what-is-ethereum.json b/src/intl/tr/page-what-is-ethereum.json index d666d732355..56551ba6557 100644 --- a/src/intl/tr/page-what-is-ethereum.json +++ b/src/intl/tr/page-what-is-ethereum.json @@ -54,7 +54,7 @@ "page-what-is-ethereum-slide-1-desc-2": "Ethereum ve sabit paralar, yurt dışına para gönderme sürecini basitleştirir. Ortalama bankanızı ve fiyatın bir kısmını alabilecek birkaç iş günü ve hatta haftanın aksine, fonları dünya çapında taşımak genellikle sadece birkaç dakika sürer. Ek olarak, yüksek değerli bir işlem gerçekleştirmek için ekstra bir ücret yoktur ve paranızı nereye veya neden göndereceğiniz konusunda bir kısıtlama yok.", "page-what-is-ethereum-slide-2-title": "Kriz Zamanlarında En Hızlı Çözüm", "page-what-is-ethereum-slide-2-desc-1": "Yaşadığınız yerde güvenilir kurumlar aracılığıyla birden fazla bankacılık seçeneğine sahip olacak kadar şanslıysanız sundukları finansal özgürlük, güvenlik ve istikrarı doğal karşılayabilirsiniz. Ancak dünyanın dört bir yanında siyasi baskı veya ekonomik zorluklarla karşı karşıya olan birçok insan için finansal kurumlar ihtiyaç duydukları koruma veya servisleri sağlayamayabilir.", - "page-what-is-ethereum-slide-2-desc-2": "Savaş, ekonomik felaketler veya sivil özgürlüklere yönelik baskılar Venezuela,Küba,Afganistan,Nijerya,Belarus ve Ukrayna vatandaşlarını vurduğunda, kripto paralar finansal değerleri elde tutmanın en hızlı ve çoğu zaman tek seçeneği haline geldi.1Ethereum gibi kripto paralar, bu örneklerde görüldüğü gibi insanların dış dünyayla bağlantıları kesildiğinde küresel ekonomiye sınırsız erişim olanağı sağlayabilir. Ayrıca stabil paralar, yerel para birimleri süper enflasyon nedeniyle çöktüğünde bir değer saklama aracı görevi görür.", + "page-what-is-ethereum-slide-2-desc-2": "Savaş, ekonomik felaketler veya sivil özgürlüklere yönelik baskılar Venezuela,Küba,Afganistan,Nijerya,Belarus ve Ukrayna vatandaşlarını vurduğunda, kripto paralar finansal değerleri elde tutmanın en hızlı ve çoğu zaman tek seçeneği haline geldi.1Ethereum gibi kripto paralar, bu örneklerde görüldüğü gibi insanların dış dünyayla bağlantıları kesildiğinde küresel ekonomiye sınırsız erişim olanağı sağlayabilir. Ayrıca stabil paralar, yerel para birimleri süper enflasyon nedeniyle çöktüğünde bir değer saklama aracı görevi görür.", "page-what-is-ethereum-slide-3-title": "Yaratıcıları Güçlendirme", "page-what-is-ethereum-slide-3-desc-1": "Yalnızca 2021'de sanatçılar, müzisyenler, yazarlar ve diğer içerik oluşturucular Ethereum'u kullanarak toplu olarak yaklaşık 3,5 milyar dolar kazandı. Bu da Ethereum'u Spotify, YouTube ve Etsy ile birlikte yaratıcılar için en büyük küresel platformlardan biri haline getiriyor. Daha fazla bilgi edinin.", "page-what-is-ethereum-slide-4-title": "Oyuncuları Güçlendirme", diff --git a/src/intl/zh/page-what-is-ethereum.json b/src/intl/zh/page-what-is-ethereum.json index 0c24a2aafee..57b795c7cd0 100644 --- a/src/intl/zh/page-what-is-ethereum.json +++ b/src/intl/zh/page-what-is-ethereum.json @@ -54,7 +54,7 @@ "page-what-is-ethereum-slide-1-desc-2": "以太坊和稳定币简化了海外汇款流程。在全球范围内转移资金通常只需要几分钟即可完成,相比之下普通银行可能需要几个工作日甚至几周,并且价格只是银行服务的一小部分。此外,进行高额交易不收取额外费用,并且对于汇款地址或原因没有任何限制。", "page-what-is-ethereum-slide-2-title": "在危机时刻提供最快捷的帮助", "page-what-is-ethereum-slide-2-desc-1": "如果你足够幸运,可以在生活的地方享受值得信赖的机构提供的多种银行业务,你可能会认为它们提供的财务自由、安全和稳定是理所当然的。但对于世界各地面临政治压制或经济困难的许多人来说,金融机构可能无法提供他们需要的保护或服务。", - "page-what-is-ethereum-slide-2-desc-2": "当委内瑞拉古巴阿富汗尼日利亚白俄罗斯乌克兰等地的居民遭受战争、经济崩溃和镇压时,加密货币就成为他们维系金融机构最快,且通常是唯一的方式。1正如这些例子所示,以太坊等加密货币能够让被迫割离世界的人畅通无阻地参与全球经济。另外,当本地货币由于恶性通货膨胀而崩溃时,稳定币可以提供一种保值手段。", + "page-what-is-ethereum-slide-2-desc-2": "当委内瑞拉古巴阿富汗尼日利亚白俄罗斯乌克兰等地的居民遭受战争、经济崩溃和镇压时,加密货币就成为他们维系金融机构最快,且通常是唯一的方式。1正如这些例子所示,以太坊等加密货币能够让被迫割离世界的人畅通无阻地参与全球经济。另外,当本地货币由于恶性通货膨胀而崩溃时,稳定币可以提供一种保值手段。", "page-what-is-ethereum-slide-3-title": "为创作者赋能", "page-what-is-ethereum-slide-3-desc-1": "仅在 2021 年,艺术家、音乐家、作家和其他创作者就利用以太坊共赚取了约 35 亿美元。这使得以太坊成为最大的全球创作者平台之一,与 Spotify、YouTube 和 Etsy 并驾齐驱。了解更多。", "page-what-is-ethereum-slide-4-title": "赋能玩家",