Giter VIP home page Giter VIP logo

explorer's People

Contributors

adnfx2 avatar anarquelie avatar calpoog avatar codeluggage avatar deeayeen avatar gillichu avatar heycorwin avatar hshar7 avatar j1oba avatar lightclient avatar mbeylin avatar mpetrunic avatar neocybereth avatar rej156 avatar somethiiing avatar villanuevawill avatar zerquix18 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

explorer's Issues

Encryption Research

This is an advanced issue and requires deep experience within the industry and vast experience in architecting systems and or cryptography.

We'd like to explore research on how we can properly encrypt and decrypt data we store in a safe manner. Currently, fulfillments on the bounties explorer are stored in IPFS. You can view the standard schema here/details here and should also be familiar with the standard bounties contract. We'd like to encrypt this data and allow the submitter/fulfiller and the bounty issuer to be able to decrypt it securely. Similar mechanisms may have shown up in chat systems in the space and can think of some examples myself, however, would like someone else to dive into some initial research and provide us with various options, ideas, and paths.

Requirements

  • Very clear research, code examples, references for a solid, safe, secure solution using cryptographic methods
  • Completely off-chain if possible
  • Well though out, clear effort, time and investment put into the effort and a viable architecture/solution
  • Decryption keys should be generated in a way where we are not the intermediary
  • Keys should only be accessible between verified owners of the ethereum addresses that are sharing
  • Answers questions below

Questions to Answer

  • What encryption schemas should we use?
  • How should we generate keys?
  • How should the key be transmitted to the end user in a secure manner?
  • Is there a way that they can generate the keys on their own on the client side so we never have access to unencrypted keys?

Communication

  • Join our slack community and message in our community-dev channel for questions
  • Put a PR up directly into the explorer repo

[Feature Request] Wallet Connect support

Hey Bounties Network ๐Ÿ‘‹

Would love to see Wallet Connect integration so I could use my Argent wallet instead of my MetaMask wallet.

With Wallet Connect you will be opening up access to Bounties Network to any wallet which integrates Wallet Connect.

Bounties Network - Profile Banner

Description

image

Set up the profile banner for users. This should be calculated by the % of sections completed on the profile settings page.

Also, 2 components should be added to the core component library along with stories for storybook.

  1. Progress component
  2. Page Banner component

Definition of Done

  • Inclusion of both components
  • Looks and matches the design
  • Communication with the team on implementation, plans and goals
  • Fully functional

Requirements

A correct submission will:

  • Build two components and add them to storybook
  • Have the banner pop up on the dashboard if < 100%

Please communicate with [email protected] and join our slack channel to communicate further:
https://join.slack.com/t/bountiesnetwork/shared_invite/enQtMzA2Mjk3MzAzODQwLTZjN2UxMmU5MWYxZTVmMmM4OGNjZDRiMDgwYTVhOTIwYmQ4MjVlMjNkZjYzOTE4MWI4OTFhOWE4ZTUzN2MyNWY

Storybook Documentation

This is an advanced task and we are only accepting candidates who have time, resources, and bandwidth to put significant time into this.

Update components in storybook to display beautifully and match the quality of documentation that is currently in the Text and Button component.

This is a pretty big task and requires getting intimate and creative with the storybook documentation. We'd like to generally follow the current format in Button and Text component. We'd also like to add components from the root components that are not yet in storybook. yarn storybook to get things running.

Requirements

  • Document any missing components from the root components root components
  • Bring all components on storybook to follow the standard in Button and Text
  • Be creative - get to know the actual components and make sure the major props are documented (a lot of what is up there needs way more of the current usecases posted). Meaning you should not just take what is already there and update it with the new format. this is MUCH MORE INVOLVED than that
  • This task is only for rockstars

Communication

  • Join our slack community and message in our community-dev channel for questions
  • Put a PR up directly into the explorer repo

Sample Calls

Create a session for yourself first. In the browser that you are doing calls just mock it for now. It doesn't expire so just need to do it once.

Steps to create a session:
First get your nonce. Remember to subsititute the address below with YOUR address.

let nonce = ''
fetch('http://localhost:8000/auth/user/0xe66f8C6AB127ecDFD5cbf031f74A584aD2fC494b/nonce/')
      .then(response => response.json().then(json => nonce=json.nonce))

Next, get web3 to create a signature.

let signature = '';
web3.personal.sign(web3.fromUtf8('Hi there! Your special nonce: ' + nonce),
   web3.eth.accounts[0],
   function(err, resp){
      signature = resp
   }
)

Finally, send the login call:

let user = null;
fetch('http://localhost:8000/auth/login/', {
  method: 'post',
  credentials: 'include',
  body: JSON.stringify({
    public_address: '0xe66f8C6AB127ecDFD5cbf031f74A584aD2fC494b',
    signature: signature
  }),
  headers: {
    'content-type': 'application/json'
  },
}).then(response => response.json().then(json => user=json))

Create Draft Bounty:
You need to have a session in place as the endpoint sets the user relationship based on who is logged in.

This is also a patch endpoint and PUT endpoint. Patch is when you just update some of the fields.

let draftBounty = null;
fetch('http://localhost:8000/bounty/draft/', {
  method: 'post',
  credentials: 'include',
  body: JSON.stringify({
    "categories": ["HTML", "Javascript"],
    "tokenContract": "",
    "deadline": "2018-06-08T11:55:53.898Z",
    "arbiter": "",
    "fulfillmentAmount": 180000000,
    "paysTokens": false,
    "experienceLevel": 0,
    "revisions": 4,
    "title": "HTML work",
    "description": "Html Work",
    "issuer_name": "Dave Johnson",
    "issuer_email": "[email protected]",
    "issuer_githubUsername": "davejohnson",
    "sourceFileName": "",
    "sourceFileHash": "",
    "sourceDirectoryHash": "",
    "webReferenceURL": "",
    "platform": "bounties-network",
    "schemaVersion": "0.1",
    "schemaName": "standardSchema",
    "data": "datahash"
  }),
  headers: {
    'content-type': 'application/json'
  },
}).then(response => response.json().then(json => draftBounty = json))

Keep in mind experienceLevel can be referenced here - https://github.com/Bounties-Network/BountiesAPI/blob/schema-updates/bounties_api/std_bounties/constants.py (0,1,2)

sourceFileHash etc. is for the attachment. Look at current bounties explorer to understand further.

tokenContract is only required if paysTokens is true and they are using an ERC20 token.

Get Draft Bounties
Just GET /bounty/draft/?user_id={user_id}

GET User Profile
JUST GET /auth/user/{address}/profile

Logout
GET /auth/logout/

Get Current User
You use this to check if the user is logged in or not.
GET /auth/user/

User Settings Endpoint
You just do a POST on /auth/user/settings/ (PUT if you're editing)
if you need the structure - just use the profile endpoint. The profile endpoint returns settings.

{
  emails: {
    both: {
      RatingIssued: true,
    },
    issuer: {
      BountyComment: true,
      BountyExpired: true,
      TransferRecipient: true,
      FulfillmentUpdatedIssuer: true,
      FulfillmentSubmittedIssuer: true,
    },
    activity: true,
    fulfiller: {
      FulfillmentAcceptedFulfiller: false,
    }
  }
}

Notifications
Notification endpoints - there i ACTIVITY, PUSH, and TRANSACTION
Just replace in the url
GET /notifications/activity/user/{user_id}/

View Notification
GET /notifications/activity/push/{notification_id}/view/

View ALL
GET /notifications/activity/user/{user_id}/view_all/


GET Bounty Comments
GET /bounty/{bounty_id}/comment/

Create Bounty Comments
POST /bounty/{bounty_id}/comment/ - just need to send a {'text': 'comment'}

GET Reviews For Submission
GET /bounty/{bounty_id}/fulfillment/{fulfillment_id}/review/

ADD Review for submission
POST /bounty/{bounty_id}/fulfillment/{fulfillment_id}/review/ {rating: 2, review: 'sucks'}

Needs ENS support

We should add ENS support to our application, such that any time an address is displayed on our UI, we instead display their ENS name (if they have one which resolves to that address).

@villanuevawill Please share your thoughts on how we should implement this in the application (architecture wise)

@decanus we need to bounty this shit!

`yarn install` fortawesome 401 unauthorized

hi, i cloned the project and ran yarn install. when i do, i run into this error: error An unexpected error occurred: "https://npm.fontawesome.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.10.2.tgz: Request failed \"401 Unauthorized\"".. is there a fix for this?

Incorrect fulfillment acceptance rate

Hi guys, not sure if this is the best place to report this but here it goes.

I noticed that the fulfillment acceptance rate show on my profile page is 27%. AFAIK all bounties have been fulfilled so I this this should show 100%.

Perhaps this has to do with the fact that 7/8 bounties originate from Gitcoin? Does Bounties Network pick those up automatically?

HIRING CHALLENGE - Profile Banner

This task is a hiring challenge task. Someone has already been approved to work on it. Bounties network has posted 8 bounties on gitcoin in the last week and only 2 of these have been preselected. If you are interested in diving into a similar task like this, please join our community and let us know. We have many more tasks coming on gitcoin :)

Description

image

Set up the profile banner for users. This should be calculated by the % of sections completed on the profile settings page.

Also, 2 components should be added to the core component library along with stories for storybook.

  1. Progress component
  2. Page Banner component

Definition of Done

  • Inclusion of both components
  • Looks and matches the design
  • Communication with the team on implementation, plans and goals
  • Fully functional

Requirements

A correct submission will:

  • Build two components and add them to storybook
  • Have the banner pop up on the dashboard if < 100%

Please communicate with [email protected] and join our slack channel to communicate further:
https://join.slack.com/t/bountiesnetwork/shared_invite/enQtMzA2Mjk3MzAzODQwLTZjN2UxMmU5MWYxZTVmMmM4OGNjZDRiMDgwYTVhOTIwYmQ4MjVlMjNkZjYzOTE4MWI4OTFhOWE4ZTUzN2MyNWY

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.