Skip to content

EVM smart contract to use any NFT or fungible token standard from a client that generalizes token operations

Notifications You must be signed in to change notification settings

Trustless/Tokens

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚠️Not audited⚠️

We intend to deploy a Proxy Upgradable Trustless system on every EVM-chain on the same address governed by Trustless DAO

Token Factory

ERC20ERC777ERC7211155
Deploy
Deploy Wrapped
Each deployment utilizes MinimumProxyContract methodology.

Token Registry

Trustlessly Registered
Imported as Wrapped

Token Trading

Essentially an internally 1155 uniswap

DAO

A modular system of governance contracts so that different requirements may be satisfied by writing simplified modules using Silidity inheritance

Token Client

A token aggregator to develop standard-agnostic token operations

Shared interface for functionality of ERC20, ERC721, ERC1155 or any future standard or custom token!

🧐 Overview

TokenClient is a smart contract written in Solidity to support fungible and non-fungible token operations (such as sell/buy, swap, etc) in a generic way, making easy, quick, elegant, generic and future-proof implementations of token algorithms.

Support new standards in your logic by simply registering a contract address in the client, which inherits from TokenAbstraction. Your code interacts with the client instead of the ERC20, ERC721, or any other instance (the client will do it for you). So you don't need to commit your code to protocols, you can focus on the fun stuff, and make more elegant dapps by eliminating redundancy where all tokens share functionality (like isApproved or transfer or balanceOf), which is the functionality that many marketplaces and complex operators need to operate with tokens.

TokenClientDiagram

You can reference a TokenClient instance on your dapp or inherit from TokenClient contract. To support the standards you want, you have to register them on the client using some TokenAbstraction concrete, such as TokenERC20, TokenERC721 or TokenERC1155 (or creating your own), which have a few view functions, the transfer function and doesn't have storage. These are in charge of calling the methods of each standard, but you only have to make calls to your TokenClient instance, using methods such as isOwner, balanceOf, isApproved or transfer. Then you can focus on the logic of your dapp without worrying about standards support, separating this decision from the implementation and allowing it to be defined at any time.

For complete information check the README of the Token-client branch

About

EVM smart contract to use any NFT or fungible token standard from a client that generalizes token operations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Solidity 55.8%
  • JavaScript 44.2%