# @fusionx-finance/awgmi

> Connect to Aptos with similar [wagmi](https://github.com/wagmi-dev/wagmi) React hooks.

Latest version **2.0.0** (published 2024-03-29) · MIT license · 0 weekly downloads

## Install

```sh
npm install @fusionx-finance/awgmi
pnpm add @fusionx-finance/awgmi
yarn add @fusionx-finance/awgmi
bun add @fusionx-finance/awgmi
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.0 |
| Published | 2024-03-29 |
| First published | 2024-03-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 7 |
| Unpacked size | 262 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | bruce_fusionx |
| Keywords | fusionx, aptos, wallets |

## Links

- npm: https://www.npmjs.com/package/@fusionx-finance/awgmi
- npm.io page: https://npm.io/package/@fusionx-finance/awgmi

## Dependencies (7)

- [zustand](https://npm.io/package/zustand.md) ^4.1.1
- [eventemitter3](https://npm.io/package/eventemitter3.md) ^4.0.7
- [@ethersproject/units](https://npm.io/package/@ethersproject/units.md) ^5.7.0
- [@tanstack/react-query](https://npm.io/package/@tanstack/react-query.md) ^4.28.0
- [use-sync-external-store](https://npm.io/package/use-sync-external-store.md) ^1.2.0
- [@tanstack/react-query-persist-client](https://npm.io/package/@tanstack/react-query-persist-client.md) ^4.28.0
- [@tanstack/query-sync-storage-persister](https://npm.io/package/@tanstack/query-sync-storage-persister.md) ^4.27.1

## Recent versions

- 2.0.0 (latest) — 2024-03-29
- 1.1.0 — 2024-03-05
- 1.0.0 — 2024-03-04
- 0.2.0 — 2024-03-04

## README

# @fusionx-finance/awgmi

Connect to Aptos with similar [wagmi](https://github.com/wagmi-dev/wagmi) React hooks.

Support Aptos Wallet Connectors:

- Petra
- Martian
- Pontem
- Fewcha
- SafePal
- Trust Wallet

```jsx
import { createClient, AwgmiConfig, useConnect, getDefaultProviders, defaultChains } from '@fusionx-finance/awgmi'
import { PetraConnector } from '@fusionx-finance/awgmi/connectors/petra'
import { MartianConnector } from '@fusionx-finance/awgmi/connectors/martain'
import { SafePalConnector } from '@fusionx-finance/awgmi/connectors/safePal'
import { BloctoConnector } from '@fusionx-finance/awgmi/connectors/blocto'
import { FewchaConnector } from '@fusionx-finance/awgmi/connectors/fewcha'

// import { mainnet, testnet } from '@fusionx-finance/awgmi/core'
const chains = defaultChains // mainnet, testnet, devnet

export const client = createClient({
  connectors: [
    new PetraConnector({ chains }),
    new MartianConnector({ chains }),
    new PetraConnector({ chains, options: { name: 'Trust Wallet', id: 'trustWallet' } }),
    new SafePalConnector({ chains }),
    new BloctoConnector({ chains, options: { appId: BLOCTO_APP_ID } }),
    new FewchaConnector({ chains }),
  ],
  provider: getDefaultProviders,
  autoConnect: true,
})

function App() {
  return (
    <AwgmiConfig client={client}>
      <YourApp />
    </AwgmiConfig>
  )
}
```

## Connector

```jsx
import { useConnect, useDisconnect } from '@fusionx-finance/awgmi'

function ConnectButton() {
  const { connect, connectors } = useConnect()

  return (
    <div>
      {connectors.map((connector) => (
        <button type="button" key={connector.id} onClick={() => connect({ connector, networkName: 'mainnet' })}>
          {connector.name}
        </button>
      ))}
    </div>
  )
}
```

## Hooks

```jsx
import {
  useAccountBalance,
  useAccountBalances,
  useAccountResource,
  useAccountResources,
  useCoin,
  useCoins,
  useNetwork,
  useSendTransaction,
  useSimulateTransaction,
  useTableItem,
} from '@fusionx-finance/awgmi'
```

### Balance

```js
const { data } = useAccountBalance({
  address: Address,
  coin: '0x1::aptos_coin::AptosCoin',
  watch: true,
})
```

### Send Transaction

```js
import { UserRejectedRequestError } from '@fusionx-finance/awgmi'

const { sendTransactionAsync } = useSendTransaction()

sendTransactionAsync({
  payload: {
    type: 'entry_function_payload',
    function: '<address>::message::set_message',
    arguments: ['are we gonna make it?'],
    type_arguments: [],
  },
}).catch((err) => {
  if (err instanceof UserRejectedRequestError) {
    // handle user reject
  }
  // handle transaction error
})
```

---
_Source: https://npm.io/package/@fusionx-finance/awgmi · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
