fuellabs / sway-applications Goto Github PK
View Code? Open in Web Editor NEWSwaypplications
Home Page: https://sway-applications.vercel.app/
License: Apache License 2.0
Swaypplications
Home Page: https://sway-applications.vercel.app/
License: Apache License 2.0
As a user I should be able to connect to my Sway Multi-Signature Wallet using MetaMask.
Transferring assets can be done to outputs and contracts.
This issue is meant to support transfers from the contract to another contract.
WIP
A general purpose NFT contract that will have the following attribute:
The contract ABI will follow the format below:
fn allowMint(minter: Identity) -> bool;
fn approve(to: Identity, token_id: b256) -> bool;
fn balance_of(owner: Identity) -> u64;
fn burn(token_id: b256) -> bool ;
fn constructor(owner: Identity, access_control: bool, token_count: u64) -> bool;
fn getApproved(token_id: b256) -> Identity;
fn getTotalSupply() -> u64;
fn isApprovedForAll(owner: Identity, operator: Identity) -> bool;
fn mint(to: Identity, amount: u64) -> bool ;
fn owner_of(token_id: b256) -> Option<Identity>;
fn setApprovalForAll(owner: Identity, operator: Idenity) -> bool;
fn transferFrom(from: Identity, to: Identity, token_id: b256) -> bool;
It removes unnecessary clutter from the perspective of the user.
They do not need to see this file in the root as it has nothing to do with why they would be browsing this repository.
This will make it slightly easier to navigate the repository since there will be less to click / "take in".
Creates a .docs
directory in the root of the repository and places the logo.png
there.
An update to the README.md
is also required so that the correct path continues to point at the logo.
Tuturu.
As a user I should be able to connect to my Sway Multi-Signature Wallet using Ledger.
Similar to the EIP-191 Signed Data Standard the wallet should support recovery for both
In order to interact with the multi-signature wallet in a user friendly manner a user interface should be created.
GitHub allows us to create templates for new issues.
These should be implemented to aid contributors in submitting issues because a guide is likely to lead to greater detail rather than a blank and unstructured page.
Once a Tx has been approved past a threshold it should be executable.
In order to accomplish execution we need to be able to call arbitrary contracts without knowing anything about them at the compilation of the multi-signature wallet.
This means that we need to be able to make generic calls at runtime.
Sway smart contract similar to an escrow, also has a user interface.
Users can deposit a specified asset to the contract within a specified time range.
It has a similar application to an Escrow and it is a viable real world use case via decentralized conditional funding.
A sway application should be created to demonstrate its usage.
Tuturu
The multi-signature wallet should use a threshold on the number of approvals in order to allow the execution of a Tx.
This means that a value should be set in storage and only when the threshold for a specified Tx (by the signers) has been reached it will become executable.
Extension: The contract should be a single contract that can spawn any number of independent fundraisers / campaigns. This can be done via handling data through various mappings.
The README.md contains some info about contributing however that is the incorrect place to store such information.
Moreover, it is not particularly descriptive.
Expand on the contributions in this file.
A weight of a signer is the number of approvals that they "give" when they approve a Tx.
A basic application is where each signer has a weight of 1 approval (their own) and thus if there are 5 signers with an approval threshold of 3 then 3 signers must approve the Tx.
This issue specifies that a signer can have a greater approval than 1 and thus it would be possible to approve a Tx (in the aforementioned example) with only 2 signers.
Upgrade contract for better integration into an application that has a UI.
A simple smart contract for a counter
which has a user interface.
The repository consists of end-to-end applications however tutorial applications should be added in order to walk a user through the creation process of decentralised applications.
A simple counter example could be the first application to go under a new path of sway-applications/tutorials/counter
cc @camsjams edit the issue as needed - especially the features (+new issues).
It will automatically add me as a reviewer to any PR in the repository. It makes it easier to submit PRs for everyone.
Create a new CODEOWNERS
file and append * @Braqzen
with a new line at the end
No response
File content
# Syntax highlighting of sway files as rust
*.sw linguist-language=Rust
Users do not need to see these scripts unless they are meant to use them.
It may be confusing to see 2 CI scripts in the root, especially 1 being called build.sh
.
Describe the repository
The wallet should be able to support an arbitrary number of signers meaning that we do not hardcode up to 25 variables in storage for the signers.
In this instance the goal is 1-25 signers.
Write an escrow smart contract that is fully tested.
This issue is meant to document the various sub tasks that are required in order to create a fully functional multi-signature wallet written in Sway.
There are various components and they are grouped into categories.
The Basics
Ethereum Signature Capability
Frontend
Contract Calls
Documentation
Once a Tx has reached the required number of approvals it can be executed.
The nonce is meant to prevent multiple executions which could result e.g. having funds sent multiple times to an address until a contract is drained of an asset.
The execution should only be played out at most once and never again.
Documenting the Sway code is a good start however there should be a user friendly page which takes the developer through the creation process and explains the intricacies beyond the functionality documented directly in the code.
A simple smart contract for a todo
which has a user interface.
The repository consists of end-to-end applications however tutorial applications should be added in order to walk a user through the creation process of decentralised applications.
A simple todo example should be added in sway-applications/tutorials/todo
No response
Write a user interface that allows users to interact with the escrow smart contract
Related: Frontend for Escrow contracts
The user interface should allow the owner of an NFT to create an auction.
The auction should be shareable so that any user can place a bid
The owner should be able to see all of their auctions and their state.
Transferring assets can be done to outputs and contracts.
This issue is meant to support transfers from the contract to an output (address).
A blind auction is where users can bid without others knowing their bid amounts. This is achieved with hashing (the value they want to bid, whether or not its a fake bid, and a secret) and sending that onto the chain. This hashed bid is later revealed, and if the deposits are greater than the value, and its a real bid, its accepted as a valid bid.
After the reveal period ends, the highest bidder wins.
Related: #47
Application which allows a user to specify the type of auction for their NFT sale.
This would allow the user to choose between a dutch auction, english auction and a blind auction.
An NFT can have a value set inside of it for a sale and that value may be static.
Alternatively, an auction mechanism may be used to allow the market to choose the price for the NFT (barring some restrictions such as a minimum and maximum price).
cc @bitzoic
All of the features in Ethereum Signature Capability should be fully tested.
An English auction is one where the auctioneer sets an opening price and a reserve price that must be met in order to sell the item.
Bidders continue to place bids in order to be the highest bidder and the highest bidder will be the one the item is sold to if conditions are met.
As a user I should be able to connect to my Sway Multi-Signature Wallet using Trezor.
Support payloads (signatures) constructed from Metamask, Trezor & Ledger.
The current README.md has some basic info and it is mixed with CONTRIBUTING.md.
It should be split to contain a banner, badges, clearer explanation of the applications in the repository and how to navigate them etc.
A Dutch auction is a type of auction where securities are priced via bids rather than the seller setting the price.
In this scenario, the seller sets a maximum price, which is lowered over time until all of the securities have been bid on.
Simply writing code that is functional is insufficient and as such we need to document the Sway code once the multi-signature wallet has been created and passed extensive testing.
The purpose is not just a functional contract but knowledge transfer to future Sway developers.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.