openchain-sdk-yxl-ts
Version:
OpenChain SDK for browser
254 lines (202 loc) • 4.71 kB
Markdown
# 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