UNPKG

openchain-sdk-yxl-ts

Version:

OpenChain SDK for browser

254 lines (202 loc) 4.71 kB
# OpenChain SDK OpenChain SDK for browser environments. ## Installation ```bash npm install openchain-sdk-yxl ``` ## Required Peer Dependencies The SDK requires the following peer dependencies to be installed in your project: ```bash npm install buffer events process ``` ## Usage ### 在 Vite 项目中使用 1. 安装必要的依赖: ```bash npm install buffer events process ``` 2. 配置 vite.config.js: ```javascript import { defineConfig } from 'vite'; export default defineConfig({ resolve: { alias: { buffer: 'buffer', process: 'process/browser', events: 'events' } }, define: { 'process.env': {}, global: 'globalThis' } }); ``` 3. 在入口文件中初始化环境: ```javascript import { Buffer } from 'buffer'; import process from 'process'; window.Buffer = Buffer; window.process = process; window.global = window; ``` 4. 使用SDK: ```javascript import OpenChainSDK from 'openchain-sdk-yxl'; // 或者 import { OpenChainSDK } from 'openchain-sdk-yxl'; const sdk = new OpenChainSDK({ host: 'your-api-host', chainID: 0 }); ``` ### 在 Create React App 中使用 1. 安装必要的依赖: ```bash npm install buffer events process react-app-rewired ``` 2. 配置 config-overrides.js: ```javascript const webpack = require('webpack'); module.exports = function override(config) { config.resolve.fallback = { buffer: require.resolve('buffer/'), process: require.resolve('process/browser'), events: require.resolve('events/') }; config.plugins.push( new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'], process: 'process/browser' }) ); return config; }; ``` 3. 更新 package.json 中的 scripts: ```json { "scripts": { "start": "react-app-rewired start", "build": "react-app-rewired build", "test": "react-app-rewired test" } } ``` 4. 在入口文件中初始化环境: ```javascript import { Buffer } from 'buffer'; import process from 'process'; window.Buffer = Buffer; window.process = process; window.global = window; ``` 5. 使用SDK: ```javascript import OpenChainSDK from 'openchain-sdk-yxl'; // 或者 import { OpenChainSDK } from 'openchain-sdk-yxl'; const sdk = new OpenChainSDK({ host: 'your-api-host', chainID: 0 }); ``` ### 在 Webpack 项目中使用 1. 安装必要的依赖: ```bash npm install buffer events process ``` 2. 配置 webpack.config.js: ```javascript const webpack = require('webpack'); module.exports = { resolve: { fallback: { buffer: require.resolve('buffer/'), process: require.resolve('process/browser'), events: require.resolve('events/') } }, plugins: [ new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'], process: 'process/browser' }) ] }; ``` 3. 在入口文件中初始化环境: ```javascript import { Buffer } from 'buffer'; import process from 'process'; window.Buffer = Buffer; window.process = process; window.global = window; ``` 4. 使用SDK: ```javascript import OpenChainSDK from 'openchain-sdk-yxl'; // 或者 import { OpenChainSDK } from 'openchain-sdk-yxl'; const sdk = new OpenChainSDK({ host: 'your-api-host', chainID: 0 }); ``` ## API Examples ### Account Operations ```javascript // Create account const result = await sdk.account.create(); console.log(result); // Get account info const info = await sdk.account.getInfo('your-account-address'); console.log(info); ``` ### Contract Operations ```javascript // Deploy contract const contractResult = await sdk.contract.createContract({ sourceAddress: 'your-address', initBalance: '10', type: 0, payload: 'contract-code' }); console.log(contractResult); // Call contract const callResult = await sdk.contract.call({ contractAddress: 'contract-address', input: 'method-name' }); console.log(callResult); ``` ### WebSocket Usage ```javascript import { WebSocketClient } from 'openchain-sdk-yxl'; const ws = new WebSocketClient({ url: 'ws://your-ws-url', autoReconnect: true }); ws.on('connected', () => { console.log('Connected to WebSocket server'); }); ws.on('transaction', (message) => { console.log('New transaction:', message); }); // Subscribe to transactions ws.subscribeTx(['your-account-address']); ``` ## Browser Compatibility The SDK requires the following browser environment support: - Buffer (通过 buffer 包提供) - Process (通过 process 包提供) - Events (通过 events 包提供) Minimum browser versions supported: - Chrome >= 60 - Firefox >= 60 - Safari >= 12 - Edge >= 79 ## TypeScript Support The package includes TypeScript definitions. No additional @types package is required. ## License ISC