Giter Site home page Giter Site logo

bat-native-confirmations's People

Contributors

bridiver avatar emerick avatar kevinlawler avatar nejczdovc avatar tmancey avatar

Stargazers

 avatar  avatar

Watchers

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

Forkers

isabella232

bat-native-confirmations's Issues

Changes to how unblind and BatchDLEQProof::verify are being called in challenge-bypass-ristretto-ffi

As part of the security review against challenge-bypass-ristretto-ffi Token::unblind and BatchDLEQProof::verify were combined to make the library more misuse resistant.

The the combined function looks like:
pub fn verify_and_unblind(tokens: &[Token], signed_tokens: &[SignedToken], proof: BatchDLEQProof, public_key: PublicKey) -> Vec<UnblindedToken>

We need to change the calling code to accommodate.

If catalog is stale user may not be rewarded for viewing an Ad

If the public key fails to validate in the following code:

// Validate public key
  auto catalog_issuers = confirmations_->GetCatalogIssuers();

  auto iterator = catalog_issuers.find(public_key_base64);
  if (iterator == catalog_issuers.end()) {
    BLOG(ERROR) << "Response public_key: " << public_key_base64
        << " was not found in the catalog issuers";
    OnRedeem(FAILED);
    return;
  }
  auto issuer_name = iterator->second;

then a user may not be rewarded for viewing an Ad if the Catalog is stale as OnRedeem(FAILED) removes the unblinded token and does not try again

Implement timers

Subtasks:

  • Implement OnTimer as a proxy to bat-native-ledger OnTimer
  • Refactor to use OnTimer to trigger events based up on spec
  • Implement SetTimer as a proxy to bat-native-ledger SetTimer
  • Refactor to use SetTimer to schedule events based up on spec
  • Implement KillTimer as a proxy to bat-native-ledger KillTimer
  • Refactor to use KillTimer to unschedule events based up on spec

Persist and reset Confirmations state

Subtasks:

  • Implement Save as a proxy to bat-native-ledger Save
  • Implement Load as a proxy to bat-native-ledger Load
  • Implement Reset as a proxy to bat-native-ledger Reset

Update Confirmations wallet information

Subtasks:

  • Implement WalletInfo data structure, see WALLET_INFO_ST in bat-native-ledger for data structure
  • Implement SetWalletInfo
  • Refactor to use WalletInfo provided to SetWalletInfo

Initialize Confirmations

Subtasks:

  • Implement initialization
  • Refactor Initialize to use real data as currently initializes tests

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.