Spin node create spin api for node
yarn add @spinfi/node
const {spin} = await createApi({
accountId: 'some account id value',
privateKey: 'some private key value',
});
Spin core create spin api instace that work exactly in browser and node.js
const response = await spin.depositFt(request);
Websocket property provide functions to call spin off-chain methods by websocket
Websocket method divided in two types:
Method require some parameters in json rpc format and return some data with onOk callback.
If websocket return not expected data format - api will ignore it. If websocket return correct
message without connection/js error, but with error field - data handled by onError callback
const unsubscribe = spin.ping({
onOk: (data) => console.log(data),
onError: (error) => console.error(error),
});
Subscription its like method but more complex. It work like that:
sub and create channel to serversub ok (channel created) then api create listners for websocketchannel then api call corresponding subscription callbacksconst unsubscribe = spin.listenOrders(request, {
onSubOk: (data) => console.log(data),
onSubError: (error) => console.error(error),
});
Channel - its stream of websocket message that have same subscription id and have some format.
Messages in channel maybe different. Some channel have first uniq message and some not.
First uniq message in channel its state and other messages its notification
Websoket message match with channel by json rpc id created when subscription called and subscription id
created by server
const unsubscribe = spin.listenOrders(request, {
onNotifyOk: (data) => console.log(data),
onNotifyError: (error) => console.error(error),
onStateOk: (data) => console.log(data),
onStateError: (error) => console.error(error),
});
Some times its needed unsubscribe from subscription. It work like that:
unsub and get responsetrue then channel is closedrxjs subscriptions its also unsubscribedfalse then channel not closedonUnsubError handle false branchconst unsubscribe = spin.listenOrders(request, {
onSubError: (error) => console.error(error),
onUnsubError: (error) => console.error(error),
});
Generated using TypeDoc