@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
JavaScript
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;