No funded issue found.
Check out the Issue Explorer
Be the OSS Funding you wish to see in the world.
Looking to fund some work? You can submit a new Funded Issue here .
Time left
Opened
Issue Type
Workers Auto Approve
Project Type
Time Commitment
Experience Level
Permissions
Accepted
Reserved For
Designing A Tool For Forwarding Funds To A Function
sendwyre
## Task
Design a smart contract structure for the following task. Whether it’s one contract, or many, we’re looking for the most secure, extensible, and scalable architecture. This task below is what you are designing for.
## User story
As a developer, we'd like the ability to specify a destination address and have that forward to a specific contract function.
## Current behaviour
Currently, developers are required to specify a destination address. This is great for allowing their users to convert and deposit funds into their non-custodial wallet. Currently, developers users go through multiple steps to get the deposit into their wallet, and then to select purchase, execute the transaction and then wait for confirmation on-chain. What it misses is the ability to go straight to executing the function on our smart contract.
## Wanted behaviour
We want a developer to build functionality that will allow other developers to:
1) Specify a contract (Upload source/ABI)
2) Returns known functions
3) Specify the functions that they would like accessible.
4) Deploy a contract which will execute a specific address forwarder for each function specified in *step 3*.
5) Returns one or more transaction id's.
6) Transactions confirm / Contracts are now setup to each individually execute a specific function.
Our purpose for this bounty is to simplify developer experiences working with our API. Ensuring that they can concentrate all their efforts on getting their project to market and/or serving their current users. We want a developer to build the functionality for **Tool For Forwarding Funds To A Contract** while adhering to our [feature-addition-guidelines]. Here are some more feature guidelines:
Extensibility.
Code Style.
Used establish patterns where applicable.
Generally Readable.
Tests: Testable? Good coverage?
Security/Defensiveness: Permission checks? Whitelisting? Exception handling?
Performance: Correct algorithms selected? Edge cases?
## Definition of done
You have successfully completed this, when:
1. Flowchart // Can be scribbled on a whiteboard. Just needs to be legible. Use this as a check-in point for the competition. Can deliver feedback if it’s the right direction, etc...
2. Schema //
3. Design explanation // Example breakdown (if helpful)
Deliberately excluded & included with reasoning.
Security concerns // Dependencies, technical implementation risks.
Time to market // How fast can it be executed on now to implement, AND for other developers in the future. Remember we’re targeting developers, and want to cater for the slowest member of the pack. Aka new developers to the space.
Target developer experience level // From 1-10. 1 being only use jsFiddle, 10 being Vitalik.
## Submission
Please submit your work by making a pull request to the Github repository.
## Supporting Information
The best design will accommodate compatibility with centralized API’s. If it were PayPal contract you’d find relevant to share account activity similar to the following:
### GET requests examples
Accounts: Activity changes on user “ACCO-123”
Transfers: Updated status on the transfer “TRAN-123”
Payment Methods: Card Expired “PAYM-123”
Contacts: Lookup “CONT”.
**Example request on a centralized API**
```json
{
"source":"account:AC-WYUR7ZZ6UMU",
"sourceCurrency":"USD",
"sourceAmount":"5",
"dest":"bitcoin:15CriXWTRoJmQdBzdikw6tEmSuwxMozWWq",
"destCurrency":"BTC",
"message": "Payment for DorianNakamoto@Satoshi.com",
"autoConfirm":true
}
```
**[Transfer life-cycle overview](https://gyazo.com/725c8e6bd302ecf397cd8dc8ad52ed24) if helpful:**
Live example of similar exemplar can be found here.
Setup your profile
Tell us a little about you:
Skills
No results found for [[search]] .
Type to search skills..
Bio Required
[[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
Next
Setup your profile
Our tools are based on the principles of earn (💰), learn (📖), and meet (💬).
Select the ones you are interested in. You can change it later in your settings.
I'm also an organization manager looking for a great community.
Back
Next
Save
Enable your organization profile
Gitcoin products can help grow community around your brand. Create your tribe, events, and incentivize your community with bounties. Announce new and upcoming events using townsquare. Find top-quality hackers and fund them to work with you on a grant.
These are the organizations you own. If you don't see your organization here please be sure that information is public on your GitHub profile. Gitcoin will sync this information for you.
Select the products you are interested in:
Out of the box you will receive Tribes Lite for your organization. Please provide us with a contact email:
Email
Back
Save