0.2.5 • Published 7 months ago

joyid-evm-test v0.2.5

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

@joyid/evm

Installation

npm i @joyid/evm

Usage

Config

Config your app name and logo, and the network you want to connect to.

import { initConfig } from '@joyid/evm'

// in your app entry file
initConfig({
  // your app name
  name: 'EVM demo',
  // your app logo,
  logo: 'https://fav.farm/🆔',
  // optional, config for the network you want to connect to
  network: {
    chainId: 1,
    name: 'Ethereum Mainnet',
  },
  // optional
  rpcURL: 'https://cloudflare-eth.com'
})

connect(config?: Config): Promise<string>

Connect to JoyID wallet and return a address.

import { connect } from '@joyid/evm'

async function connectOnClick() {
  const address = await connect()
  console.log(`Connected with address ${address}`)
}

signMessage(message: string | Uint8Array, signerAddress: string): Promise<string>

Signers an EIP-191 prefixed personal message. If the message is a string, it is signed as UTF-8 encoded bytes. It is not interpretted as a BytesLike; so the string "0x1234" is signed as six characters, not two bytes.

To sign that example as two bytes, the Uint8Array should be used (i.e. new Uint8Array([ 0x12, 0x34 ])).

import { signMessage } from '@joyid/evm'

async function signMessageOnClick() {
  const signature = await signMessage('Hello, world!', '<your connected address>')
  console.log(`Signature: ${signature}`)
}

signTransaction(tx: Transaction, signerAddress?: string): Promise<string>

Signs tx, returning the fully signed serialized transaction.

import { signTransaction } from '@joyid/evm'

async function signTransactionOnClick(tx) {
  const signedTx = await signTransaction(tx, '<your connected address>')
  await provider.sendTransaction(signedTx)
}

sendTransaction(tx: Transaction, signerAddress?: string): Promise`

Signs and send tx, returning tx hash.

import { sendTransaction } from '@joyid/evm'

async function signTransactionOnClick(tx) {
  const txhash = await sendTransaction(tx, '<your connected address>')
  console.log(txhash)
}

signTypedData(typedData: TypedData, signerAddress: string): Promise<string>

Signs typed data and calculates an Ethereum-specific signature in EIP-712.

import { signTypedData } from '@joyid/evm'

const typedData = {
  domain: {
    name: 'Ether Mail',
    version: '1',
    chainId: 1,
  verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
  },
  types: {
    Person: [
      { name: 'name', type: 'string' },
      { name: 'wallet', type: 'address' },
    ],
    Mail: [
      { name: 'from', type: 'Person' },
      { name: 'to', type: 'Person' },
      { name: 'contents', type: 'string' },
    ],
  },
  primaryType: 'Mail',
  message: {
    from: {
      name: 'Cow',
      wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
    },
    to: {
      name: 'Bob',
      wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
    },
    contents: 'Hello, Bob!',
  },
}

async function signTypedDataOnClick() {
  const signature = await signTypedData(typedData, '<your connected address>')
  console.log(`Signature: ${signature}`)
}
0.2.5

7 months ago

0.2.3

7 months ago

0.2.2

7 months ago