Skip to main content
इस गाइड में, आप सीखेंगे कि Tenderly CLI के माध्यम से Web3 Actions कैसे deploy करें जो blocks के mine होने पर देखता है और बस block number को output करता है।

पूर्वापेक्षाएँ

आपके पास अपने local machine पर npm और Tenderly CLI स्थापित और ठीक से कॉन्फ़िगर होना चाहिए। installation निर्देशों के लिए Web3 Actions CLI Cheatsheet देखें।

Web3 Actions Project को Initializing करना

अपने system पर उस folder में navigate करें जहाँ आप अपना Web3 Action code रखना चाहते हैं और एक नए Web3 Actions project को initialize करने के लिए निम्न command चलाएँ:
example
default रूप से, project को TypeScript का उपयोग करने के लिए कॉन्फ़िगर किया जाएगा। यदि आप plain JavaScript पसंद करते हैं, तो language flag जोड़ें और javascript निर्दिष्ट करें:
example
जब prompt किया जाए, तो अपने account से एक मौजूदा Tenderly project चुनें या एक नया बनाएँ।
Creating a new Tenderly project

Creating a new Tenderly project

इसके बाद, उस root directory का नाम input करें जहाँ आपका code store किया जाएगा। यदि आप default actions छोड़ना चाहते हैं, तो Enter दबाएँ, या एक custom directory नाम input करें।
Adding a directory name

Adding a directory name

आपके project की folder structure ऐसी दिखनी चाहिए:
example
tenderly-schema.json file tenderly.yaml के actions अनुभाग के लिए एक JSON Schema है, जो उसकी $schema key से referenced है; YAML schema समर्थन वाले editors इसका उपयोग autocomplete और validation के लिए करते हैं।

Web3 Action को Building और Deploying

Web3 Action को build और deploy करने के लिए ये चरण हैं जो हमें उठाने होंगे:
  • action function बनाएँ
  • function चलाने के लिए block trigger कॉन्फ़िगर करें
  • CLI का उपयोग करके code को Tenderly पर deploy करें

action function बनाना

निम्न code को example.ts file में copy करें:
example.ts
यह एक action function को define और export करता है। अगले चरण में, हम इसे 10 blocks mine होने के बाद चलाने के लिए कॉन्फ़िगर करेंगे। नोट्स: ध्यान दें कि function asynchronous है और दो arguments स्वीकार करता है - एक Context object और एक Event object।
  • Context object Storage और Secrets तक पहुँच सक्षम करता है। आप इसके बारे में Context reference में अधिक पढ़ सकते हैं।
  • event argument एक object है जिसमें बाहरी (on-chain) event के बारे में जानकारी होती है जिसने action को trigger किया। चूंकि हम इस action को block-related event पर चलाना चाहते हैं, event argument BlockEvent type का होगा। BlockEvent object में mine किए गए block के बारे में जानकारी होती है, जैसे block number, block hash, और block timestamp।

नई action के लिए tenderly.yaml में trigger कॉन्फ़िगर करना

चरण 1: tenderly.yaml file की सामग्री को निम्नलिखित से बदलें (CLI द्वारा generate की गई $schema line रखें):
example.yaml
चरण 2: username और project-slug को अपने username और अपने project के slug से बदलें। organization name, username, और project slug कैसे खोजें सीखने के लिए इस गाइड को देखें। नोट्स: tenderly.yaml file में project में प्रत्येक action के लिए triggers की specifications होती हैं और trigger को action function से link करता है। यहाँ, हम block-number-printer नामक एक action बना रहे हैं।
  • function property example.ts file से blockHelloWorldFn function को referencing कर रही है।
  • trigger property के अनुसार, यह action network 1 पर mine किए गए प्रत्येक 10वें block पर trigger होगा।
बाहरी Events और Trigger types के बारे में अधिक जानें।

actions को Building और Deploying करना

अपने terminal पर वापस जाएँ और अपने द्वारा परिभाषित सभी Web3 Actions को deploy करने के लिए निम्न command चलाएँ। successful deployment के बाद, actions Tenderly UI में दिखाई देती हैं।
example
Web3 Actions का Zero downtime upgrade\ Web3 Action को upgrade करने के लिए, बस source code और/या tenderly.yaml को edit करें और tenderly actions deploy. चलाएँ

जाने से पहले

ध्यान रखें:
  • आपको deploy command tenderly.yaml file वाले folder से चलाना होगा।
  • यदि आप एक ही directory में कई Tenderly projects के लिए actions initialize करते हैं, तो deploy चलाने पर आपको एक project चुनने के लिए कहा जाएगा। केवल चयनित project से संबंधित actions ही deploy की जाएंगी।
  • एक project से संबंधित सभी actions एक साथ deploy की जाती हैं।
  • JavaScript/TypeScript से reference की गई कोई भी file actions root में होनी चाहिए। इस folder के बाहर की files को reference न करें।

संसाधन