Needlessly Provoking Marsupials

    web3-minerva-card
    TypeScript icon, indicating that this package has built-in type declarations

    0.2.1 • Public • Published

    About

    This library implements a module for web3.js which allows to sign arbitrary Ethereum transactions with the Minerva Card.
    It's suited for deployments of desktop Dapps or Dapps running on standalone devices (e.g. a Raspberry Pi).
    At the moment it's not suited for browser Dapps because of the limitations of the Web platform in regard to accessing NFC devices.

    Requirements

    • Linux OS - tested with Ubuntu 18.04 LTS - but most other common Linux distros should do as well
    • Node.js v10 LTS (tested with v10.15.3)
    • NPM (tested with v6.4.1)
    • A Minerva Card (based on a high-security Infineon NFC chip)
    • An NFC Card reader that is supported by PCSC lite
    • The pcsclite libraries need to be installed on the system. For example, in Debian/Ubuntu: apt-get install libpcsclite1 libpcsclite-dev
    • libudev and libusb 1.0.8 or later
    • Ethereum or an Ethereum compatible sidechain (e.g. ARTIS)

    Example

    const web3 = require('web3');
    const web3MC = require('web3-minerva-card');
     
    function wait(ms) {
      const start = new Date().getTime();
      let end = start;
      while (end < start + ms) {
        end = new Date().getTime();
      }
    }
     
    async function test() {
      console.log('started a test!');
      const cardSigner = new web3MC.MinervaCardTransactionSigner(1, true);
      const web3Address = 'https://rpc.tau1.artis.network';
     
      const web3Options = {
        transactionSigner : cardSigner,
      };
     
      const web3Instance = new web3(web3Address, undefined, web3Options);
     
      const transaction = {
        from: '0x756269ce7e0285670ecbd234f230645efba049d3' /* requires to be the address of the MinervaCard */,
        to:   '0x3939a535d686da047c589c80538ceb6cffc933ee',
        value: '0x1000',
        gasPrice: web3Instance.utils.toHex('100000000000'), // 100 gwei
        gas:  web3Instance.utils.toHex('21000'),
      };
     
      console.log('sending transaction...');
      const result = await web3Instance.eth.sendTransaction(transaction);
      console.log('transaction sent!', result);
    }
     
    test();
    wait(600000);

    Troubleshooting

    Linux

    There are known problems with PC/SC Smart Card Daemon (pcscd). Sometimes the card reader stops working immediately after plugging it in or booting up the computer. A restart of the daemon can help in this case: systemctl restart pcscd

    Install

    npm i web3-minerva-card

    DownloadsWeekly Downloads

    1

    Version

    0.2.1

    License

    Apache-2.0

    Unpacked Size

    46.4 kB

    Total Files

    6

    Last publish

    Collaborators

    • surfingnerd