Code Monkey home page Code Monkey logo

adex-platform's People

Contributors

avipatel91 avatar dependabot[bot] avatar ivopaunov avatar ivshti avatar rori4 avatar simzzz avatar vanina-iv 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

Watchers

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

adex-platform's Issues

Account screen (to manage identities)

a new page in the app which should contain:

  • a header: this will have the Identity acc address (labelled as "Account address"/"Deposit to this address") and status (Pending or Deployed)
  • another header: balances, and a link to etherscan to see all balances
  • a list of keys that can control this identity account; with an ability to add/remove; this should be carefully done in order to ensure the user can't remove all controlling keys from the acc (in other words, there's always at least one full privileged key controlling this account)

The pending (counterfactual) state is needed cause the app will allow users to use it without the identity contract being deployed (before receiving enough tokens to deploy it)

When we add a metamask/trezor/ledger, we should auto-remove the AdEx recovery service, but also perhaps warn “warning: once you do that, you’d no longer be able to recover your account by email”; warning is tricky cause it must not discourage the user from doing it, which will increase their security greatly


Anti-bricking: before doing any execute on the identity, we should check whether there'd be at least one key with a full privilege level left in that Identity; if not, we shouldn't allow that execute; otherwise the Identity contract may be bricked

Better signed messages without EIP712

since EIP712 is super unstable, we can consider doing something like Airswap, where they prefix the message with their own prefix

e.g. "By signing this message, I acknowledge I am signing an AdEx bid with this hash:"

it adds a level of UX and a small but significant improvement to security, without EIP712

Error creating AdUnit

I am unable to create a new ad unit in advertiser mode, i tried to create new ad unit standalone or inside a campaign none of them work. It is a bit annoying the error says "Error creating AdUnit:[object Object]. I think you should have some unit tests that check these essential functions upon every release to prevent this from getting through to users.

v.2.1.5-beta

consider Portis

https://portis.io/

this is useful for users who don't have metamask but want to interact with the network

It's obviously not as secure as Metamask or a HW wallet, so the user must be warned

Minor bugs

Bug1: Archive Campaign dialog button "No" is missing an N so it displays "o". Please see screenshot here: https://imgur.com/a/Arf9QqO.

Bug2: Create new ad slot wizard crop feature turns avatar image or fallback image to black if the image has transparency. Please see screenshots here: https://imgur.com/a/vjtpsPJ

Cancel button does not work

Checked in, "New Slot", "Create Account" and "Restore Account" Dialogs, Cancel button does not close the dialog.

Authenticate with MetaMask

So I'm using AdEx dapp on Android with Firefox app, when I sign in metamask extension nothing happens on AdEx.
Is there any button to tap? I mean the AdEx dapp is not showing proprely on my device and I can't zoom out the page.

Check for existing grant account

Check for existing grant account in local storage by email and password.
Do not allow to use the same key from mail and password when creating new account.

evaluate metatx

https://metatx.io/

related to #23

also related to the new protocol (adex-protocol-eth)

considerations:

  • how does it play with our SC calls where msg.sender does not matter; in that case, we only need someone to submit a tx from any pk
  • how easy it is to integrate
  • how can it help us with identity/login

"Ad Spaces" screen (new name for slots?)

consider an "ad spaces" or "ad slots" screen where publishers can register supply

this is currently done, we just need to decide whether to rename it and adapt it to the new protocol (to work with the Market)

Fallback image doesn't display when integrated in Wordpress

Tried integrating Publisher Ad Slot in two different Wordpress websites.
Everything seems to be okay with the integration, but when I load the Wordpress website, only an empty rectangle displays without the Fallback image for the Ad slot. The rectangle is clickable and when I click, the Fallback image opens in a new window.

screenshot 2019-02-15 at 10 43 16

screenshot 2019-02-15 at 10 43 05

screenshot 2019-02-15 at 10 43 31

export of receipts (statements/reports) of campaign spend/earnings

this report should work for both sides (advertiser/publisher)

  • For the advertiser, it should be per-campaign, with a breakdown of the spend by website

  • For the publisher, it should be time-based, with a total aggregate of how much they earned

it can be used for accounting purposes in most jurisdictions; unfortunately it probably won't be as good as having an invoice, but it's something

Visualisation of images on the Publisher side distorts image ratio

When creating 728x90 ad slot I have no problems uploading 728x90 fallback and avatar images, but when I open the dashboard the images in slots overview and in each slot are stretched. When I open an image it looks cropped.

This might be a problem for publishers for they won't be able to tell differences between similar adslots and preview their visuals.

screen shot 2019-02-14 at 14 31 17
screen shot 2019-02-14 at 14 30 57

v4: Signup Flow (with Identity)

Implement the new sign up flow which is designed for the v4 adex protocol.

Also see #43

initial screen

The user is greeted with two options:

  • create a quick account: this option is recommended if you just want to get started quickly; limited to 100 DAI [read more, with a link to medium explaining quick accounts]
  • create a full account: this option is recommended if you have Metamask/Trezor/Ledger

Quick Account

  • enter email/password, verify password, warn the user of the dangers and the limits
  • confirm email
  • add backup keys

later down the road we can implement the full quick account proposal: AmbireTech/adex-protocol-eth#35

Full Account

  • ask metamask/trezor/ledger, like MyCrypto
  • if it's trezor/ledger, select an address
  • ask for confirmation, show the procedure that you're gonna do

Final

  • show a dialog that has the deposit address (account address); this dialog can be dismissed (e.g. if you're a publisher)
    • if it's through the "Full account", show options to fund it either through your account or through Uniswap; only DAI allowed initially
    • redeem a voucher code

publishers: campaign withdraw UI, inclusion proof checks

There should be a UI In the dApp that allows publishers to see all campaigns they've earned from: expired/exhausted(past) AND active

to guarantee publisher security, inclusion proofs must be checked on the client side (in the dapp)

in other words, the adex-protocol-eth js libs should be used to check whether the latest signed state (as collected by the validators, directly) really guarantees you the revenue that it appears to

Revenue screen

the new dapp should have a "Revenue" page that shows all the campaigns a publisher has earned from, how much they've earned, how much they've withdrawn and how much they have left to withdraw

they can easily withdraw/batch withdraw from this page, as well as authorize the relayer to do them

the button should be called "Turn automatic withdrawals on" and should work through the RoutineAuthorizations on the Identity contract

maybe we should use the term "Claim" rather than "withdraw", cause there will be a "Withdraw" here #43

implement daily/time-based budgets

this would be tough and would require new APIs from adex-market, cause we need to track how much we've paid per a specific time period

in other words, the market would need to "snapshot" the earnings periodically

deploy Identity: fund and then deploy mechanism

Deploying an Identity (without a grant) will require the address to be funded first. The relayer would check if the funds are sent before it will accept the deploy request.

This is why we should employ the following mechanism:

  1. the user chooses to sign up, at which point we generate the IdentityProxy code and the salt; and calculate identityAddr; we save those in localStorage
  2. the UI behaves as if this contract is already deployed
  3. when the user wishes to open a campaign (advertiser) or to create an ad slot (publisher), we prompt them to finish the Identity creation by sending funds (NOTE: is there an easier way, if they're a publisher?)
  4. once the funds are sent to the addr, we send a request to the relayer to deploy, followed by a request to open the campaign

drop airswap

uniswap can work better for most things we need

Campaign editor in advertiser mode

I can't save changes to a campaign or archive a campaign in advertiser mode It is only possible to create new campaigns!

v.2.1.5-beta

Target tags

Advertisers and Publishers should have the ability to add tags to their adUnits/AdSlots in order to have some basic filtering for the bids.

  • The tags are set to specific adUnit/adSlot when they are created. (e.g sports, tech, etc...)
  • For particular adSlot the publisher should see only bids for adUnits that match some of the slot tags.
  • We are gonna have some predefined tags but the users must be able to add their own. The tags must be stored in some db at the adex-node. In the dApp there must be autocomplete with multi select (e.g. location target but with the ability to add new values).
  • The predefined constants must be added to adex-constants and added to adex-node (db).
  • The bids for adSlod have to be filtered in adex-node side.
  • Tags for slot/unit has to be added to the corresponding models in adex-models

consider integrating uniswap

uniswap is awesome, but the problem is it does not work with ADX cause of the ERC20 return bug

we can shim this on multiple levels

Reset button for clearing out form should be added.

A form with values that was toggled off on purpose will still have those old values when user wants to enter new/different values. Currently, the form does not clear on toggle since it can be toggled/canceled/x'd by accident (mentioned here). However, there can be instances where it was toggled off on purpose. For those cases, a reset button to clear the form might be handy to clear out old inputs that haven't been saved.

Campaigns screen

the campaigns screen should contain a table of all campaigns that you have open, with deposit, USD equivalent of the deposit, % of deposit distributed, and controls ("Cancel" button)

a popup to show pending/done transactions

a history of transactions done from the identity contract, and their status (pending or not)

should be an aggregate of everything on-chain and everything on the relayer

should have a division to show routine authorizations

Easier login via EIP1077

https://ethereum-magicians.org/t/eip-1077-executable-signed-message/405
https://eips.ethereum.org/EIPS/eip-1077

This will basically allow setting up with nothing more than a main device + backup device + potentially seed phase

and merely depositing ADX to the platform

Basically the idea is as follows:
We create a SC that we deploy via a relayer addr and give that pre-computed SC address to the user (sc address being the hash of the code + tx nonce)

once user deposits more than a min amount of adx for that, we depoy the SC (the relayer deploys the SC)

this SC is also deployed in a way that it gives ability to N addresses to control it, those being the addresses corresponding to the user's PKs (e.g. PC pk, mobile pk, backup seed derived pk)

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.