https://github.com/nemtus/symbol-sdk-openapi-generator-typescript-fetch
Symbol SDK for TypeScript with OpenAPI Generator typescript-fetch
https://github.com/nemtus/symbol-sdk-openapi-generator-typescript-fetch
blockchain cdn fetch javascript npm-package openapi-generator sdk symbol typescript
Last synced: 8 months ago
JSON representation
Symbol SDK for TypeScript with OpenAPI Generator typescript-fetch
- Host: GitHub
- URL: https://github.com/nemtus/symbol-sdk-openapi-generator-typescript-fetch
- Owner: nemtus
- License: mit
- Created: 2022-08-01T04:31:23.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-15T04:14:03.000Z (almost 3 years ago)
- Last Synced: 2025-04-12T22:45:10.073Z (8 months ago)
- Topics: blockchain, cdn, fetch, javascript, npm-package, openapi-generator, sdk, symbol, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@nemtus/symbol-sdk-openapi-generator-typescript-fetch
- Size: 598 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 66
-
Metadata Files:
- Readme: README.md
- Contributing: .github/contributing.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# symbol-sdk-openapi-generator-typescript-fetch
Symbol SDK for TypeScript with OpenAPI Generator typescript-fetch
Note: Currently, This is a very experimental level.
## For package users
### Install
```bash
npm install @nemtus/symbol-sdk-openapi-generator-typescript-fetch
```
### Usage
Example with no requestParameters
```typescript
import {
Configuration,
ConfigurationParameters,
NodeInfoDTO,
NodeRoutesApi,
} from '@nemtus/symbol-sdk-openapi-generator-typescript-fetch';
const configurationParameters: ConfigurationParameters = {
basePath: 'https://symbol-sakura-16.next-web-technology.com:3001',
};
const configuration: Configuration = new Configuration(configurationParameters);
const nodeRoutesApi: NodeRoutesApi = new NodeRoutesApi(configuration);
const response: NodeInfoDTO = await nodeRoutesApi.getNodeInfo();
console.dir(response, { depth: null });
/* Example:
{
version: 16777987,
publicKey: 'B86304B01045894ED9250B3DCD6313DC2EC0DD529B4E864EA376A2F341D3CFD4',
networkGenerationHashSeed: '57F7DA205008026C776CB6AED843393F04CD458E0AA2D9F1D5F31A402072B2D6',
roles: 3,
port: 7900,
networkIdentifier: 104,
host: 'symbol-sakura-16.next-web-technology.com',
friendlyName: 'next-web-technology',
nodePublicKey: '9545F928A1B2FB4AC944BC1EC2F01FB84A503F6449B6BE3451B3F7A0F06B5BCF'
}
*/
```
Example with requestParameters
```typescript
import {
AccountInfoDTO,
AccountRoutesApi,
AccountRoutesApiGetAccountInfoRequest,
Configuration,
ConfigurationParameters,
} from '@nemtus/symbol-sdk-openapi-generator-typescript-fetch';
const configurationParameters: ConfigurationParameters = {
basePath: 'https://symbol-sakura-16.next-web-technology.com:3001',
};
const configuration: Configuration = new Configuration(configurationParameters);
const accountRoutesApi: AccountRoutesApi = new AccountRoutesApi(configuration);
const requestParameters: AccountRoutesApiGetAccountInfoRequest = {
accountId: 'NCSIOEWE2364XXP65426W3RUGBRYOAGR3KMMCIA',
};
const response: AccountInfoDTO = await accountRoutesApi.getAccountInfo(requestParameters);
console.dir(response, { depth: null });
// Example:
/*
{
account: {
version: 1,
address: '68A48712C4D6FDCBDDFEEF35EB6E3430638700D1DA98C120',
addressHeight: '1',
publicKey: 'B86304B01045894ED9250B3DCD6313DC2EC0DD529B4E864EA376A2F341D3CFD4',
publicKeyHeight: '447',
accountType: 1,
supplementalPublicKeys: {
linked: {
publicKey: '5F87A37D1EAD570F4D0FD4C11A9D5EED5ABE82EF2E992B97CCDAC84F241470E0'
},
vrf: {
publicKey: '806E9448598C922B371DA8CFD7E16E8F5F53594B3AECE13F0708778A4480A752'
}
},
activityBuckets: [
{
startHeight: '1447200',
totalFeesPaid: '0',
beneficiaryCount: 0,
rawScore: '476538883720'
},
{
startHeight: '1446480',
totalFeesPaid: '0',
beneficiaryCount: 1,
rawScore: '476509686441'
},
{
startHeight: '1445760',
totalFeesPaid: '0',
beneficiaryCount: 1,
rawScore: '476481049034'
},
{
startHeight: '1445040',
totalFeesPaid: '0',
beneficiaryCount: 1,
rawScore: '476353869759'
},
{
startHeight: '1444320',
totalFeesPaid: '0',
beneficiaryCount: 1,
rawScore: '476325431930'
}
],
mosaics: [
{ id: '6BED913FA20223F8', amount: '516203401572' },
{ id: '24F7CF825DBCDD42', amount: '499999886' },
{ id: '310378C18A140D1B', amount: '923' },
{ id: '6AE25FA5E8CA0646', amount: '1000000000' }
],
importance: '476509686441',
importanceHeight: '1447200'
},
id: '60517BE5CCA17918A561056D'
}
*/
```
Example with CDN
```html
Document
(async () => {
const symbolSdk = window.symbolSdkOpenAPIGeneratorTypeScriptFetch;
const configurationParameters = {
basePath: 'http://symbol-sakura-16.next-web-technology.com:3000',
};
const configuration = new symbolSdk.Configuration(configurationParameters);
const nodeRoutesApi = new symbolSdk.NodeRoutesApi(configuration);
const responseNodeInfo = await nodeRoutesApi.getNodeInfo();
console.log(responseNodeInfo);
const accountRoutesApi = new symbolSdk.AccountRoutesApi(configuration);
const requestParameters = {
accountId: 'NCSIOEWE2364XXP65426W3RUGBRYOAGR3KMMCIA',
};
const responseAccountInfo = await accountRoutesApi.getAccountInfo(requestParameters);
console.log(responseAccountInfo);
})();
```
## For Developers
If you don't have java installed, you need to install it.
### 1. Build openapi3.yml
If necessary update git submodule of `symbol-openapi`.
```bash
cd symbol-openapi
npm install
npm run build
```
Use symbol-openapi/_build/openapi3.yml to generate REST API client code.
### 2. Generate REST API Client Code
```bash
cd ..
npm install
npm run openapi:set:version
npm run openapi:generate
npm run build
```
Then, REST API client code will be generated in `src/api`.
Do not edit `src/api` manually.
## We use
- [symbol/symbol-openapi](https://github.com/symbol/symbol-openapi) to generate openapi3.yml
- [OpenAPI Generator](https://openapi-generator.tech/) to generate REST API client codes
- Especially [typescript-fetch Generator](https://openapi-generator.tech/docs/generators/typescript-fetch)
- [cosmos-client/cosmos-client-ts](https://github.com/cosmos-client/cosmos-client-ts) as a reference of package structure
We would like to thank all the contributors to the above tools.