मुख्य सामग्री पर जाएं
यह गाइड context object का अवलोकन और Web3 Actions के भीतर Gateway, Storage, और Secrets utilities तक पहुँच प्राप्त करने के लिए इसका उपयोग कैसे करें, प्रदान करती है। आप यह भी सीखेंगे कि context के माध्यम से Node RPC तक कैसे पहुँच प्राप्त करें, Secrets के साथ API keys जैसे निजी data को कैसे प्रबंधित और access करें, Storage पर data को कैसे persist करें, और अपने application से इस data को कैसे access करें।

Context

context एक object है जो आपको अपने code के भीतर से Storage और Secrets तक पहुँच देता है। Context पहला parameter है जिसे आपके functions में निर्दिष्ट करने की आवश्यकता होती है, जो Tenderly द्वारा आपके code को चलाने पर execution context तक पहुँच सक्षम करता है।
example.ts
export const actionFun: ActionFn = async (context: Context, event: Event) => {
  // ...
  await context.storage.putJson(key, storedValue);
};
Storage और Secrets Tenderly में एक project के भीतर सभी Actions के बीच साझा किए जाते हैं।

Gateways

Gateways utility (context.gateways) आपको Node RPC तक पहुँच देती है, जिससे आप Web3 Actions के साथ transactions भेज सकते हैं या on-chain data पढ़ सकते हैं। gateways property आपको getGateway() नामक method तक पहुँच देती है, जिसके लिए एक argument की आवश्यकता होती है - वह network जिसे आप access करना चाहते हैं। उदाहरण के लिए, Mainnet तक पहुँच के लिए, argument को इस तरह format किया जाना चाहिए Network.MAINNET एक variable में संग्रहीत पूर्ण statement का एक उदाहरण इस तरह दिखता है:
example.jsx
const defaultGatewayURL = context.gateways.getGateway(Network.MAINNET);
Node RPC में प्रत्येक समर्थित network के लिए getGateway() method के लिए arguments की सूची यहाँ है:
  • Network.MAINNET
  • Network.GOERLI
  • Network.SEPOLIA
  • Network.POLYGON
  • Network.MUMBAI
  • Network.BOBA_ETHEREUM
context.gateways कैसे काम करता है और इसका उपयोग करने के तरीके को समझने में आपकी मदद करने के लिए sample code snippets के बारे में अधिक विवरण के लिए, Web3 Actions पर Node RPC access documentation पेज पढ़ें।

Storage

आप अपनी Web3 Actions को stateful बनाने के लिए Storage utility का उपयोग कर सकते हैं। Web3 Actions Storage एक key-value-आधारित store है। आप अपने custom code (functions) और Tenderly Dashboard दोनों से Storage में data सहेज सकते हैं। नीचे एक code snippet है जो आपको दिखाता है कि JSON objects को Storage में कैसे संग्रहीत करें।
example.js
await context.storage.putJson(key, valueStored);
Storage के साथ interact करने वाले सभी functions asynchronous हैं, इसलिए अवांछित व्यवहार से बचने के लिए आपको await operator का उपयोग करना होगा।

Storage से data सहेजना और retrieve करना

Storage में data सहेजने के लिए, निम्न functions का उपयोग करें, जो अपने संबंधित प्रकार के मान संग्रहीत करते हैं:
  • putBigInt
  • putStr
  • putNumber
  • putJson
Storage से data retrieve करने के लिए, विशिष्ट data type प्राप्त करने के लिए निम्न functions का उपयोग करें:
  • getBigInt
  • getStr
  • getNumber
  • getJson
नीचे Storage से JSON object सहेजने और प्राप्त करने का एक उदाहरण है।
example.js
await context.storage.putJson('BAR_BAZ', { bar: 'baz' });
//....
const barBaz = await context.storage.getJson('BAR_BAZ');

Storage सीमाएँ

LimitValue
प्रति project अधिकतम keys1,000
अधिकतम key size1 KB
अधिकतम value size100 KB
यदि सीमाएँ पार हो जाती हैं, तो client 400 Bad Request error सामने लाएगा जिसमें उस विशिष्ट सीमा को दर्शाने वाला संदेश होगा जिसका उल्लंघन किया गया था। Storage project-wide है, एक project में सभी actions एक ही key pool साझा करते हैं।
Storage एक database नहीं है, यह config parameters या counters जैसे छोटे stateful data के लिए है। बड़े datasets या high-frequency operations के लिए, एक बाहरी database का उपयोग करें और credentials को Secrets में संग्रहीत करें।

Tenderly Dashboard के माध्यम से Storage access करना

Tenderly Dashboard के माध्यम से Storage में सहेजे गए data को देखने के लिए, बाईं ओर के मेनू से Actions पर जाएँ और पेज मेनू से Storage पर क्लिक करें।
Accessing Web3 Action data saved to Storage

Secrets

Secrets का उपयोग निष्पादन के दौरान आपकी Web3 Action द्वारा कॉल की जा सकने वाली services के लिए private API keys जैसी संवेदनशील जानकारी संग्रहीत करने के लिए किया जाता है। Secrets key-value pairs के रूप में संग्रहीत होते हैं और name और secret value से बने होते हैं।

Secrets बनाना और संग्रहीत करना

Secrets बनाने का एकमात्र तरीका Tenderly Dashboard के माध्यम से है। बाईं ओर के मेनू से Actions पर जाएँ और पेज मेनू से Secrets पर क्लिक करें। Add Secret बटन पर क्लिक करके Secrets जोड़ें और key का नाम और value प्रदान करें।
Creating Secrets for Web3 Actions

अपने code के अंदर से Secrets data प्राप्त करना

आप get() method के साथ context object का उपयोग करके अपने code के भीतर से Secrets data प्राप्त कर सकते हैं। argument के रूप में, Tenderly Dashboard के माध्यम से आपके द्वारा निर्दिष्ट सटीक key name का उपयोग करें।
example.js
const fooApiKey = await context.secrets.get('FOO_API_KEY');