Inspiration

Chainlink MultiChain BOT

ChainLInk

Use Cases

UC1

As a user I want to use Discord so that I can see my LINK balance on MultiChains.

Note: for this hack we use classical ETH tesnets (Kovan,Rinkeby,Goerli,Mainnet) and sponsor Avalanche and Binance testnets. We use web3storage for storing images IPFS

Inspiration

Currently there is no wallet that allows obtaining the total LINK available in the different blockchains.

What it does

This bot allows you to integrate the different LINK balances of the same address and view the total of the same address

How we built it

We integrate web3, with typescript accessing the addresses of the Chainlink contracts in the different blockchains

Challenges we ran into

The main challenge was to integrate different RPC connections.

Accomplishments that we're proud of

Use Discord.js as a communication interfase for the crypto ecosystem with a global chainlink balance concept.

What we learned

Onchain and offchain accesses must be integrated with simple means of communication to the users. Interoperability is a pending issue on multichain context.

What's next for Chainlink AI Discord Bot

Learn and share & extend the bot.

Video

https://youtu.be/WHnCmNSD8as

SnapShots

Command Bot Response
!chainlink
!about

Build & Run

npm install
npm run compile
npm run start

Dependencies

  "discord.js": "^12.5.1",
    "dotenv": "^8.2.0",
    "ethers": "^5.4.2",
    "http": "0.0.1-security",
    "https": "^1.0.0",
    "typescript": "^4.1.3",
    "web3": "^1.3.0",
    "web3.storage": "^3.3.4"

Repo

https://github.com/aadorian/ChainlinkMultiChainBOT.git


require("dotenv").config();
import { Client, MessageEmbed} from "discord.js";
import { ethers, providers } from "ethers";
import { Web3Storage, getFilesFromPath, File } from "web3.storage";
...

const linkAbi = [
  "function name() view returns (string)",
  "function symbol() view returns (string)",
  "function balanceOf(address) view returns (uint)",
  "function transfer(address to, uint amount)",
  "event Transfer(address indexed from, address indexed to, uint amount)"
];

...
let provider_MAINNET = new ethers.providers.JsonRpcProvider(RPC_URL_MAINNET);
const linkAddress_MAINNET = "0x514910771af9ca656af840dff83e8264ecf986ca";
const linkContract_MAINNET = new ethers.Contract(linkAddress_MAINNET, linkAbi,provider_MAINNET);

References

https://docs.chain.link/docs/link-token-contracts/ https://chainlink-fall-hackathon-2021.devpost.com/?ref_feature=challenge&ref_medium=your-open-hackathons&ref_content=Submissions+open

Built With

Share this project:

Updates