Code Monkey home page Code Monkey logo

crosschain-router's Introduction

Installation:

Requires Python 3

  1. Clone Uniswap
$ git clone https://github.com/Uniswap/contracts-vyper
$ cd contracts-vyper
  1. Setup virtual environment
$ pip3 install virtualenv
$ virtualenv -p python3 env
$ source env/bin/activate
  1. Install dependencies
pip install -r requirements.txt
  1. (Optional) Switch Vyper compiler to version used in Uniswap verification
cd vyper
git reset --hard 35038d20bd9946a35261c4c4fbcb27fe61e65f78
cd ..
  1. Run tests
$ pytest -v tests/

crosschain-router's People

Contributors

bohaosk avatar ccsoloist avatar gaozhengxin avatar jowenshaw avatar potti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crosschain-router's Issues

Multichain compatibility documentation needs improvement

I am trying to add Multichain support to my token. The documentation needs a lot of improvement, which is why I am filing these questions as a bug report

I have followed the advice here:

https://docs.multichain.org/developer-guide/how-to-develop-under-anyswap-erc20-standards

I have several questions:

(1) Is it true that you only need the three functions mint(address,uint256), burn(address,uint256) and underlying() (returning address(0)) to get full Multichain compatibliity? (This is my implementation of these functions.)

Are there other functions that are not required, but will provide additional Multichain-supported functionality, such as transferWithPermit?

In particular, I assume functions like deposit, withdrawal, vault functionality, etc. do not need to be included in my token?

(2) How do I obtain the official approved router addresses for Multichain? Somewhere in your documentation, it says that the router addresses can be obtained on request, but that they will be available programmatically in future. How far away is the programmatic API for fetching router addresses? Where do you hold the official list of router addresses currently?

(3) I also wanted to ask about the permitting API supported in the Anyswap V5 template (but not present in the V6 template). Specifically, in the functions permit​ and transferWithPermit​, there is this line:

require(verifyEIP712(target, hashStruct, v, r, s) || verifyPersonalSign(target, hashStruct, v, r, s));​

This actually breaks EIP2612 compatibility for the permit​ function, because verifyPersonalSign​ is not supported in the EIP2612​ standard -- it uses this different format for the permit hash:

keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", DOMAIN_SEPARATOR, hash))​

What is the purpose of this? Under what circumstances will a user submit a signed message to an Anyswap token signed using the following hash? How are these signatures produced? By wallet software? Is this sort of signature support needed in Multichain?

(4) Once my token is compatible with Multichain, and launched, how do I get it listed on your site?

(5) What precautions do you take to ensure your routers are bug-free and never compromised? Do you offer any sort of recourse or compensation for runaway minting or burning of tokens, due to some bug or security vulnerability in your code?

Anyswap Routing issue

Hello
I used the router instead of the bridge and I have 600k stuck in anyUSDC with no liquidity on any chain to remove my funds.

How do I access my funds?

How to use anySwapOutUnderlying when underlying is false

I read your wiki that tell to use the function anySwapOutUnderlying(anyToken, to, amount, toChainID). However I see some object have underlying: false, so how to I use anySwapOutUnderlying when underlying: false. Thank you.

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.