# Provider API

### connect(连接钱包)

```javascript
const res = await NaboxWallet.aptos.connect();
// 返回值
{
    address: '0xd2cefbc892ec340.....eafd72c9d035629f6ea49df', // 账户地址
    publicKey: '0x63a97883e17f83......e1604beeb8ff984aa3fd1a' // 公钥(ed25519)
}
```

### account(获取已连接的账户信息)

```javascript
const res = await NaboxWallet.aptos.account();
// 返回值
{
    address: '0xd2cefbc892ec340.....eafd72c9d035629f6ea49df', // 账户地址
    publicKey: '0x63a97883e17f83......e1604beeb8ff984aa3fd1a' // 公钥(ed25519)
}
```

### network(获取当前连接的网络)

```javascript
const network = await NaboxWallet.aptos.network();

// "Mainnet"
```

### signAndSubmitTransaction(签名并广播交易)

```javascript
const transaction = {
  arguments: ['0xd2cefbc892ec340.....eafd72c9d035629f6ea49df', '666'],
  function: '0x1::coin::transfer',
  type: 'entry_function_payload',
  type_arguments: ['0x1::aptos_coin::AptosCoin'],
};

const pendingTransaction = NaboxWallet.aptos.signAndSubmitTransaction(transaction);

type PendingTransactionResponse = {
    type: TransactionResponseType.Pending;
    hash: string;
    sender: string;
    sequence_number: string;
    max_gas_amount: string;
    gas_unit_price: string;
    expiration_timestamp_secs: string;
    payload: TransactionPayloadResponse;
    signature?: TransactionSignature;
};
```

### signTransaction(不建议且不常用)

```javascript
const transaction = {
  arguments: ['0xd2cefbc892ec340.....eafd72c9d035629f6ea49df', '666'],
  function: '0x1::coin::transfer',
  type: 'entry_function_payload',
  type_arguments: ['0x1::aptos_coin::AptosCoin'],
};

const signedTransaction = NaboxWallet.aptos.signTransaction(transaction);

// 返回签名后的transaction对象
```

### signMessage(消息签名)

```javascript
interface SignMessagePayload {
  address?: boolean; // 是否需要在返回值添加上当前账户地址返回
  application?: boolean; // 是否需要在返回值加上DApp域名
  chainId?: boolean; // 链id
  message: string; // 需要签名的消息
  nonce: string; // NONCE值
}

const messagePayload = {
  message: 'helllo aptos'; // 需要签名的消息
  nonce: 'aptos1'; // NONCE值
};

const res = NaboxWallet.aptos.signMessage(messagePayload);

interface SignMessageResponse {
  address: string; // 当前签名的账户地址
  application: string;// 域名
  chainId: number; // 当前的aptos链id
  fullMessage: string; // 完整的签名信息
  message: string; // 签名的消息
  nonce: string; // 签名的nonce值
  prefix: string; // aptos前缀
  signature: string; // 签名后的消息
}

// SignMessageResponse
```

### 事件

<pre class="language-javascript"><code class="lang-javascript"><strong>//  监听账户改变
</strong><strong>NaboxWallet.aptos.onAccountChange((changeAccount) => {
</strong>  console.log(changeAccount);
});

// 监听断开连接
NaboxWallet.aptos.onDisconnect(() => {
  console.log('disconnected');
});
</code></pre>
