0.1.86 • Published 1 year ago

endless-web3-sdk v0.1.86

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

SDK for Endless Web Wallet

Install

npm install 'endless-ts-sdk'
npm install 'endless-web3-sdk'

Usage

import {
  Network,
  EntryFunctionABI,
  TypeTagAddress,
  TypeTagU128,
  AccountAddress,
  EndlessConfig,
  Endless,
  AccountAuthenticator
} from 'endless-ts-sdk'

import {
  EndlessJsSdk,
  UserResponseStatus,
  EndlessSignAndSubmitTransactionInput,
  EndlessWalletTransactionType,
  EndLessSDKEvent,
} from 'endless-web3-sdk';

const jssdk = new EndlessJsSdk({
  network: Network.TESTNET,
});

const connectWalletHandler = async () => {
  const connectRes = await jssdk.connect();

  if (connectRes.status === UserResponseStatus.APPROVED) {
    setAccountAddress(connectRes.args.account);
  }
};

const disconnectWalletHandler = () => {
  jssdk.disconnect().then(() => {
    console.log('disconnect success');
  });
};

const getAccountHandler = async () => {
  const getAccountRes = await jssdk.getAccount();

  if (getAccountRes.status === UserResponseStatus.APPROVED) {
    console.log('getAccountRes =====>', getAccountRes.args.account);
  }
};

const signMessageHandler = async () => {
  if (!signMessage || !accountAddress) {
    return;
  }

  const signMessageRes = await jssdk.signMessage({ message: signMessage });

  if (signMessageRes.status === UserResponseStatus.APPROVED) {
    setSignature(signMessageRes.args.signature.toString());
  }
};

const signAndSubmitTrancactionHandler = async () => {
  if (!accountAddress) {
    alert('please connect wallet');
    return;
  }

  if (!toAccountAddress || !transferAmount) {
    alert('please input toAccountAddress and transferAmount');
    return;
  }

  const transferEDSAbi: EntryFunctionABI = {
    typeParameters: [],
    parameters: [new TypeTagAddress(), new TypeTagU128()],
  };

  const transferData: EndlessSignAndSubmitTransactionInput = {
    payload: {
      function: '0x1::endless_account::transfer',
      functionArguments: [
        AccountAddress.fromBs58String(toAccountAddress),
        BigInt(parseInt(transferAmount) * 100000000),
      ],
      abi: transferEDSAbi,
    },
  };

  const transactionRes = await jssdk.signAndSubmitTransaction(transferData);
  if (transactionRes.status === UserResponseStatus.APPROVED) {
    console.log('signAndSubmitTransaction transactionRes =====>', transactionRes);
  }
};

const signTrancactionHandler = async () => {
  const config = new EndlessConfig({
    network: Network.TESTNET
  })
  const endless = new Endless(config)
  if (!accountAddress) {
    alert('please connect wallet');
    return;
  }

  const transferData: EndlessSignAndSubmitTransactionInput = {
    payload: {
      function: '0x1::endless_account::transfer',
      functionArguments: [
        AccountAddress.fromBs58String(toAccountAddress),
        BigInt(parseInt(transferAmount) * 100000000),
      ],
      abi: transferEDSAbi,
    },
  };

  const txn = await endless.transaction.build.simple({
    sender: accountAddress,
    data: transferData.payload
  });
  // EndlessWalletTransactionType.MULTI_AGENT
  const transactionRes = await jssdk.signTransaction(txn, EndlessWalletTransactionType.SIMPLE);
  if (transactionRes.status === UserResponseStatus.APPROVED) {
    console.log('signTransaction transactionRes =====>', transactionRes);
    const data = Hex.fromHexString(transactionRes.args.data).toUint8Array();
    const deserializer = new Deserializer(data);
    const txnRes = AccountAuthenticator.deserialize(deserializer);
    console.log('AccountAuthenticator deserializer', txnRes);
  }
};

jssdk.onNetworkChange((res) => {
  console.log('onNetworkChange res: ', res);
});

jssdk.onAccountChange((accountAddress) => {
  if (res.account) {
    console.log('onAccountChange res', res);
  }
});

jssdk.on(EndLessSDKEvent.CONNECT, (res) => {
  console.log('connect', res);
});

jssdk.on(EndLessSDKEvent.DISCONNECT, (res) => {
  console.log('disconnect', res);
});

jssdk.on(EndLessSDKEvent.ACCOUNT_CHANGE, (accountAddress) => {
  console.log('accountChange', accountAddress);
  if (accountAddress.account) {
    setAccountAddress(accountAddress.account);
  }
});

jssdk.on(EndLessSDKEvent.NETWORK_CHANGE, (networkInfo) => {
  console.log('networkInfo', networkInfo);
});

const openHandler = () => {};
jssdk.on(EndLessSDKEvent.OPEN, openHandler);
jssdk.off(EndLessSDKEvent.OPEN, openHandler);

const closeHandler = () => {};
jssdk.on(EndLessSDKEvent.CLOSE, closeHandler);
jssdk.off(EndLessSDKEvent.CLOSE, closeHandler);

jssdk.changeNetwork({
  network: Network.MAINNET,
});
0.1.85

1 year ago

0.1.86

1 year ago

0.1.80

1 year ago

0.1.81

1 year ago

0.1.82

1 year ago

0.1.83

1 year ago

0.1.84

1 year ago

0.1.79

1 year ago

0.1.77

1 year ago

0.1.78

1 year ago

0.1.74

1 year ago

0.1.75

1 year ago

0.1.76

1 year ago

0.1.70

1 year ago

0.1.71

1 year ago

0.1.72

1 year ago

0.1.73

1 year ago

0.1.67

1 year ago

0.1.68

1 year ago

0.1.69

1 year ago

0.1.66

1 year ago

0.1.65

1 year ago

0.1.63

1 year ago

0.1.64

1 year ago

0.1.61

1 year ago

0.1.62

1 year ago

0.1.58

2 years ago

0.1.59

2 years ago

0.1.60

2 years ago

0.1.57

2 years ago

0.1.55

2 years ago

0.1.56

2 years ago

0.1.54

2 years ago

0.1.52

2 years ago

0.1.53

2 years ago

0.1.50

2 years ago

0.1.51

2 years ago

0.1.49

2 years ago

0.1.43

2 years ago

0.1.45

2 years ago

0.1.46

2 years ago

0.1.47

2 years ago

0.1.48

2 years ago

0.1.40

2 years ago

0.1.37

2 years ago

0.1.38

2 years ago

0.1.39

2 years ago

0.1.35

2 years ago

0.1.36

2 years ago

0.1.33

2 years ago

0.1.24

2 years ago

0.1.25

2 years ago

0.1.26

2 years ago

0.1.21

2 years ago

0.1.23

2 years ago

0.1.15

2 years ago

0.1.16

2 years ago

0.1.14

2 years ago

0.0.10

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.1.4

2 years ago

0.0.5

2 years ago

0.1.3

2 years ago

0.0.4

2 years ago

0.1.6

2 years ago

0.0.7

2 years ago

0.1.5

2 years ago

0.0.6

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago