0.1.86 • Published 4 months ago

endless-web3-sdk v0.1.86

Weekly downloads
-
License
ISC
Repository
github
Last release
4 months 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

4 months ago

0.1.86

4 months ago

0.1.80

4 months ago

0.1.81

4 months ago

0.1.82

4 months ago

0.1.83

4 months ago

0.1.84

4 months ago

0.1.79

5 months ago

0.1.77

6 months ago

0.1.78

6 months ago

0.1.74

6 months ago

0.1.75

6 months ago

0.1.76

6 months ago

0.1.70

7 months ago

0.1.71

7 months ago

0.1.72

7 months ago

0.1.73

6 months ago

0.1.67

7 months ago

0.1.68

7 months ago

0.1.69

7 months ago

0.1.66

7 months ago

0.1.65

7 months ago

0.1.63

8 months ago

0.1.64

7 months ago

0.1.61

8 months ago

0.1.62

8 months ago

0.1.58

8 months ago

0.1.59

8 months ago

0.1.60

8 months ago

0.1.57

8 months ago

0.1.55

9 months ago

0.1.56

9 months ago

0.1.54

9 months ago

0.1.52

9 months ago

0.1.53

9 months ago

0.1.50

9 months ago

0.1.51

9 months ago

0.1.49

9 months ago

0.1.43

10 months ago

0.1.45

10 months ago

0.1.46

10 months ago

0.1.47

9 months ago

0.1.48

9 months ago

0.1.40

11 months ago

0.1.37

11 months ago

0.1.38

11 months ago

0.1.39

11 months ago

0.1.35

11 months ago

0.1.36

11 months ago

0.1.33

11 months ago

0.1.24

11 months ago

0.1.25

11 months ago

0.1.26

11 months ago

0.1.21

11 months ago

0.1.23

11 months ago

0.1.15

11 months ago

0.1.16

11 months ago

0.1.14

11 months ago

0.0.10

12 months ago

0.1.2

12 months ago

0.1.1

12 months ago

0.0.9

12 months ago

0.0.8

12 months ago

0.1.4

12 months ago

0.0.5

12 months ago

0.1.3

12 months ago

0.0.4

1 year ago

0.1.6

12 months ago

0.0.7

12 months ago

0.1.5

12 months ago

0.0.6

12 months ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago