我正在构建一个赌注DAPP,其中用户将获得赌注奖励后,自定义ERC20令牌为特定的一段时间。在合同中,我想奖励那些谁提到他们的朋友到赌注网站的用户提供由那里的引荐人赌注金额的百分比。推荐系统将有五个级别,并根据这些级别进行奖励。
奖励如下:
Lvl 1 = 7% Referral deposit
Lvl 2 = 3% Referral deposit
Lvl 3 = 2% Referral deposit
Lvl 4 = 1% Referral deposit
Lvl 5 = 0.5% Referral deposit
例如,如果某人通过我的推荐加入,则我成为他/她的1级推荐人,推荐我的人成为2级推荐人,推荐2级推荐人的人成为3级推荐人,这种情况一直持续到5级。
我保存了一个数据库,并使用了一个API,以便跟踪哪个地址引用了谁。这是向数据库发送数据的格式,引用人字段是可选的。
{
"type": "register",
"address":"0x78910",
"referrer":"0x12345",
"coin":20
}
在前台,我保留了一个输入字段,用户将在那里输入推荐人的地址,这将进入数据库,然后智能合同将通过Oracle调用数据库,并获得所有地址和三个级别,然后合同将相应地支付他们。
我的问题是,我如何才能做到这一点?我知道使用Oracle是一种方法,但我不能理解如何在代码中实现它以使其工作。有谁可以帮我??
1条答案
按热度按时间h43kikqp1#
Chailink AnyAPI允许您从离链API获取任何数据,并将数据写回链上智能合约。
要使用Chainlink AnyAPI,您应该运行Chainlink节点(您可以了解如何运行Chainlink节点here)或依赖于由其他人运行的Oracle节点(阅读更多详细信息here)。
使用Chainlink节点,您可以部署Oracle协定并监视来自智能协定(您的DAPP)的请求。来自智能合同的请求可以触发Chainlink节点完成其工作并将数据写回智能合同。在您的DAPP中,智能合同可以向您的数据库发送请求,并使用Chainlink Any API获取推荐人信息。
完整的教程可以在here找到。