UNPKG

@okwallet/extension

Version:

OKX Wallet provides official SDK packages of multiple chains including [Ethereum](./wallet), [Aptos](./aptos-api), [Tron](./tron-api) and Solana. Developers can interact with different on-chain projects through OKX Wallet SDK.

89 lines (80 loc) 2.44 kB
import dataProxy from '../utils/dataProxy'; import { check } from '../utils'; const Aptos = { signMessage: async ({ provider, payload }) => { try { const response = await provider.aptos.signMessage(payload); return response.signature; } catch (e) { throw e; } }, sendTransaction: async ({ provider, payload }) => { try { const txnHash = await provider.aptos.signAndSubmitTransaction(payload); return txnHash; } catch (e) { throw e; } }, registerAptosCoin: async ({ contractAddress }) => { if (!check()) { throw new Error('OKX plugin not installed'); } const payload = { function: '0x1::managed_coin::register', type_arguments: [contractAddress], arguments: [], type: 'entry_function_payload' }; const txHash = await Aptos.sendTransaction({ provider: window.okexchain, payload }); return txHash; }, checkRegStatusAptosCoin: async ({ address, contractAddress }) => { const currencyStr = `0x1::coin::CoinStore<${contractAddress}>`; try { const resource = await dataProxy.get(`https://fullnode.mainnet.aptoslabs.com/v1/accounts/${address}/resource/${currencyStr}`); if (resource.data) { return true; } return false; } catch (e) { return false; } }, checkAndRegAptosCoin: async ({ address, contractAddress }) => { try { const registerResult = await Aptos.checkRegStatusAptosCoin({ address, contractAddress }); if (!registerResult) { const txHash = await Aptos.registerAptosCoin({ contractAddress }); return { registered: false, hash: txHash, }; } return { registered: true }; } catch (e) { throw e; } }, getAptosBalance: async ({ address, currency }) => { const currencyStr = `0x1::coin::CoinStore<${currency}>`; try { const resource = await dataProxy.get(`https://fullnode.mainnet.aptoslabs.com/v1/accounts/${address}/resource/${currencyStr}`); const balance = resource.data.coin.value; return balance; } catch (e) { throw e; } }, getAptosTransaction: async (hash) => { try { const transaction = await dataProxy.get(`https://fullnode.mainnet.aptoslabs.com/v1/transactions/by_hash/${hash}`); return transaction.success; } catch (e) { throw e; } }, }; export default Aptos;