Socket
Socket
Sign inDemoInstall

@identity.com/gateway-eth-ts

Package Overview
Dependencies
98
Maintainers
12
Versions
62
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @identity.com/gateway-eth-ts

Adapter library for Identity.com gateway token system on Ethereum


Version published
Maintainers
12
Install size
31.9 MB
Created

Readme

Source

gateway-eth-ts

Version Downloads/week License

Gateway ETH TS library

This client library allows JS/TS applications to communicate with Gateway token system on Ethereum blockchain. Common methods include validation of existing tokens, new gateway token issuance, token freezing/unfreezing and revocation.

Installation

yarn add @identity.com/gateway-eth-ts

Metamask integration example

import {
  GatewayTs,
} from "@identity.com/gateway-eth-ts";
import {
  getDefaultProvider,
  Wallet,
  providers
} = from 'ethers';
import { useWallet } from 'use-wallet';


(async function() {
  const { ethereum } = useWallet();
  const chainId = Number(ethereum.chainId);
  const provider = new ethers.providers.Web3Provider(
      ethereum,
      chainId
  );
  const signer = provider.getSigner();
  const network = await provider.getNetwork();
  const gateway = new GatewayTs(gatekeeper, network, DEFAULT_GATEWAY_TOKEN_ADDRESS);
  const testUser = '0xD42Ef952F2EA1E77a8b771884f15Bf20e35cF85f';
  await (await gateway.issue(testUser)).wait();
})();

Utility functions

Token bitmask construction

The easiest way to associate certain flags with the gateway token is by using list of supported KYC flags, and addFlagsToBitmask function.

  flags = [KYCFlags.IDCOM_1];
  bitmask = addFlagsToBitmask(bitmask, flags);

Examples

Charges

Charging in Eth:

// when charging in ETH - the gatekeeper cannot send the transaction directly
// Use GatewayTsTransaction to generate a transaction that can be sent to the client
const gateway = new GatewayTsTransaction(
    gatekeeper,
    DEFAULT_GATEWAY_TOKEN_ADDRESS
);
const charge = makeWeiCharge(chargeValue, recipientAddress);
const tx = gateway.issue(wallet, gatekeeperNetwork, undefined, undefined, charge)

// send tx to the user to sign and send

Charging in ERC20:

const charge = makeERC20Charge(
    chargeValue,
    erc20TokenAddress,
    userAddress,
    recipientAddress
);
const approvalTx = await approveERC20Charge(
    charge,
    provider
);
const internalApproveTx = await approveInternalERC20Charge(
    charge,
    gatekeeperNetwork,
    provider
);
// send approvalTx and approveInternalTx to the user to sign
// once the user has signed the above transactions

const gateway = new GatewayTs(
    gatekeeper,
    DEFAULT_GATEWAY_TOKEN_ADDRESS
);

await gateway.issue(wallet, gatekeeperNetwork, undefined, undefined, charge)

);

FAQs

Last updated on 24 Jan 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc