什么是 @realitio/realitio-lib?
@realitio/realitio-lib 是一种 JavaScript 库,用于与 Realitio 或其衍生物的通信。Realitio 是一个简单的无误差提交协议,用于基于文本提示和投票来回答问题。它也是 Aragon Court 的结构之一。
使用 @realitio/realitio-lib 可以方便地将您基于 Realitio 提交的问题和答案添加到您的应用程序中。
安装
首先,您需要安装 Node.js 环境,然后可以使用 npm 或者 yarn 进行安装。
npm install @realitio/realitio-lib or yarn add @realitio/realitio-lib
使用
在使用前,您需要获取 Realitio 智能合约实例的地址。您可以在以太坊 Etherscan 上查找特定 Realitio 合约地址。
-- -------------------- ---- ------- ------ - -------- - ---- --------------------------- ------ - ------------------ - ---- --------------------------- ------ ----------- ---- ------------------------- -- -------- ------ ----- --------------- - --------------------------------------------- ----- -------- - ------------------------------ ----- ---------------- - --- ------------------------- ---------------- ----------
获取 Realitio 合约地址和初始化 provider 后,需要进行一系列操作,以获取所有投资带有必要信息的问题。
// 获取在 Realitio 合约下所有问题的 ID const questionIds = await realitioContract.allQuestionIDs(); // 遍历所有问题,并为每个问题获取详细信息 questionIds.forEach(async (questionId) => { const question = await realitioContract.questions(questionId); console.log(question); });
在获得所有问题后,您可以使用 getPayoutDistribution 和 getAnswer 接口。
// 获取所有投票投向的答案分布百分比 const payouts = await realitioContract.getPayoutDistribution(questionId, answer); console.log(payouts); // 根据问题 ID 获取正确答案 const correctAnswer = await realitioContract.getAnswer(questionId); console.log(correctAnswer);
最后,解决问题时,您需要使用 submitAnswer 接口,将您的答案提交到 Realitio 合约。
// 解决问题 - 使用您的答案保持精度 const answerInt = RealitioLib.toBN('69'); const answerString = answerInt.toString(); const tx = await realitioContract.submitAnswer(questionIDs[0], answerString); console.log(tx);
总结
上述是 @realitio/realitio-lib 的使用教程,它是与 Realitio 通信的必需库。通过上述内容,您可以从安装到实际使用,完整地了解如何在您的应用程序中使用 @realitio/realitio-lib,并了解如何使用它与 Realitio 合约通信。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/112955