GithubHelp home page GithubHelp logo

Create a demo xapp that allows bridging an asset like an NFT from Ethereum, Polygon, or Avalanche to Celo about optics-monorepo HOT 20 OPEN

ericnakagawa avatar ericnakagawa commented on August 21, 2024
Create a demo xapp that allows bridging an asset like an NFT from Ethereum, Polygon, or Avalanche to Celo

from optics-monorepo.

Comments (20)

gitcoinbot avatar gitcoinbot commented on August 21, 2024

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 2000.0 cUSD (2020.0 USD @ $1.01/cUSD) attached to it as part of the celo-org fund.

from optics-monorepo.

alecj1240 avatar alecj1240 commented on August 21, 2024

Hey Eric 👋 Quick question for you:
In the description it says, "The Gitcoin bounty will select multiple winners that fulfill the requirements listed above."
How many winners? What is the limit on the number of winning submissions that will receive the bounty? 3? 10? 20?

from optics-monorepo.

gitcoinbot avatar gitcoinbot commented on August 21, 2024

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 3 weeks, 1 day ago.
Please review their action plans below:

1) dhruvjain1122 has been approved to start work.

Flow of NFT:-

  1. User send it's NFT to the BridgeRouter of source
  2. BridgeRouter Source hold the NFT ,sends enqueue this message to the Home which sends this to BridgeRouter Destination
  3. BridgeRouter Destination mint verifies and mint new NFT in the Destination chain which is then send to the user.
  4. To retrieve it's NFT at source User can just send this NFT back to the BridgeRouter which burn this and unlock the NFT at source
    2) marcopereira27 has applied to start work (Funders only: approve worker | reject worker).

I'm going to implement a solution to bridge NFT assets between Celo and Polygon.

[ ] BridgeRouter contract implemented on the local domain.
[ ] BridgeRouter contract implemented on the remote domain.
[ ] Contract on local domain can lock NFT's and send messages to contract on remote domain.
[ ] Contract on remote domain is able to authenticate the sender as a valid remote counterpart.
[ ] Contract on remote domain can receive and decode messages and mint NFT's.
[ ] To bridge an NFT back to the local domain, the remote contract is able to burn the NFT and send a message to the local contract, by which turn will unlock the NFT.
3) lucasespinosa28 has been approved to start work.

I read the documentation about Xapp and it does not look hard to create a bridge between eth and Celo for NFTs.

backend: a bridge contract to deposit the NFT on chain A or B, another contract to detect if some NFT was deposited and mint ou burn the NFT
frontend in react to let everyone build your own bridge easy cloning the project
4) kostassagma has applied to start work (Funders only: approve worker | reject worker).

I will create a xapp where the user will be able to:
• Send their nft to a smart contract on ethereum, which "freezes" the nft.
• Receive a just minted nft, which represents the frozen one, on the celo network at the address specified when depositing the nft
• Burn the nft in the celo network and receive the original nft on ethereum
Im using react for frontend and will be using Goerli and Alfajores for ethereum and celo tesnets respectively.
5) zoek1 has been approved to start work.

  • deploy the corresponding contracts based on the examples of the optics monorepo
  • trigger and validate the assets' sending functionality
  • verify the reception of assets in test networks
    6) surroundingart64 has been approved to start work.

I have completed the contracts with tests. But I needed further information for which I had tagged you here.

Can you please reply there?

#941 (comment)
#941 (comment)
#941 (comment)

I also was able get the dispatch event in logs in Rinkeby: https://rinkeby.etherscan.io/tx/0xa802d5d2d80c0013416325f3e39bf60aab4da90198d3b8b8f4727c82656f884a#eventlog
7) maxx6262 has been approved to start work.

Solidity Smart Contract to

  • hold NFT sent into proxy wallet account
  • Extraction of all data and historical data from NFT
  • Mint ERC721 standard token on Celo chain
    Wrapping platform crosschain into ERC1155
    8) rowlanja has applied to start work (Funders only: approve worker | reject worker).

creating a cross chain nft dapp shouldnt take too long. sending nft from one platform where theyre locked. Then a duplicate nft is issued to the sender
9) danijel-enoch has applied to start work (Funders only: approve worker | reject worker).

I basically plan to create a NFT smart contract both ERC721/1155 in all the listed chains and then create an sdk that allows all of them to interact with each other. The Interaction involves locking or burning of the NFT in the contract on one chain and then transfer it to another.

Learn more on the Gitcoin Issue Details page.

from optics-monorepo.

ericnakagawa avatar ericnakagawa commented on August 21, 2024

Hey Eric 👋 Quick question for you:

In the description it says, "The Gitcoin bounty will select multiple winners that fulfill the requirements listed above."

How many winners? What is the limit on the number of winning submissions that will receive the bounty? 3? 10? 20?

@alecj1240 It'LL be awarded to more than one and up to 3. I'm open to extending it if it makes sense, too.

What are you thinking?

from optics-monorepo.

ericnakagawa avatar ericnakagawa commented on August 21, 2024

@dhruvjain1122 please ensure the steps are documented and included in the xapp example. With the bridging of an nft, what additional metadata would be included?

from optics-monorepo.

amritkumarj avatar amritkumarj commented on August 21, 2024

@ericnakagawa I will keep that in mind, thanks for the advice

from optics-monorepo.

amritkumarj avatar amritkumarj commented on August 21, 2024

@ericnakagawa How does the user pay for the NFT minting fees in another chain, in the source side if so how do we calculate the fees?

from optics-monorepo.

amritkumarj avatar amritkumarj commented on August 21, 2024

@ericnakagawa could I get your telegram or discord id, I have some questions to ask

from optics-monorepo.

amritkumarj avatar amritkumarj commented on August 21, 2024

@ericnakagawa Check this out!
optics nft transfer

from optics-monorepo.

SurroundingArt64 avatar SurroundingArt64 commented on August 21, 2024

Hi @ericnakagawa I have completed the contracts with tests. But, I had to create a separate repo as I couldn't understand how to add tests in the Monorepo.

Should I add you as a collaborator for the same?

Currently the Router supports ERC721 transfers.

from optics-monorepo.

SurroundingArt64 avatar SurroundingArt64 commented on August 21, 2024

I found the XAppConnectionManager for Rinkeby

Can you confirm if the above address is the latest one?

Also, please share the same for following:

Celos Alfajores TestNet
Polygon Mumbai Testnet

@ericnakagawa

I guess I should be able to fetch domain from them but they would be helpful as well.

from optics-monorepo.

SurroundingArt64 avatar SurroundingArt64 commented on August 21, 2024

I also was able get the dispatch event in logs in Rinkeby: https://rinkeby.etherscan.io/tx/0xa802d5d2d80c0013416325f3e39bf60aab4da90198d3b8b8f4727c82656f884a#eventlog

How can I track it on Remote? Any suggestions? @ericnakagawa

from optics-monorepo.

SurroundingArt64 avatar SurroundingArt64 commented on August 21, 2024

From what I understand no Updates have been pushed to Replicas in past 3 to 4 months on Alfajores, Kovan and Rinkeby.

How can I test my XApp @ericnakagawa

from optics-monorepo.

SurroundingArt64 avatar SurroundingArt64 commented on August 21, 2024

@ericnakagawa @gitcoinbot

Successfully bridged NFT from PolygonMumbai to Alfajores network. Had to deploy my own Homes and Replicas.

Relevant transactions:
Send on Mumbai (1000): Call made to the ERC721Router

Transfers token id 1 of native NFT

You can see the dispatch event from home. Decode data:

{
    messageHash: '0x05e97104a73dcbd76e8178483e6f5d209675ff9a7e254b7e334822fc245841ea',
    leafIndex: 0,
    committedRoot: '0x0000000000000000000000000000000000000000000000000000000000000000',
    message: '0x000003e80000000000000000000000009365a6d7c89da1b6f22913aad65f000bb0f55dc900000000000007d00000000000000000000000009365a6d7c89da1b6f22913aad65f000bb0f55dc9000000000000000000000000379a056cb617ede30c56afb54e2f31850580676000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000379a056cb617ede30c56afb54e2f318505806760000000000000000000000000fc77079c043b39a64ee9fa70863f25c9a0381d0800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001'
}

Update on Alfajores(200): Call made to Replica.

Transaction

Prove on Alfajores(2000): Call made to Replica.

Transaction

Process on Alfajores(2000): Call made to Replica which calls to Router which mints the non-native NFT.

Transaction

from optics-monorepo.

SurroundingArt64 avatar SurroundingArt64 commented on August 21, 2024

Setting up backend support for updates, prove and process for custom deployed Replica and Home.

@ericnakagawa

from optics-monorepo.

ericnakagawa avatar ericnakagawa commented on August 21, 2024

@SurroundingArt64 @dhruvjain1122 I can be contacted on Discord at ericnakagawa#0001 and Telegram at @ericnakagawa -- let's connect to review your progress!

from optics-monorepo.

SurroundingArt64 avatar SurroundingArt64 commented on August 21, 2024

HI @ericnakagawa Will connect on discord.

from optics-monorepo.

SurroundingArt64 avatar SurroundingArt64 commented on August 21, 2024

Hi guys. Is this still open? I am having trouble with connecting with you guys.

from optics-monorepo.

gitcoinbot avatar gitcoinbot commented on August 21, 2024

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 2000.0 cUSD (1990.92 USD @ $1.0/cUSD) has been submitted by:

  1. @surroundingart64

@ericnakagawa please take a look at the submitted work:


from optics-monorepo.

SurroundingArt64 avatar SurroundingArt64 commented on August 21, 2024

https://github.com/SurroundingArt64/optics-nft-bridge @ericnakagawa

from optics-monorepo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.