@opensphere-inc/symbol-service
v1.3.1
Published
Symbol Service Library
Downloads
29
Readme
Symbol Service library
Symbol ブロックチェーン用の簡易ライブラリです。
内部的には Symbol SDK を使用します。
1. SymbolService クラス
コンストラクタ
const config: SymbolServiceConfig = {
node_url: "https://example.jp:3001",
fee_ratio: 0.0,
deadline_hours: 5,
batch_size: 100,
max_parallels: 10,
repo_factory_config: repoFactoryConfig as RepositoryFactoryConfig,
repo_factory: repoFactory as RepositoryFactoryHttp,
};
const symbolService = new SymbolService(config)
引数
config: SymbolServiceConfig
node_url: string
- (Required) ノードURLfee_ratio: number
- (Optional) トランザクション手数料率 (0.0 ~ 1.0, デフォルト 0.0)deadline_hours: number
- (Optional) トランザクション有効期限(デフォルト 5 時間)batch_size: number
- (Optional) Aggregate インナートランザクション最大数(デフォルト 100)max_parallels: number
- (Optional) トランザクションアナウンス並列数(デフォルト 10)repo_factory_config: RepositoryFactoryConfig
- (Optional) Symbol SDK の RepositoryFactoryHttp コンストラクタに渡すコンフィグrepo_factory: RepositoryFactoryHttp
- (Optional) RepositoryFactoryHttp インスタンスそのもの
2. NecromancyService クラス
Aggregate Undead Transaction を取り扱うクラス
コンストラクタ
const config: NecromancyServiceConfig = {
deadlineUnitHours: 5,
deadlineMarginHours: 1,
};
const necromancyService = new NecromancyService(symbolService, config);
引数
symbolService: SymbolService
- SymbolService インスタンスconfig: NecromancyServiceConfig
- 任意指定deadlineUnitHours: number
- (Optional) Deadline を時分割する際の単位あたりの時間 (default:5)deadlineMarginHours: number
- (Optional) Pick する際に持たせる余裕時間。 deadlineUnitHours + deadlineMarginHours がネットワークの制限を超えない事 (default:1)
3. NodeTracker クラス
コンストラクタ
const options: NodeTrackerServiceOptions = {
cachedNodes: [] as NodeStatistics,
cacheTimestamp: 12345678,
noWebSocketChallenge: false,
webSocketTimeout: 60000,
maxParallels: 10,
};
const nodeTracker = new NodeTrackerService(statsServiceURL, networkType, options);
引数
statsServiceURL: string
- Symbol Statistics Service の URL。Testnet:https://testnet.symbol.services/nodes
, Mainnet:https://symbol.services/nodes
networkType: NetworkType
- Testnet:152
, Mainnet:104
option: NodeTrackerServiceOptions
- (Optional)cachedNodes: NodeStatistics[]
- (Optional)availableNodes
をローカルキャッシュしていた場合はここで渡すcacheTimestamp: number
- (Optional) ローカルキャッシュ作成日時(Unix時間ミリ秒)noWebSocketChallenge: boolean
- (Optional) WebSocket 接続のチェックを行わない(その分高速)。デフォルトはfalse
webSocketTimeout: number
- (Optional) WebSocket 接続のタイムアウト時間をミリ秒で指定。デフォルトは60
秒maxParallels: number
- (Optional) ヘルスチェックの同時実行数。デフォルトは10
。 値を大きくするとヘルスチェックがスピードアップしますが、やりすぎると接続エラーが頻発する場合があります。 試した限りだと50
位が限度かもしれません。
4. Logger ネームスペース
初期化
const config = {
log_level: Logger.LogLevel.INFO,
force_stderr: false,
}
Logger.init(config);
引数
config
- 任意指定log_level: Logger.LogLevel
- (Optional) ログレベル(指定したレベル以上のログが出力)Logger.LogLevel.DEBUG
- 全てのログLogger.LogLevel.INFO
-info
以上(デフォルト)Logger.LogLevel.WARN
-warn
以上Logger.LogLevel.ERROR
-error
のみLogger.LogLevel.NONE
- ログ出力無し
force_stderr: boolean
- (Optional) 全ログの出力先を stderr に強制する(デフォルト false)
ビルド
yarn
yarn build
テスト
dot.env.test
を編集して .env.test
にリネームする。
ブロックチェーンにアクセスします。
NODE_URL=Replace your node URL
SIGNER1_PRIVATE_KEY=Replace your private key
PAYER_PRIVATE_KEY=Replace your private key
BATCH_SIZE=100
FEE_RATIO=0.35
MAX_PARALLELS=10
yarn test
ライセンス
MIT ライセンスです。