New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

defined-realtime-websocket

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

defined-realtime-websocket - npm Package Compare versions

Comparing version 0.0.3 to 0.0.4

4

dist/browser.d.ts

@@ -1,3 +0,3 @@

import type { WebSocketFactory } from "./types";
import type { WebSocketFactory } from './types';
declare const getWebSocketBrowser: () => WebSocketFactory | undefined;
export { getWebSocketBrowser, };
export { getWebSocketBrowser };

@@ -11,2 +11,2 @@ export declare const DEFAULT_HOST_URI = "realtime.api.defined.fi";

*
*/
*/

@@ -49,2 +49,24 @@ 'use strict';

};
var getDefinedErc20TokenSwapUpdateGql = function getDefinedErc20TokenSwapUpdateGql(contractAddressOrPairAddress, networkId) {
var filterParams = [];
if (contractAddressOrPairAddress && networkId) {
// Note: address must be lowercase
filterParams.push(['pairId', contractAddressOrPairAddress.toLowerCase() + ':' + networkId]);
}
var whereClause = "";
var subclauses = filterParams.map(generateSubClause);
if (subclauses.length > 0) {
whereClause = "(" + subclauses.join(',') + ")";
}
return "\n subscription UpdateAggregateBatch {\n onUpdateAggregateBatch" + whereClause + " {\n eventSortKey\n networkId\n pairAddress\n pairId\n timestamp\n aggregates {\n r1 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r5 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r15 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r30 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r60 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r240 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r720 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r1D {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r7D {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n }\n }\n";
};
var getDefinedErc20TokenChartUpdateGql = function getDefinedErc20TokenChartUpdateGql(contractAddressOrPairAddress, networkId) {
var filterParams = [];
if (contractAddressOrPairAddress && networkId) {
// Note: address must be lowercase
filterParams.push(['pairId', contractAddressOrPairAddress.toLowerCase() + ':' + networkId]);
}
filterParams.map(generateSubClause);
return "\n subscription CreateEvents {\n onCreateEvents(id: $id) {\n events {\n address\n baseTokenPrice\n blockHash\n blockNumber\n eventDisplayType\n eventType\n logIndex\n id\n liquidityToken\n maker\n networkId\n timestamp\n token0SwapValueUsd\n token0ValueBase\n token1SwapValueUsd\n token1ValueBase\n transactionHash\n transactionIndex\n data {\n ... on MintEventData {\n amount0\n amount1\n amount0Shifted\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on BurnEventData {\n amount0\n amount1\n amount0Shifted\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on SwapEventData {\n amount0\n amount0In\n amount0Out\n amount1\n amount1In\n amount1Out\n amountNonLiquidityToken\n priceBaseToken\n priceBaseTokenTotal\n priceUsd\n priceUsdTotal\n tick\n type\n }\n }\n }\n address\n id\n networkId\n }\n }\n";
};

@@ -645,5 +667,13 @@ var prefix = 'Invariant failed';

this.subscribeToTokenPriceUpdates = function (subscriptionOptions, sink) {
var gql = getDefinedNftSaleSubscriptionGql(subscriptionOptions.contractAddress, subscriptionOptions.chainId);
var gql = getDefinedErc20TokenPriceUpdateGql(subscriptionOptions.contractAddress, subscriptionOptions.chainId);
return _this.subscribe(gql, sink);
};
this.subscribeToTokenChartUpdates = function (subscriptionOptions, sink) {
var gql = getDefinedErc20TokenChartUpdateGql(subscriptionOptions.contractAddressOrPaidAddress, subscriptionOptions.chainId);
return _this.subscribe(gql, sink);
};
this.subscribeToTokenSwapUpdates = function (subscriptionOptions, sink) {
var gql = getDefinedErc20TokenSwapUpdateGql(subscriptionOptions.contractAddressOrPaidAddress, subscriptionOptions.chainId);
return _this.subscribe(gql, sink);
};
this.getWebSocketAuthenticatedConnectionString = function () {

@@ -677,3 +707,5 @@ var encodedApiKeyHeader = encodeApiKeyToWebsocketAuthHeader(_this.apiKey, _this.hostUrl);

exports.encodeApiKeyToWebsocketAuthHeader = encodeApiKeyToWebsocketAuthHeader;
exports.getDefinedErc20TokenChartUpdateGql = getDefinedErc20TokenChartUpdateGql;
exports.getDefinedErc20TokenPriceUpdateGql = getDefinedErc20TokenPriceUpdateGql;
exports.getDefinedErc20TokenSwapUpdateGql = getDefinedErc20TokenSwapUpdateGql;
exports.getDefinedNftSaleSubscriptionGql = getDefinedNftSaleSubscriptionGql;

@@ -680,0 +712,0 @@ exports.getDefinedWsWebsocketUrl = getDefinedWsWebsocketUrl;

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("uuid"),e=function(t){var e=t[0],n=t[1],r=e+': "'+n+'"';return"number"==typeof n&&(r=e+": "+n),r},n=function(t,n){var r=[];t&&r.push(["address",t.toLowerCase()]),n&&r.push(["networkId",parseInt(n.toString(10),10)]);var o="",i=r.map(e);return i.length>0&&(o="("+i.join(",")+")"),"\nsubscription NftSaleEventSubscription {\n onCreateNftEvents"+o+" {\n address\n id\n networkId\n events {\n id\n tokenId\n aggregatorAddress\n blockNumber\n contractAddress\n eventType\n exchangeAddress\n data {\n buyHash\n maker\n metadata\n price\n sellHash\n taker\n type\n }\n taker\n timestamp\n numberOfTokens\n transactionHash\n logIndex\n maker\n networkId\n totalPriceNetworkBaseToken\n totalPriceUsd\n transactionIndex\n individualPrice\n individualPriceUsd\n individualPriceNetworkBaseToken\n paymentTokenAddress\n poolAddress\n sortKey\n totalPrice\n }\n }\n}\n"};function r(t,e){if(!t)throw new Error("Invariant failed")}var o="realtime.api.defined.fi",i=function(t){try{return btoa(t)}catch(e){return Buffer.from(t).toString("base64")}},a=function(t){if(t)return t;var e,n=(e=void 0,"undefined"!=typeof WebSocket?e=WebSocket:"undefined"!=typeof MozWebSocket?e=MozWebSocket:"undefined"!=typeof global?e=global.WebSocket||global.MozWebSocket:"undefined"!=typeof window?e=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(e=self.WebSocket||self.MozWebSocket),e);return n||("undefined"==typeof window?require("ws"):(n||r(!1),n))},c=function(t,e){return void 0===e&&(e="wss://realtime.api.defined.fi/graphql/realtime"),e+"?header="+t+"&payload=e30="},s=function(t,e){return void 0===e&&(e=o),i('{"host": "'+e+'", "Authorization": "'+t+'" }')};function u(){u=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,n){return t[e]=n}}function l(t,e,n,o){var i=Object.create((e&&e.prototype instanceof h?e:h).prototype),a=new z(o||[]);return r(i,"_invoke",{value:L(t,n,a)}),i}function f(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var d={};function h(){}function p(){}function v(){}var y={};s(y,i,(function(){return this}));var g=Object.getPrototypeOf,w=g&&g(g(P([])));w&&w!==e&&n.call(w,i)&&(y=w);var m=v.prototype=h.prototype=Object.create(y);function b(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function o(r,i,a,c){var s=f(t[r],t,i);if("throw"!==s.type){var u=s.arg,l=u.value;return l&&"object"==typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){o("next",t,a,c)}),(function(t){o("throw",t,a,c)})):e.resolve(l).then((function(t){u.value=t,a(u)}),(function(t){return o("throw",t,a,c)}))}c(s.arg)}var i;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){o(t,n,e,r)}))}return i=i?i.then(r,r):r()}})}function L(t,e,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=k(a,n);if(c){if(c===d)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var s=f(t,e,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===d)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}function k(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,k(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var o=f(r,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,d;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function z(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function P(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:W}}function W(){return{value:void 0,done:!0}}return p.prototype=v,r(m,"constructor",{value:v,configurable:!0}),r(v,"constructor",{value:p,configurable:!0}),p.displayName=s(v,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===p||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,v):(t.__proto__=v,s(t,c,"GeneratorFunction")),t.prototype=Object.create(m),t},t.awrap=function(t){return{__await:t}},b(S.prototype),s(S.prototype,a,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new S(l(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},b(m),s(m,c,"Generator"),s(m,i,(function(){return this})),s(m,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},t.values=P,z.prototype={constructor:z,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type="throw",a.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),d},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),E(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;E(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:P(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}function l(t,e,n,r,o,i,a){try{var c=t[i](a),s=c.value}catch(t){return void n(t)}c.done?e(s):Promise.resolve(s).then(r,o)}function f(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function a(t){l(i,r,o,a,c,"next",t)}function c(t){l(i,r,o,a,c,"throw",t)}a(void 0)}))}}exports.DefinedRealtimeClient=function(e,i){var l=this;this.apiKey=void 0,this.wsFactory=void 0,this.hostUrl=o,this.wsLazySingleton=void 0,this.getWebSocketUrl=function(){var t=s(l.apiKey);return c(t)},this.disconnect=f(u().mark((function t(){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise((function(t){var e,n,r;if(!l.wsLazySingleton)return t(!0);null==(e=l.wsLazySingleton)||e.close(),3!==(null==(n=l.wsLazySingleton)?void 0:n.readyState)?null==(r=l.wsLazySingleton)||r.addEventListener("close",(function(e){t(!0)})):t(!0)})));case 1:case"end":return t.stop()}}),t)}))),this.connect=f(u().mark((function t(){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise((function(t){var e,n,r;1===(null==(e=l.wsLazySingleton)?void 0:e.readyState)&&t(l.wsLazySingleton),l.wsLazySingleton||l._initDefinedFiWebSocket(),1!==(null==(n=l.wsLazySingleton)?void 0:n.readyState)?null==(r=l.wsLazySingleton)||r.addEventListener("open",(function(e){t(l.wsLazySingleton)})):t(l.wsLazySingleton)})));case 1:case"end":return t.stop()}}),t)}))),this.subscribe=function(){var e=f(u().mark((function e(n,r){var o,i,a,c,s;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l.connect();case 2:return i=t.v4(),a=JSON.stringify({query:n,variables:null}),c={id:i,payload:{data:a,extensions:{authorization:{host:l.hostUrl,Authorization:l.apiKey}}},type:"start"},s=function(t){try{var e=JSON.parse(t.data);if(!e.id)return void console.warn("Unrecognized websocket message",e.payload.errors);if(e.id!==i)return;if("error"===e.type)return console.log("Error with subscription "+i,e.payload.errors),void(null==r.error||r.error(e));if("start_ack"===e.type)return;return void r.next(e.payload.data)}catch(t){throw t}},null==(o=l.wsLazySingleton)||o.addEventListener("message",s),l.wsLazySingleton.send(JSON.stringify(c)),e.abrupt("return",(function(){var t;null==(t=l.wsLazySingleton)||t.removeEventListener("message",s)}));case 10:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),this.subscribeToNftSales=function(t,e){var r=n(t.contractAddress,t.chainId);return l.subscribe(r,e)},this.subscribeToTokenPriceUpdates=function(t,e){var r=n(t.contractAddress,t.chainId);return l.subscribe(r,e)},this.getWebSocketAuthenticatedConnectionString=function(){var t=s(l.apiKey,l.hostUrl);return c(t)},this._initDefinedFiWebSocket=function(){if(l.wsLazySingleton)return l.wsLazySingleton;var t=l.getWebSocketAuthenticatedConnectionString();return l.wsLazySingleton=new l.wsFactory(t,"graphql-ws"),l.wsLazySingleton},this.apiKey=e,this.apiKey||r(!1),this.wsFactory=a(),!1===(null==i?void 0:i.lazyLoadWebSocketConnection)&&this._initDefinedFiWebSocket(),null!=i&&i.hostUrl&&(this.hostUrl=i.hostUrl)},exports.btoaIsomorphic=i,exports.encodeApiKeyToWebsocketAuthHeader=s,exports.getDefinedErc20TokenPriceUpdateGql=function(t,n){var r=[];t&&r.push(["address",t.toLowerCase()]),n&&r.push(["networkId",parseInt(n.toString(10),10)]);var o="",i=r.map(e);return i.length>0&&(o="("+i.join(",")+")"),"\nsubscription UpdatePrice {\n onUpdatePrice"+o+" {\n address\n networkId\n priceUsd\n timestamp\n }\n }\n"},exports.getDefinedNftSaleSubscriptionGql=n,exports.getDefinedWsWebsocketUrl=c,exports.getIsomorphicWebSocket=a,exports.sleep=function(t){return new Promise((function(e,n){setTimeout((function(){e(null)}),t)}))};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("uuid"),t=function(n){var t=n[0],e=n[1],r=t+': "'+e+'"';return"number"==typeof e&&(r=t+": "+e),r},e=function(n,e){var r=[];n&&r.push(["address",n.toLowerCase()]),e&&r.push(["networkId",parseInt(e.toString(10),10)]);var o="",i=r.map(t);return i.length>0&&(o="("+i.join(",")+")"),"\nsubscription NftSaleEventSubscription {\n onCreateNftEvents"+o+" {\n address\n id\n networkId\n events {\n id\n tokenId\n aggregatorAddress\n blockNumber\n contractAddress\n eventType\n exchangeAddress\n data {\n buyHash\n maker\n metadata\n price\n sellHash\n taker\n type\n }\n taker\n timestamp\n numberOfTokens\n transactionHash\n logIndex\n maker\n networkId\n totalPriceNetworkBaseToken\n totalPriceUsd\n transactionIndex\n individualPrice\n individualPriceUsd\n individualPriceNetworkBaseToken\n paymentTokenAddress\n poolAddress\n sortKey\n totalPrice\n }\n }\n}\n"},r=function(n,e){var r=[];n&&r.push(["address",n.toLowerCase()]),e&&r.push(["networkId",parseInt(e.toString(10),10)]);var o="",i=r.map(t);return i.length>0&&(o="("+i.join(",")+")"),"\nsubscription UpdatePrice {\n onUpdatePrice"+o+" {\n address\n networkId\n priceUsd\n timestamp\n }\n }\n"},o=function(n,e){var r=[];n&&e&&r.push(["pairId",n.toLowerCase()+":"+e]);var o="",i=r.map(t);return i.length>0&&(o="("+i.join(",")+")"),"\n subscription UpdateAggregateBatch {\n onUpdateAggregateBatch"+o+" {\n eventSortKey\n networkId\n pairAddress\n pairId\n timestamp\n aggregates {\n r1 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r5 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r15 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r30 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r60 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r240 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r720 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r1D {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r7D {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n }\n }\n"},i=function(n,e){var r=[];return n&&e&&r.push(["pairId",n.toLowerCase()+":"+e]),r.map(t),"\n subscription CreateEvents {\n onCreateEvents(id: $id) {\n events {\n address\n baseTokenPrice\n blockHash\n blockNumber\n eventDisplayType\n eventType\n logIndex\n id\n liquidityToken\n maker\n networkId\n timestamp\n token0SwapValueUsd\n token0ValueBase\n token1SwapValueUsd\n token1ValueBase\n transactionHash\n transactionIndex\n data {\n ... on MintEventData {\n amount0\n amount1\n amount0Shifted\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on BurnEventData {\n amount0\n amount1\n amount0Shifted\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on SwapEventData {\n amount0\n amount0In\n amount0Out\n amount1\n amount1In\n amount1Out\n amountNonLiquidityToken\n priceBaseToken\n priceBaseTokenTotal\n priceUsd\n priceUsdTotal\n tick\n type\n }\n }\n }\n address\n id\n networkId\n }\n }\n"};function a(n,t){if(!n)throw new Error("Invariant failed")}var s="realtime.api.defined.fi",u=function(n){try{return btoa(n)}catch(t){return Buffer.from(n).toString("base64")}},c=function(n){if(n)return n;var t,e=(t=void 0,"undefined"!=typeof WebSocket?t=WebSocket:"undefined"!=typeof MozWebSocket?t=MozWebSocket:"undefined"!=typeof global?t=global.WebSocket||global.MozWebSocket:"undefined"!=typeof window?t=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(t=self.WebSocket||self.MozWebSocket),t);return e||("undefined"==typeof window?require("ws"):(e||a(!1),e))},l=function(n,t){return void 0===t&&(t="wss://realtime.api.defined.fi/graphql/realtime"),t+"?header="+n+"&payload=e30="},d=function(n,t){return void 0===t&&(t=s),u('{"host": "'+t+'", "Authorization": "'+n+'" }')};function h(){h=function(){return n};var n={},t=Object.prototype,e=t.hasOwnProperty,r=Object.defineProperty||function(n,t,e){n[t]=e.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function u(n,t,e){return Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}),n[t]}try{u({},"")}catch(n){u=function(n,t,e){return n[t]=e}}function c(n,t,e,o){var i=Object.create((t&&t.prototype instanceof f?t:f).prototype),a=new T(o||[]);return r(i,"_invoke",{value:S(n,e,a)}),i}function l(n,t,e){try{return{type:"normal",arg:n.call(t,e)}}catch(n){return{type:"throw",arg:n}}}n.wrap=c;var d={};function f(){}function p(){}function v(){}var y={};u(y,i,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(I([])));m&&m!==t&&e.call(m,i)&&(y=m);var w=v.prototype=f.prototype=Object.create(y);function b(n){["next","throw","return"].forEach((function(t){u(n,t,(function(n){return this._invoke(t,n)}))}))}function k(n,t){function o(r,i,a,s){var u=l(n[r],n,i);if("throw"!==u.type){var c=u.arg,d=c.value;return d&&"object"==typeof d&&e.call(d,"__await")?t.resolve(d.__await).then((function(n){o("next",n,a,s)}),(function(n){o("throw",n,a,s)})):t.resolve(d).then((function(n){c.value=n,a(c)}),(function(n){return o("throw",n,a,s)}))}s(u.arg)}var i;r(this,"_invoke",{value:function(n,e){function r(){return new t((function(t,r){o(n,e,t,r)}))}return i=i?i.then(r,r):r()}})}function S(n,t,e){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(e.method=o,e.arg=i;;){var a=e.delegate;if(a){var s=L(a,e);if(s){if(s===d)continue;return s}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if("suspendedStart"===r)throw r="completed",e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);r="executing";var u=l(n,t,e);if("normal"===u.type){if(r=e.done?"completed":"suspendedYield",u.arg===d)continue;return{value:u.arg,done:e.done}}"throw"===u.type&&(r="completed",e.method="throw",e.arg=u.arg)}}}function L(n,t){var e=t.method,r=n.iterator[e];if(void 0===r)return t.delegate=null,"throw"===e&&n.iterator.return&&(t.method="return",t.arg=void 0,L(n,t),"throw"===t.method)||"return"!==e&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+e+"' method")),d;var o=l(r,n.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,d;var i=o.arg;return i?i.done?(t[n.resultName]=i.value,t.next=n.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,d):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function x(n){var t={tryLoc:n[0]};1 in n&&(t.catchLoc=n[1]),2 in n&&(t.finallyLoc=n[2],t.afterLoc=n[3]),this.tryEntries.push(t)}function E(n){var t=n.completion||{};t.type="normal",delete t.arg,n.completion=t}function T(n){this.tryEntries=[{tryLoc:"root"}],n.forEach(x,this),this.reset(!0)}function I(n){if(n){var t=n[i];if(t)return t.call(n);if("function"==typeof n.next)return n;if(!isNaN(n.length)){var r=-1,o=function t(){for(;++r<n.length;)if(e.call(n,r))return t.value=n[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:z}}function z(){return{value:void 0,done:!0}}return p.prototype=v,r(w,"constructor",{value:v,configurable:!0}),r(v,"constructor",{value:p,configurable:!0}),p.displayName=u(v,s,"GeneratorFunction"),n.isGeneratorFunction=function(n){var t="function"==typeof n&&n.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},n.mark=function(n){return Object.setPrototypeOf?Object.setPrototypeOf(n,v):(n.__proto__=v,u(n,s,"GeneratorFunction")),n.prototype=Object.create(w),n},n.awrap=function(n){return{__await:n}},b(k.prototype),u(k.prototype,a,(function(){return this})),n.AsyncIterator=k,n.async=function(t,e,r,o,i){void 0===i&&(i=Promise);var a=new k(c(t,e,r,o),i);return n.isGeneratorFunction(e)?a:a.next().then((function(n){return n.done?n.value:a.next()}))},b(w),u(w,s,"Generator"),u(w,i,(function(){return this})),u(w,"toString",(function(){return"[object Generator]"})),n.keys=function(n){var t=Object(n),e=[];for(var r in t)e.push(r);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},n.values=I,T.prototype={constructor:T,reset:function(n){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!n)for(var t in this)"t"===t.charAt(0)&&e.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var n=this.tryEntries[0].completion;if("throw"===n.type)throw n.arg;return this.rval},dispatchException:function(n){if(this.done)throw n;var t=this;function r(e,r){return a.type="throw",a.arg=n,t.next=e,r&&(t.method="next",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=e.call(i,"catchLoc"),u=e.call(i,"finallyLoc");if(s&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(n,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&e.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===n||"continue"===n)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=n,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(a)},complete:function(n,t){if("throw"===n.type)throw n.arg;return"break"===n.type||"continue"===n.type?this.next=n.arg:"return"===n.type?(this.rval=this.arg=n.arg,this.method="return",this.next="end"):"normal"===n.type&&t&&(this.next=t),d},finish:function(n){for(var t=this.tryEntries.length-1;t>=0;--t){var e=this.tryEntries[t];if(e.finallyLoc===n)return this.complete(e.completion,e.afterLoc),E(e),d}},catch:function(n){for(var t=this.tryEntries.length-1;t>=0;--t){var e=this.tryEntries[t];if(e.tryLoc===n){var r=e.completion;if("throw"===r.type){var o=r.arg;E(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(n,t,e){return this.delegate={iterator:I(n),resultName:t,nextLoc:e},"next"===this.method&&(this.arg=void 0),d}},n}function f(n,t,e,r,o,i,a){try{var s=n[i](a),u=s.value}catch(n){return void e(n)}s.done?t(u):Promise.resolve(u).then(r,o)}function p(n){return function(){var t=this,e=arguments;return new Promise((function(r,o){var i=n.apply(t,e);function a(n){f(i,r,o,a,s,"next",n)}function s(n){f(i,r,o,a,s,"throw",n)}a(void 0)}))}}exports.DefinedRealtimeClient=function(t,u){var f=this;this.apiKey=void 0,this.wsFactory=void 0,this.hostUrl=s,this.wsLazySingleton=void 0,this.getWebSocketUrl=function(){var n=d(f.apiKey);return l(n)},this.disconnect=p(h().mark((function n(){return h().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",new Promise((function(n){var t,e,r;if(!f.wsLazySingleton)return n(!0);null==(t=f.wsLazySingleton)||t.close(),3!==(null==(e=f.wsLazySingleton)?void 0:e.readyState)?null==(r=f.wsLazySingleton)||r.addEventListener("close",(function(t){n(!0)})):n(!0)})));case 1:case"end":return n.stop()}}),n)}))),this.connect=p(h().mark((function n(){return h().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",new Promise((function(n){var t,e,r;1===(null==(t=f.wsLazySingleton)?void 0:t.readyState)&&n(f.wsLazySingleton),f.wsLazySingleton||f._initDefinedFiWebSocket(),1!==(null==(e=f.wsLazySingleton)?void 0:e.readyState)?null==(r=f.wsLazySingleton)||r.addEventListener("open",(function(t){n(f.wsLazySingleton)})):n(f.wsLazySingleton)})));case 1:case"end":return n.stop()}}),n)}))),this.subscribe=function(){var t=p(h().mark((function t(e,r){var o,i,a,s,u;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,f.connect();case 2:return i=n.v4(),a=JSON.stringify({query:e,variables:null}),s={id:i,payload:{data:a,extensions:{authorization:{host:f.hostUrl,Authorization:f.apiKey}}},type:"start"},u=function(n){try{var t=JSON.parse(n.data);if(!t.id)return void console.warn("Unrecognized websocket message",t.payload.errors);if(t.id!==i)return;if("error"===t.type)return console.log("Error with subscription "+i,t.payload.errors),void(null==r.error||r.error(t));if("start_ack"===t.type)return;return void r.next(t.payload.data)}catch(n){throw n}},null==(o=f.wsLazySingleton)||o.addEventListener("message",u),f.wsLazySingleton.send(JSON.stringify(s)),t.abrupt("return",(function(){var n;null==(n=f.wsLazySingleton)||n.removeEventListener("message",u)}));case 10:case"end":return t.stop()}}),t)})));return function(n,e){return t.apply(this,arguments)}}(),this.subscribeToNftSales=function(n,t){var r=e(n.contractAddress,n.chainId);return f.subscribe(r,t)},this.subscribeToTokenPriceUpdates=function(n,t){var e=r(n.contractAddress,n.chainId);return f.subscribe(e,t)},this.subscribeToTokenChartUpdates=function(n,t){var e=i(n.contractAddressOrPaidAddress,n.chainId);return f.subscribe(e,t)},this.subscribeToTokenSwapUpdates=function(n,t){var e=o(n.contractAddressOrPaidAddress,n.chainId);return f.subscribe(e,t)},this.getWebSocketAuthenticatedConnectionString=function(){var n=d(f.apiKey,f.hostUrl);return l(n)},this._initDefinedFiWebSocket=function(){if(f.wsLazySingleton)return f.wsLazySingleton;var n=f.getWebSocketAuthenticatedConnectionString();return f.wsLazySingleton=new f.wsFactory(n,"graphql-ws"),f.wsLazySingleton},this.apiKey=t,this.apiKey||a(!1),this.wsFactory=c(),!1===(null==u?void 0:u.lazyLoadWebSocketConnection)&&this._initDefinedFiWebSocket(),null!=u&&u.hostUrl&&(this.hostUrl=u.hostUrl)},exports.btoaIsomorphic=u,exports.encodeApiKeyToWebsocketAuthHeader=d,exports.getDefinedErc20TokenChartUpdateGql=i,exports.getDefinedErc20TokenPriceUpdateGql=r,exports.getDefinedErc20TokenSwapUpdateGql=o,exports.getDefinedNftSaleSubscriptionGql=e,exports.getDefinedWsWebsocketUrl=l,exports.getIsomorphicWebSocket=c,exports.sleep=function(n){return new Promise((function(t,e){setTimeout((function(){t(null)}),n)}))};
//# sourceMappingURL=defined-realtime-websocket.cjs.production.min.js.map

@@ -45,2 +45,24 @@ import { v4 } from 'uuid';

};
var getDefinedErc20TokenSwapUpdateGql = function getDefinedErc20TokenSwapUpdateGql(contractAddressOrPairAddress, networkId) {
var filterParams = [];
if (contractAddressOrPairAddress && networkId) {
// Note: address must be lowercase
filterParams.push(['pairId', contractAddressOrPairAddress.toLowerCase() + ':' + networkId]);
}
var whereClause = "";
var subclauses = filterParams.map(generateSubClause);
if (subclauses.length > 0) {
whereClause = "(" + subclauses.join(',') + ")";
}
return "\n subscription UpdateAggregateBatch {\n onUpdateAggregateBatch" + whereClause + " {\n eventSortKey\n networkId\n pairAddress\n pairId\n timestamp\n aggregates {\n r1 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r5 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r15 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r30 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r60 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r240 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r720 {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r1D {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n r7D {\n t\n usd {\n t\n o\n h\n l\n c\n volume\n }\n token {\n t\n o\n h\n l\n c\n volume\n }\n }\n }\n }\n";
};
var getDefinedErc20TokenChartUpdateGql = function getDefinedErc20TokenChartUpdateGql(contractAddressOrPairAddress, networkId) {
var filterParams = [];
if (contractAddressOrPairAddress && networkId) {
// Note: address must be lowercase
filterParams.push(['pairId', contractAddressOrPairAddress.toLowerCase() + ':' + networkId]);
}
filterParams.map(generateSubClause);
return "\n subscription CreateEvents {\n onCreateEvents(id: $id) {\n events {\n address\n baseTokenPrice\n blockHash\n blockNumber\n eventDisplayType\n eventType\n logIndex\n id\n liquidityToken\n maker\n networkId\n timestamp\n token0SwapValueUsd\n token0ValueBase\n token1SwapValueUsd\n token1ValueBase\n transactionHash\n transactionIndex\n data {\n ... on MintEventData {\n amount0\n amount1\n amount0Shifted\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on BurnEventData {\n amount0\n amount1\n amount0Shifted\n amount1Shifted\n tickLower\n tickUpper\n type\n }\n ... on SwapEventData {\n amount0\n amount0In\n amount0Out\n amount1\n amount1In\n amount1Out\n amountNonLiquidityToken\n priceBaseToken\n priceBaseTokenTotal\n priceUsd\n priceUsdTotal\n tick\n type\n }\n }\n }\n address\n id\n networkId\n }\n }\n";
};

@@ -647,5 +669,13 @@ var isProduction = process.env.NODE_ENV === 'production';

this.subscribeToTokenPriceUpdates = function (subscriptionOptions, sink) {
var gql = getDefinedNftSaleSubscriptionGql(subscriptionOptions.contractAddress, subscriptionOptions.chainId);
var gql = getDefinedErc20TokenPriceUpdateGql(subscriptionOptions.contractAddress, subscriptionOptions.chainId);
return _this.subscribe(gql, sink);
};
this.subscribeToTokenChartUpdates = function (subscriptionOptions, sink) {
var gql = getDefinedErc20TokenChartUpdateGql(subscriptionOptions.contractAddressOrPaidAddress, subscriptionOptions.chainId);
return _this.subscribe(gql, sink);
};
this.subscribeToTokenSwapUpdates = function (subscriptionOptions, sink) {
var gql = getDefinedErc20TokenSwapUpdateGql(subscriptionOptions.contractAddressOrPaidAddress, subscriptionOptions.chainId);
return _this.subscribe(gql, sink);
};
this.getWebSocketAuthenticatedConnectionString = function () {

@@ -676,3 +706,3 @@ var encodedApiKeyHeader = encodeApiKeyToWebsocketAuthHeader(_this.apiKey, _this.hostUrl);

export { DefinedRealtimeClient, btoaIsomorphic, encodeApiKeyToWebsocketAuthHeader, getDefinedErc20TokenPriceUpdateGql, getDefinedNftSaleSubscriptionGql, getDefinedWsWebsocketUrl, getIsomorphicWebSocket, sleep };
export { DefinedRealtimeClient, btoaIsomorphic, encodeApiKeyToWebsocketAuthHeader, getDefinedErc20TokenChartUpdateGql, getDefinedErc20TokenPriceUpdateGql, getDefinedErc20TokenSwapUpdateGql, getDefinedNftSaleSubscriptionGql, getDefinedWsWebsocketUrl, getIsomorphicWebSocket, sleep };
//# sourceMappingURL=defined-realtime-websocket.esm.js.map

@@ -54,4 +54,87 @@ export declare const getDefinedNftSaleSubscriptionGql: (contractAddress: string | undefined | null, networkId: number | string | undefined | null) => string;

}
export interface DefinedWebSocketPricingData {
export interface DefinedWebSocketTokenPricingData {
onUpdatePrice: OnUpdatePrice;
}
export declare const getDefinedErc20TokenSwapUpdateGql: (contractAddressOrPairAddress: string | undefined | null, networkId: number | string | undefined | null) => string;
export interface OHLCIndividualBarData {
t: number;
o: number;
h: number;
l: number;
c: number;
volume: string;
__typename: string;
}
export interface CurrencyBarData {
t: number;
usd: OHLCIndividualBarData;
token: OHLCIndividualBarData;
__typename: string;
}
export interface ChartUpdateAggregates {
r1: CurrencyBarData;
r5: CurrencyBarData;
r15: CurrencyBarData;
r30: CurrencyBarData;
r60: CurrencyBarData;
r240: CurrencyBarData;
r720: CurrencyBarData;
r1D: CurrencyBarData;
r7D: CurrencyBarData;
__typename: string;
}
export interface OnUpdateAggregateBatch {
eventSortKey: string;
networkId: number;
pairAddress: string;
pairId: string;
timestamp: number;
aggregates: ChartUpdateAggregates;
__typename: string;
}
export interface DefinedWebSocketTokenChartData {
onUpdateAggregateBatch: OnUpdateAggregateBatch;
}
export declare const getDefinedErc20TokenChartUpdateGql: (contractAddressOrPairAddress: string | undefined | null, networkId: number | string | undefined | null) => string;
export interface TokenSwapEventData {
amount0?: any;
amount0In: string;
amount0Out: string;
amount1?: any;
amount1In: string;
amount1Out: string;
amountNonLiquidityToken: string;
priceBaseToken: string;
priceBaseTokenTotal: string;
priceUsd: string;
priceUsdTotal: string;
tick?: any;
type: string;
}
export interface TokenSwapEvent {
address: string;
baseTokenPrice: string;
blockHash: string;
blockNumber: number;
eventDisplayType: string;
eventType: string;
logIndex: number;
id: string;
liquidityToken: string;
maker: string;
networkId: number;
timestamp: number;
token0SwapValueUsd: string;
token0ValueBase: string;
token1SwapValueUsd: string;
token1ValueBase: string;
transactionHash: string;
transactionIndex: number;
data: TokenSwapEventData;
}
export interface OnCreateEvents {
events: TokenSwapEvent[];
}
export interface DefinedWebSocketTokenSwapData {
onCreateEvents: OnCreateEvents;
}

@@ -1,3 +0,3 @@

import { DefinedWebSocketOnCreatedNftEventsSubscriptionData, DefinedWebSocketPricingData } from './gql';
import type { Sink, SubscribeToNftSalesParams, SubscribeToTokenPriceParams } from './types';
import { DefinedWebSocketOnCreatedNftEventsSubscriptionData, DefinedWebSocketTokenChartData, DefinedWebSocketTokenPricingData, DefinedWebSocketTokenSwapData } from './gql';
import type { Sink, SubscribeToNftSalesParams, SubscribeToTokenChartParams, SubscribeToTokenPriceParams, SubscribeToTokenSwapParams } from './types';
type IWebSocket = WebSocket;

@@ -56,3 +56,19 @@ /**

*/
subscribeToTokenPriceUpdates: (subscriptionOptions: SubscribeToTokenPriceParams, sink: Sink<DefinedWebSocketPricingData>) => Promise<() => void>;
subscribeToTokenPriceUpdates: (subscriptionOptions: SubscribeToTokenPriceParams, sink: Sink<DefinedWebSocketTokenPricingData>) => Promise<() => void>;
/**
* Subscribes to Token chart update events
* https://docs.defined.fi/websockets/tokens/onUpdateAggregateBatch
* @param subscriptionOptions Filtering options for token
* @param sink Event sink
* @returns Unsubscribe function
*/
subscribeToTokenChartUpdates: (subscriptionOptions: SubscribeToTokenChartParams, sink: Sink<DefinedWebSocketTokenChartData>) => Promise<() => void>;
/**
* Subscribes to Token swap update events
* https://docs.defined.fi/websockets/tokens/onCreateEvents
* @param subscriptionOptions Filtering options for token
* @param sink Event sink
* @returns Unsubscribe function
*/
subscribeToTokenSwapUpdates: (subscriptionOptions: SubscribeToTokenSwapParams, sink: Sink<DefinedWebSocketTokenSwapData>) => Promise<() => void>;
getWebSocketAuthenticatedConnectionString: () => string;

@@ -59,0 +75,0 @@ private _initDefinedFiWebSocket;

@@ -56,2 +56,14 @@ interface Authorization {

}
export interface SubscribeToTokenChartParams {
contractAddressOrPaidAddress: string;
chainId: string | number;
}
export interface SubscribeToTokenSwapParams {
contractAddressOrPaidAddress: string;
chainId: string | number;
}
export {};
/**
*
*
*/
{
"name": "defined-realtime-websocket",
"version": "0.0.3",
"version": "0.0.4",
"license": "MIT",

@@ -20,3 +20,4 @@ "author": "johnrjj",

"start": "dts watch",
"test": "dts test"
"test": "dts test",
"prettier": "prettier --write \"**/*.{ts,tsx,js,json,css,yml,md}\""
},

@@ -23,0 +24,0 @@ "husky": {

// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js
import type { WebSocketFactory } from "./types";
import type { WebSocketFactory } from './types';

@@ -20,8 +20,5 @@ const getWebSocketBrowser = (): WebSocketFactory | undefined => {

}
return ws
}
return ws;
};
export {
getWebSocketBrowser,
}
export { getWebSocketBrowser };

@@ -1,6 +0,5 @@

export const DEFAULT_HOST_URI = `realtime.api.defined.fi`
export const DEFAULT_WEBSOCKET_URI_ROOT = `wss://realtime.api.defined.fi/graphql/realtime`
export const DEFAULT_HOST_URI = `realtime.api.defined.fi`;
export const DEFAULT_WEBSOCKET_URI_ROOT = `wss://realtime.api.defined.fi/graphql/realtime`;
export const WS_TRANSPORT_PROTOCOL = 'graphql-ws';
// https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/readyState

@@ -14,2 +13,2 @@ /**

*
*/
*/

@@ -163,4 +163,383 @@ type FilterTuple = [string, string | number];

export interface DefinedWebSocketPricingData {
export interface DefinedWebSocketTokenPricingData {
onUpdatePrice: OnUpdatePrice;
}
export const getDefinedErc20TokenSwapUpdateGql = (
contractAddressOrPairAddress: string | undefined | null,
networkId: number | string | undefined | null
) => {
const filterParams: Array<FilterTuple> = [];
if (contractAddressOrPairAddress && networkId) {
// Note: address must be lowercase
filterParams.push([
'pairId',
contractAddressOrPairAddress.toLowerCase() + ':' + networkId,
]);
}
let whereClause = ``;
const subclauses = filterParams.map(generateSubClause);
if (subclauses.length > 0) {
whereClause = `(${subclauses.join(',')})`;
}
return `
subscription UpdateAggregateBatch {
onUpdateAggregateBatch${whereClause} {
eventSortKey
networkId
pairAddress
pairId
timestamp
aggregates {
r1 {
t
usd {
t
o
h
l
c
volume
}
token {
t
o
h
l
c
volume
}
}
r5 {
t
usd {
t
o
h
l
c
volume
}
token {
t
o
h
l
c
volume
}
}
r15 {
t
usd {
t
o
h
l
c
volume
}
token {
t
o
h
l
c
volume
}
}
r30 {
t
usd {
t
o
h
l
c
volume
}
token {
t
o
h
l
c
volume
}
}
r60 {
t
usd {
t
o
h
l
c
volume
}
token {
t
o
h
l
c
volume
}
}
r240 {
t
usd {
t
o
h
l
c
volume
}
token {
t
o
h
l
c
volume
}
}
r720 {
t
usd {
t
o
h
l
c
volume
}
token {
t
o
h
l
c
volume
}
}
r1D {
t
usd {
t
o
h
l
c
volume
}
token {
t
o
h
l
c
volume
}
}
r7D {
t
usd {
t
o
h
l
c
volume
}
token {
t
o
h
l
c
volume
}
}
}
}
`;
};
// https://docs.defined.fi/websockets/tokens/onUpdateAggregateBatch#individualbardata
export interface OHLCIndividualBarData {
t: number;
o: number;
h: number;
l: number;
c: number;
volume: string;
__typename: string;
}
// https://docs.defined.fi/websockets/tokens/onUpdateAggregateBatch#currencybardata
export interface CurrencyBarData {
t: number;
usd: OHLCIndividualBarData;
token: OHLCIndividualBarData;
__typename: string;
}
export interface ChartUpdateAggregates {
r1: CurrencyBarData;
r5: CurrencyBarData;
r15: CurrencyBarData;
r30: CurrencyBarData;
r60: CurrencyBarData;
r240: CurrencyBarData;
r720: CurrencyBarData;
r1D: CurrencyBarData;
r7D: CurrencyBarData;
__typename: string;
}
export interface OnUpdateAggregateBatch {
eventSortKey: string;
networkId: number;
pairAddress: string;
pairId: string;
timestamp: number;
aggregates: ChartUpdateAggregates;
__typename: string;
}
export interface DefinedWebSocketTokenChartData {
onUpdateAggregateBatch: OnUpdateAggregateBatch;
}
export const getDefinedErc20TokenChartUpdateGql = (
contractAddressOrPairAddress: string | undefined | null,
networkId: number | string | undefined | null
) => {
const filterParams: Array<FilterTuple> = [];
if (contractAddressOrPairAddress && networkId) {
// Note: address must be lowercase
filterParams.push([
'pairId',
contractAddressOrPairAddress.toLowerCase() + ':' + networkId,
]);
}
let whereClause = ``;
const subclauses = filterParams.map(generateSubClause);
if (subclauses.length > 0) {
whereClause = `(${subclauses.join(',')})`;
}
return `
subscription CreateEvents {
onCreateEvents(id: $id) {
events {
address
baseTokenPrice
blockHash
blockNumber
eventDisplayType
eventType
logIndex
id
liquidityToken
maker
networkId
timestamp
token0SwapValueUsd
token0ValueBase
token1SwapValueUsd
token1ValueBase
transactionHash
transactionIndex
data {
... on MintEventData {
amount0
amount1
amount0Shifted
amount1Shifted
tickLower
tickUpper
type
}
... on BurnEventData {
amount0
amount1
amount0Shifted
amount1Shifted
tickLower
tickUpper
type
}
... on SwapEventData {
amount0
amount0In
amount0Out
amount1
amount1In
amount1Out
amountNonLiquidityToken
priceBaseToken
priceBaseTokenTotal
priceUsd
priceUsdTotal
tick
type
}
}
}
address
id
networkId
}
}
`;
};
export interface TokenSwapEventData {
amount0?: any;
amount0In: string;
amount0Out: string;
amount1?: any;
amount1In: string;
amount1Out: string;
amountNonLiquidityToken: string;
priceBaseToken: string;
priceBaseTokenTotal: string;
priceUsd: string;
priceUsdTotal: string;
tick?: any;
type: string;
}
export interface TokenSwapEvent {
address: string;
baseTokenPrice: string;
blockHash: string;
blockNumber: number;
eventDisplayType: string;
eventType: string;
logIndex: number;
id: string;
liquidityToken: string;
maker: string;
networkId: number;
timestamp: number;
token0SwapValueUsd: string;
token0ValueBase: string;
token1SwapValueUsd: string;
token1ValueBase: string;
transactionHash: string;
transactionIndex: number;
data: TokenSwapEventData;
}
export interface OnCreateEvents {
events: TokenSwapEvent[];
}
export interface DefinedWebSocketTokenSwapData {
onCreateEvents: OnCreateEvents;
}

@@ -1,6 +0,4 @@

export * from './types'
export * from './gql'
export * from './util'
export {
DefinedRealtimeClient
} from './sdk'
export * from './types';
export * from './gql';
export * from './util';
export { DefinedRealtimeClient } from './sdk';

@@ -1,3 +0,1 @@

const isProduction: boolean = process.env.NODE_ENV === 'production';

@@ -13,3 +11,3 @@ const prefix: string = 'Invariant failed';

// the message takes a fair amount of effort to compute
message?: string | (() => string),
message?: string | (() => string)
): asserts condition {

@@ -29,3 +27,4 @@ if (condition) {

const provided: string | undefined = typeof message === 'function' ? message() : message;
const provided: string | undefined =
typeof message === 'function' ? message() : message;

@@ -32,0 +31,0 @@ // Options:

@@ -1,3 +0,3 @@

"use strict";
'use strict';
module.exports = require('ws');
module.exports = require('ws');

@@ -9,3 +9,8 @@ import { v4 as uuidv4 } from 'uuid';

DefinedWebSocketOnCreatedNftEventsSubscriptionData,
DefinedWebSocketPricingData,
DefinedWebSocketTokenChartData,
DefinedWebSocketTokenPricingData,
DefinedWebSocketTokenSwapData,
getDefinedErc20TokenChartUpdateGql,
getDefinedErc20TokenPriceUpdateGql,
getDefinedErc20TokenSwapUpdateGql,
getDefinedNftSaleSubscriptionGql,

@@ -17,3 +22,5 @@ } from './gql';

SubscribeToNftSalesParams,
SubscribeToTokenChartParams,
SubscribeToTokenPriceParams,
SubscribeToTokenSwapParams,
WebSocketFactory,

@@ -224,11 +231,47 @@ WebSocketSubscriptionRequest,

subscriptionOptions: SubscribeToTokenPriceParams,
sink: Sink<DefinedWebSocketPricingData>
sink: Sink<DefinedWebSocketTokenPricingData>
) => {
const gql = getDefinedNftSaleSubscriptionGql(
const gql = getDefinedErc20TokenPriceUpdateGql(
subscriptionOptions.contractAddress,
subscriptionOptions.chainId
);
return this.subscribe<DefinedWebSocketPricingData>(gql, sink);
return this.subscribe<DefinedWebSocketTokenPricingData>(gql, sink);
};
/**
* Subscribes to Token chart update events
* https://docs.defined.fi/websockets/tokens/onUpdateAggregateBatch
* @param subscriptionOptions Filtering options for token
* @param sink Event sink
* @returns Unsubscribe function
*/
public subscribeToTokenChartUpdates = (
subscriptionOptions: SubscribeToTokenChartParams,
sink: Sink<DefinedWebSocketTokenChartData>
) => {
const gql = getDefinedErc20TokenChartUpdateGql(
subscriptionOptions.contractAddressOrPaidAddress,
subscriptionOptions.chainId
);
return this.subscribe<DefinedWebSocketTokenChartData>(gql, sink);
};
/**
* Subscribes to Token swap update events
* https://docs.defined.fi/websockets/tokens/onCreateEvents
* @param subscriptionOptions Filtering options for token
* @param sink Event sink
* @returns Unsubscribe function
*/
public subscribeToTokenSwapUpdates = (
subscriptionOptions: SubscribeToTokenSwapParams,
sink: Sink<DefinedWebSocketTokenSwapData>
) => {
const gql = getDefinedErc20TokenSwapUpdateGql(
subscriptionOptions.contractAddressOrPaidAddress,
subscriptionOptions.chainId
);
return this.subscribe<DefinedWebSocketTokenSwapData>(gql, sink);
};
public getWebSocketAuthenticatedConnectionString = () => {

@@ -235,0 +278,0 @@ const encodedApiKeyHeader = encodeApiKeyToWebsocketAuthHeader(

@@ -65,1 +65,18 @@ interface Authorization {

}
export interface SubscribeToTokenChartParams {
// Can specify _either_ specific contractAddress or pairAddress (e.g. uniswap pool address)
contractAddressOrPaidAddress: string;
chainId: string | number;
}
export interface SubscribeToTokenSwapParams {
// Can specify _either_ specific contractAddress or pairAddress (e.g. uniswap pool address)
contractAddressOrPaidAddress: string;
chainId: string | number;
}
/**
*
*
*/

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc