@cowprotocol/widget-lib
Advanced tools
Comparing version
@@ -0,4 +1,3 @@ | ||
import { CowWidgetEventListeners } from '@cowprotocol/events'; | ||
import { CowSwapWidgetParams, CowSwapWidgetProps, EthereumProvider } from './types'; | ||
import { CowEventListeners } from '@cowprotocol/events'; | ||
/** | ||
@@ -9,3 +8,3 @@ * Callback function signature for updating the CoW Swap Widget. | ||
updateParams: (params: CowSwapWidgetParams) => void; | ||
updateListeners: (newListeners?: CowEventListeners) => void; | ||
updateListeners: (newListeners?: CowWidgetEventListeners) => void; | ||
updateProvider: (newProvider?: EthereumProvider) => void; | ||
@@ -12,0 +11,0 @@ destroy: () => void; |
@@ -0,6 +1,5 @@ | ||
import { SupportedChainId } from '@cowprotocol/cow-sdk'; | ||
import { FlexibleConfig, PerNetworkConfig, PerTradeTypeConfig, TradeType } from './types'; | ||
import { SupportedChainId } from '@cowprotocol/cow-sdk'; | ||
export declare function resolveFlexibleConfig<T extends string | number>(config: FlexibleConfig<T>, chainId: SupportedChainId, tradeType: TradeType): T | undefined; | ||
export declare function isPerTradeTypeConfig<T>(config: FlexibleConfig<T>): config is PerTradeTypeConfig<T>; | ||
export declare function isPerNetworkConfig<T>(config: FlexibleConfig<T>): config is PerNetworkConfig<T>; |
@@ -1,3 +0,2 @@ | ||
import { CowEventListeners } from '@cowprotocol/events'; | ||
import { CowWidgetEventListeners } from '@cowprotocol/events'; | ||
export declare class IframeCowEventEmitter { | ||
@@ -8,5 +7,5 @@ private contentWindow; | ||
private widgetListener; | ||
constructor(contentWindow: Window, listeners?: CowEventListeners); | ||
constructor(contentWindow: Window, listeners?: CowWidgetEventListeners); | ||
stopListeningIframe(): void; | ||
updateListeners(listeners?: CowEventListeners): void; | ||
updateListeners(listeners?: CowWidgetEventListeners): void; | ||
} |
export { createCowSwapWidget } from './cowSwapWidget'; | ||
export { widgetIframeTransport } from './widgetIframeTransport'; | ||
export type { CowSwapWidgetHandler } from './cowSwapWidget'; | ||
export * from './types'; | ||
export * from './messages'; | ||
export * from './themeUtils'; | ||
export * from './flexibleConfig'; |
@@ -1,1 +0,1 @@ | ||
var cowSwapWidget=function(s){"use strict";var ne=Object.defineProperty;var ie=(s,r,u)=>r in s?ne(s,r,{enumerable:!0,configurable:!0,writable:!0,value:u}):s[r]=u;var d=(s,r,u)=>(ie(s,typeof r!="symbol"?r+"":r,u),u);class r{constructor(){d(this,"subscriptions",{})}on(t){const{event:n,handler:i}=t;return this.subscriptions[n]||(this.subscriptions[n]=[]),this.subscriptions[n].push(i),t}off(t){const{event:n,handler:i}=t;return this.subscriptions[n]&&(this.subscriptions[n]=this.subscriptions[n].filter(o=>o!==i)),t}emit(t,n){this.subscriptions[t]&&this.subscriptions[t].forEach(i=>i(n))}}const u="cowSwapWidget";function T(e,t,n){const o={key:u,method:t,...typeof n=="object"?n:{}};e.postMessage(o,"*")}function E(e,t,n){const i=o=>{!y(o.data)||o.data.key!==u||o.data.method!==t||n(o.data)};return e.addEventListener("message",i),i}function y(e){return typeof e=="object"&&e!==null&&"key"in e&&"method"in e&&typeof e.key=="string"&&typeof e.method=="string"}function W(e,t,n){e.removeEventListener("message",n)}function C(e,t){e.removeEventListener("message",t)}var a=(e=>(e.ACTIVATE="ACTIVATE",e.UPDATE_HEIGHT="UPDATE_HEIGHT",e.SET_FULL_HEIGHT="SET_FULL_HEIGHT",e.EMIT_COW_EVENT="EMIT_COW_EVENT",e.PROVIDER_RPC_REQUEST="PROVIDER_RPC_REQUEST",e.INTERCEPT_WINDOW_OPEN="INTERCEPT_WINDOW_OPEN",e))(a||{}),w=(e=>(e.UPDATE_PARAMS="UPDATE_PARAMS",e.UPDATE_APP_DATA="UPDATE_APP_DATA",e.PROVIDER_RPC_RESPONSE="PROVIDER_RPC_RESPONSE",e.PROVIDER_ON_EVENT="PROVIDER_ON_EVENT",e))(w||{}),m=(e=>(e.SWAP="swap",e.LIMIT="limit",e.ADVANCED="advanced",e))(m||{});const N=["primary","background","paper","text","danger","warning","alert","info","success"];class U{constructor(t,n=[]){d(this,"eventEmitter",new r);d(this,"listeners",[]);d(this,"widgetListener");this.contentWindow=t,this.updateListeners(n),this.widgetListener=E(this.contentWindow,a.EMIT_COW_EVENT,i=>this.eventEmitter.emit(i.event,i.payload))}stopListeningIframe(){C(this.contentWindow,this.widgetListener)}updateListeners(t){for(const n of this.listeners)this.eventEmitter.off(n);this.listeners=t||[];for(const n of this.listeners)this.eventEmitter.on(n)}}const V=["connect","disconnect","close","chainChanged","accountsChanged"];class F{constructor(t){d(this,"ethereumProvider",null);d(this,"requestWaitingForConnection",{});d(this,"processRpcCallFromWindow",({rpcRequest:t})=>{if(!this.ethereumProvider){t.id&&(this.requestWaitingForConnection[t.id]=t);return}this.processRpcRequest(t)});this.iframeWidow=t}disconnect(){this.ethereumProvider=null,W(window,a.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow)}onConnect(t){this.ethereumProvider?this.disconnect():E(window,a.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow),this.ethereumProvider=t,this.processPendingRequests(),V.forEach(n=>{t.on(n,i=>this.onProviderEvent(n,i))})}processPendingRequests(){Object.keys(this.requestWaitingForConnection).forEach(t=>{this.processRpcRequest(this.requestWaitingForConnection[t])}),this.requestWaitingForConnection={}}processRpcRequest(t){const{id:n,jsonrpc:i,method:o}=t;if(!this.ethereumProvider||!n)return;(o==="enable"?this.ethereumProvider.enable():this.ethereumProvider.request({...t,id:n})).then(p=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:i,id:n,result:p}})).catch(p=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:i,id:n,error:p}}))}onProviderEvent(t,n){T(this.iframeWidow,w.PROVIDER_ON_EVENT,{event:t,params:n})}forwardRpcResponseToIframe(t){T(this.iframeWidow,w.PROVIDER_RPC_RESPONSE,t)}}class H{constructor(t,n){d(this,"forwardSdkMessage");this.appWindow=t,this.iframeWidow=n,this.forwardSdkMessage=i=>{M(i.data)&&i.origin!==window.location.origin&&(k(i.data)?this.appWindow.parent.postMessage(i.data,"*"):G(i.data)&&this.iframeWidow.postMessage(i.data,"*"))},this.startListening()}startListening(){this.appWindow.addEventListener("message",this.forwardSdkMessage)}stopListening(){this.appWindow.removeEventListener("message",this.forwardSdkMessage)}}function M(e){return typeof e=="object"&&e!==null&&"id"in e&&typeof e.id=="string"}function k(e){return"method"in e&&typeof e.method=="string"&&"params"in e&&"env"in e&&typeof e.env=="object"&&e.env!==null&&"sdkVersion"in e.env}function G(e){return"success"in e&&typeof e.success=="boolean"&&"version"in e&&typeof e.version=="string"}function I(e){return!!(e&&typeof e=="object")}const v="_";function Q(e){const t=typeof e.baseUrl=="string"?e.baseUrl:"https://swap.cow.fi",n=A(e);return t+"/#"+n+"?"+S(e)}function A(e){const{chainId:t=1,sell:n,buy:i,tradeType:o=m.SWAP}=e,c=[(n==null?void 0:n.asset)||v,(i==null?void 0:i.asset)||v].map(encodeURIComponent).join("/");return`/${t}/widget/${o}/${c}`}function S(e){const t=new URLSearchParams;return $(j(t,e),e)}function j(e,t){const{sell:n,buy:i}=t;return n!=null&&n.amount&&e.append("sellAmount",n.amount),i!=null&&i.amount&&e.append("buyAmount",i.amount),e}function $(e,t){const n=t.theme;return n?(I(n)?(e.append("palette",encodeURIComponent(JSON.stringify(n))),e.append("theme",n.baseTheme)):(e.append("palette","null"),e.append("theme",n)),e):(e.append("palette","null"),e)}const L="640px",B="450px",q=20;function K(e,t){const{params:n,provider:i,listeners:o}=t;let c=i,p=n;const h=Y(n);e.innerHTML="",e.appendChild(h);const{contentWindow:l}=h;if(!l)throw console.error("Iframe does not contain a window",h),new Error("Iframe does not contain a window!");const P=[];P.push(z(l,n.appCode)),P.push(...X(h,n.height)),P.push(J());const b=new U(window,o);let g=O(l,null,c);h.addEventListener("load",()=>D(l,p,c));const te=new H(window,l);return{updateParams:f=>{p=f,D(l,p,c)},updateListeners:f=>b.updateListeners(f),updateProvider:f=>{c=f,g=O(l,g,f)},destroy:()=>{g.disconnect(),b.stopListeningIframe(),P.forEach(f=>window.removeEventListener("message",f)),te.stopListening(),e.removeChild(h)}}}function O(e,t,n){t&&t.disconnect();const i=t||new F(e);return n&&i.onConnect(n),i}function Y(e){const{width:t=B,height:n=L}=e,i=document.createElement("iframe");return i.src=Q(e),i.width=t,i.height=n,i.style.border="0",i.allow="clipboard-read; clipboard-write",i}function D(e,t,n){const i=!!n,o=A(t),c=S(t).toString(),{theme:p,...h}=t;T(e,w.UPDATE_PARAMS,{urlParams:{pathname:o,search:c},appParams:h,hasProvider:i})}function z(e,t){return E(window,a.ACTIVATE,()=>{T(e,w.UPDATE_APP_DATA,{metaData:t?{appCode:t}:void 0})})}function J(){return E(window,a.INTERCEPT_WINDOW_OPEN,({href:e,rel:t,target:n})=>{const i=e.toString();if(!i.startsWith("http")&&i.match(/^[a-zA-Z0-9]+:\/\//)){window.open(i,n,t);return}})}function X(e,t=L){return[E(window,a.UPDATE_HEIGHT,n=>{e.style.height=n.height?`${n.height+q}px`:t}),E(window,a.SET_FULL_HEIGHT,({isUpToSmall:n})=>{e.style.height=n?t:`${document.body.offsetHeight}px`})]}const Z=Object.values(m);function x(e,t,n){if(_(e)){const i=e[n];return R(i)?i[t]:i}if(R(e)){const i=e[t];return _(i)?i[n]:i}return e}function _(e){return typeof e!="object"?!1:Object.keys(e).every(t=>Z.includes(t))}const ee=/^\d+$/;function R(e){return typeof e!="object"?!1:Object.keys(e).every(t=>typeof t=="number"||ee.test(t))}return s.TradeType=m,s.WIDGET_PALETTE_COLORS=N,s.WidgetMethodsEmit=a,s.WidgetMethodsListen=w,s.createCowSwapWidget=K,s.isCowSwapWidgetPalette=I,s.isPerNetworkConfig=R,s.isPerTradeTypeConfig=_,s.listenToMessageFromWindow=E,s.postMessageToWindow=T,s.resolveFlexibleConfig=x,s.stopListeningToMessageFromWindow=W,s.stopListeningWindowListener=C,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),s}({}); | ||
var cowSwapWidget=function(l){"use strict";var fe=Object.defineProperty;var de=(l,T,R)=>T in l?fe(l,T,{enumerable:!0,configurable:!0,writable:!0,value:R}):l[T]=R;var v=(l,T,R)=>(de(l,typeof T!="symbol"?T+"":T,R),R);class T{constructor(n){this.key=n}postMessageToWindow(n,t,s){const E=typeof s=="object"?s:{},h={key:this.key,method:t,...E};n.postMessage(h,"*")}listenToMessageFromWindow(n,t,s){const E=h=>{!R(h.data)||h.data.key!==this.key||h.data.method!==t||s(h.data)};return n.addEventListener("message",E),E}stopListeningToMessageFromWindow(n,t,s){n.removeEventListener("message",s)}stopListeningWindowListener(n,t){n.removeEventListener("message",t)}}function R(e){return typeof e=="object"&&e!==null&&"key"in e&&"method"in e&&typeof e.key=="string"&&typeof e.method=="string"}var O=(e=>(e.PROVIDER_RPC_REQUEST="PROVIDER_RPC_REQUEST",e.PROVIDER_RPC_RESPONSE="PROVIDER_RPC_RESPONSE",e.PROVIDER_ON_EVENT="PROVIDER_ON_EVENT",e))(O||{});const W=new T("cowSwapIframeRpcProviderTransport"),H=["connect","disconnect","close","chainChanged","accountsChanged"];class x{constructor(n){v(this,"ethereumProvider",null);v(this,"requestWaitingForConnection",{});v(this,"processRpcCallFromWindow",({rpcRequest:n})=>{if(!this.ethereumProvider){n.id&&(this.requestWaitingForConnection[n.id]=n);return}this.processRpcRequest(n)});this.iframeWidow=n}disconnect(){this.ethereumProvider=null,W.stopListeningToMessageFromWindow(window,O.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow)}onConnect(n){this.ethereumProvider?this.disconnect():W.listenToMessageFromWindow(window,O.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow),this.ethereumProvider=n,this.processPendingRequests(),H.forEach(t=>{n.on(t,s=>this.onProviderEvent(t,s))})}processPendingRequests(){Object.keys(this.requestWaitingForConnection).forEach(n=>{this.processRpcRequest(this.requestWaitingForConnection[n])}),this.requestWaitingForConnection={}}processRpcRequest(n){const{id:t,jsonrpc:s,method:E}=n;if(!this.ethereumProvider||!t)return;(E==="enable"?this.ethereumProvider.enable():this.ethereumProvider.request({...n,id:t})).then(_=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:s,id:t,result:_}})).catch(_=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:s,id:t,error:_}}))}onProviderEvent(n,t){W.postMessageToWindow(this.iframeWidow,O.PROVIDER_ON_EVENT,{event:n,params:t})}forwardRpcResponseToIframe(n){W.postMessageToWindow(this.iframeWidow,O.PROVIDER_RPC_RESPONSE,n)}}var G={exports:{}};(function(e){var n=Object.prototype.hasOwnProperty,t="~";function s(){}Object.create&&(s.prototype=Object.create(null),new s().__proto__||(t=!1));function E(c,r,i){this.fn=c,this.context=r,this.once=i||!1}function h(c,r,i,o,w){if(typeof i!="function")throw new TypeError("The listener must be a function");var f=new E(i,o||c,w),d=t?t+r:r;return c._events[d]?c._events[d].fn?c._events[d]=[c._events[d],f]:c._events[d].push(f):(c._events[d]=f,c._eventsCount++),c}function _(c,r){--c._eventsCount===0?c._events=new s:delete c._events[r]}function u(){this._events=new s,this._eventsCount=0}u.prototype.eventNames=function(){var r=[],i,o;if(this._eventsCount===0)return r;for(o in i=this._events)n.call(i,o)&&r.push(t?o.slice(1):o);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(i)):r},u.prototype.listeners=function(r){var i=t?t+r:r,o=this._events[i];if(!o)return[];if(o.fn)return[o.fn];for(var w=0,f=o.length,d=new Array(f);w<f;w++)d[w]=o[w].fn;return d},u.prototype.listenerCount=function(r){var i=t?t+r:r,o=this._events[i];return o?o.fn?1:o.length:0},u.prototype.emit=function(r,i,o,w,f,d){var P=t?t+r:r;if(!this._events[P])return!1;var a=this._events[P],g=arguments.length,y,p;if(a.fn){switch(a.once&&this.removeListener(r,a.fn,void 0,!0),g){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,i),!0;case 3:return a.fn.call(a.context,i,o),!0;case 4:return a.fn.call(a.context,i,o,w),!0;case 5:return a.fn.call(a.context,i,o,w,f),!0;case 6:return a.fn.call(a.context,i,o,w,f,d),!0}for(p=1,y=new Array(g-1);p<g;p++)y[p-1]=arguments[p];a.fn.apply(a.context,y)}else{var ue=a.length,I;for(p=0;p<ue;p++)switch(a[p].once&&this.removeListener(r,a[p].fn,void 0,!0),g){case 1:a[p].fn.call(a[p].context);break;case 2:a[p].fn.call(a[p].context,i);break;case 3:a[p].fn.call(a[p].context,i,o);break;case 4:a[p].fn.call(a[p].context,i,o,w);break;default:if(!y)for(I=1,y=new Array(g-1);I<g;I++)y[I-1]=arguments[I];a[p].fn.apply(a[p].context,y)}}return!0},u.prototype.on=function(r,i,o){return h(this,r,i,o,!1)},u.prototype.once=function(r,i,o){return h(this,r,i,o,!0)},u.prototype.removeListener=function(r,i,o,w){var f=t?t+r:r;if(!this._events[f])return this;if(!i)return _(this,f),this;var d=this._events[f];if(d.fn)d.fn===i&&(!w||d.once)&&(!o||d.context===o)&&_(this,f);else{for(var P=0,a=[],g=d.length;P<g;P++)(d[P].fn!==i||w&&!d[P].once||o&&d[P].context!==o)&&a.push(d[P]);a.length?this._events[f]=a.length===1?a[0]:a:_(this,f)}return this},u.prototype.removeAllListeners=function(r){var i;return r?(i=t?t+r:r,this._events[i]&&_(this,i)):(this._events=new s,this._eventsCount=0),this},u.prototype.off=u.prototype.removeListener,u.prototype.addListener=u.prototype.on,u.prefixed=t,u.EventEmitter=u,e.exports=u})(G);class Q{constructor(){v(this,"subscriptions",{})}on(n){const{event:t,handler:s}=n;return this.subscriptions[t]||(this.subscriptions[t]=[]),this.subscriptions[t].push(s),n}off(n){const{event:t,handler:s}=n;return this.subscriptions[t]&&(this.subscriptions[t]=this.subscriptions[t].filter(E=>E!==s)),n}emit(n,t){this.subscriptions[n]&&this.subscriptions[n].forEach(s=>s(t))}}var C=(e=>(e.ACTIVATE="ACTIVATE",e.UPDATE_HEIGHT="UPDATE_HEIGHT",e.SET_FULL_HEIGHT="SET_FULL_HEIGHT",e.EMIT_COW_EVENT="EMIT_COW_EVENT",e.PROVIDER_RPC_REQUEST="PROVIDER_RPC_REQUEST",e.INTERCEPT_WINDOW_OPEN="INTERCEPT_WINDOW_OPEN",e))(C||{}),S=(e=>(e.UPDATE_PARAMS="UPDATE_PARAMS",e.UPDATE_APP_DATA="UPDATE_APP_DATA",e.PROVIDER_RPC_RESPONSE="PROVIDER_RPC_RESPONSE",e.PROVIDER_ON_EVENT="PROVIDER_ON_EVENT",e))(S||{}),A=(e=>(e.SWAP="swap",e.LIMIT="limit",e.ADVANCED="advanced",e))(A||{});const j=["primary","background","paper","text","danger","warning","alert","info","success"],m=new T("cowSwapWidget");class ${constructor(n,t=[]){v(this,"eventEmitter",new Q);v(this,"listeners",[]);v(this,"widgetListener");this.contentWindow=n,this.updateListeners(t),this.widgetListener=m.listenToMessageFromWindow(this.contentWindow,C.EMIT_COW_EVENT,s=>this.eventEmitter.emit(s.event,s.payload))}stopListeningIframe(){m.stopListeningWindowListener(this.contentWindow,this.widgetListener)}updateListeners(n){for(const t of this.listeners)this.eventEmitter.off(t);this.listeners=n||[];for(const t of this.listeners)this.eventEmitter.on(t)}}class B{constructor(n,t){v(this,"forwardSdkMessage");this.appWindow=n,this.iframeWidow=t,this.forwardSdkMessage=s=>{q(s.data)&&s.origin!==window.location.origin&&(z(s.data)?this.appWindow.parent.postMessage(s.data,"*"):J(s.data)&&this.iframeWidow.postMessage(s.data,"*"))},this.startListening()}startListening(){this.appWindow.addEventListener("message",this.forwardSdkMessage)}stopListening(){this.appWindow.removeEventListener("message",this.forwardSdkMessage)}}function q(e){return typeof e=="object"&&e!==null&&"id"in e&&typeof e.id=="string"}function z(e){return"method"in e&&typeof e.method=="string"&&"params"in e&&"env"in e&&typeof e.env=="object"&&e.env!==null&&"sdkVersion"in e.env}function J(e){return"success"in e&&typeof e.success=="boolean"&&"version"in e&&typeof e.version=="string"}function b(e){return!!(e&&typeof e=="object")}const N="_";function K(e){const n=typeof e.baseUrl=="string"?e.baseUrl:"https://swap.cow.fi",t=V(e);return n+"/#"+t+"?"+M(e)}function V(e){const{chainId:n=1,sell:t,buy:s,tradeType:E=A.SWAP}=e,h=[(t==null?void 0:t.asset)||N,(s==null?void 0:s.asset)||N].map(encodeURIComponent).join("/");return`/${n}/widget/${E}/${h}`}function M(e){const n=new URLSearchParams;return Y(X(n,e),e)}function X(e,n){const{sell:t,buy:s}=n;return t!=null&&t.amount&&e.append("sellAmount",t.amount),s!=null&&s.amount&&e.append("buyAmount",s.amount),e}function Y(e,n){const t=n.theme;return t?(b(t)?(e.append("palette",encodeURIComponent(JSON.stringify(t))),e.append("theme",t.baseTheme)):(e.append("palette","null"),e.append("theme",t)),e):(e.append("palette","null"),e)}const F="640px",Z="450px",ee=20;function te(e,n){const{params:t,provider:s,listeners:E}=n;let h=s,_=t;const u=ne(t);e.innerHTML="",e.appendChild(u);const{contentWindow:c}=u;if(!c)throw console.error("Iframe does not contain a window",u),new Error("Iframe does not contain a window!");const r=[];r.push(se(c,t.appCode)),r.push(...ie(u,t.height)),r.push(re());const i=new $(window,E);let o=U(c,null,h);u.addEventListener("load",()=>k(c,_,h));const w=new B(window,c);return{updateParams:f=>{_=f,k(c,_,h)},updateListeners:f=>i.updateListeners(f),updateProvider:f=>{h=f,o=U(c,o,f)},destroy:()=>{o.disconnect(),i.stopListeningIframe(),r.forEach(f=>window.removeEventListener("message",f)),w.stopListening(),e.removeChild(u)}}}function U(e,n,t){n&&n.disconnect();const s=n||new x(e);return t&&s.onConnect(t),s}function ne(e){const{width:n=Z,height:t=F}=e,s=document.createElement("iframe");return s.src=K(e),s.width=n,s.height=t,s.style.border="0",s.allow="clipboard-read; clipboard-write",s}function k(e,n,t){const s=!!t,E=V(n),h=M(n).toString(),{theme:_,...u}=n;m.postMessageToWindow(e,S.UPDATE_PARAMS,{urlParams:{pathname:E,search:h},appParams:u,hasProvider:s})}function se(e,n){return m.listenToMessageFromWindow(window,C.ACTIVATE,()=>{m.postMessageToWindow(e,S.UPDATE_APP_DATA,{metaData:n?{appCode:n}:void 0})})}function re(){return m.listenToMessageFromWindow(window,C.INTERCEPT_WINDOW_OPEN,({href:e,rel:n,target:t})=>{const s=e.toString();if(!s.startsWith("http")&&s.match(/^[a-zA-Z0-9]+:\/\//)){window.open(s,t,n);return}})}function ie(e,n=F){return[m.listenToMessageFromWindow(window,C.UPDATE_HEIGHT,t=>{e.style.height=t.height?`${t.height+ee}px`:n}),m.listenToMessageFromWindow(window,C.SET_FULL_HEIGHT,({isUpToSmall:t})=>{e.style.height=t?n:`${document.body.offsetHeight}px`})]}const oe=Object.values(A);function ae(e,n,t){if(L(e)){const s=e[t];return D(s)?s[n]:s}if(D(e)){const s=e[n];return L(s)?s[t]:s}return e}function L(e){return typeof e!="object"?!1:Object.keys(e).every(n=>oe.includes(n))}const ce=/^\d+$/;function D(e){return typeof e!="object"?!1:Object.keys(e).every(n=>typeof n=="number"||ce.test(n))}return l.TradeType=A,l.WIDGET_PALETTE_COLORS=j,l.WidgetMethodsEmit=C,l.WidgetMethodsListen=S,l.createCowSwapWidget=te,l.isCowSwapWidgetPalette=b,l.isPerNetworkConfig=D,l.isPerTradeTypeConfig=L,l.resolveFlexibleConfig=ae,l.widgetIframeTransport=m,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}),l}({}); |
@@ -1,1 +0,1 @@ | ||
"use strict";var b=Object.defineProperty;var y=(e,t,n)=>t in e?b(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var r=(e,t,n)=>(y(e,typeof t!="symbol"?t+"":t,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class N{constructor(){r(this,"subscriptions",{})}on(t){const{event:n,handler:i}=t;return this.subscriptions[n]||(this.subscriptions[n]=[]),this.subscriptions[n].push(i),t}off(t){const{event:n,handler:i}=t;return this.subscriptions[n]&&(this.subscriptions[n]=this.subscriptions[n].filter(s=>s!==i)),t}emit(t,n){this.subscriptions[t]&&this.subscriptions[t].forEach(i=>i(n))}}const W="cowSwapWidget";function E(e,t,n){const s={key:W,method:t,...typeof n=="object"?n:{}};e.postMessage(s,"*")}function h(e,t,n){const i=s=>{!U(s.data)||s.data.key!==W||s.data.method!==t||n(s.data)};return e.addEventListener("message",i),i}function U(e){return typeof e=="object"&&e!==null&&"key"in e&&"method"in e&&typeof e.key=="string"&&typeof e.method=="string"}function I(e,t,n){e.removeEventListener("message",n)}function v(e,t){e.removeEventListener("message",t)}var a=(e=>(e.ACTIVATE="ACTIVATE",e.UPDATE_HEIGHT="UPDATE_HEIGHT",e.SET_FULL_HEIGHT="SET_FULL_HEIGHT",e.EMIT_COW_EVENT="EMIT_COW_EVENT",e.PROVIDER_RPC_REQUEST="PROVIDER_RPC_REQUEST",e.INTERCEPT_WINDOW_OPEN="INTERCEPT_WINDOW_OPEN",e))(a||{}),f=(e=>(e.UPDATE_PARAMS="UPDATE_PARAMS",e.UPDATE_APP_DATA="UPDATE_APP_DATA",e.PROVIDER_RPC_RESPONSE="PROVIDER_RPC_RESPONSE",e.PROVIDER_ON_EVENT="PROVIDER_ON_EVENT",e))(f||{}),w=(e=>(e.SWAP="swap",e.LIMIT="limit",e.ADVANCED="advanced",e))(w||{});const V=["primary","background","paper","text","danger","warning","alert","info","success"];class F{constructor(t,n=[]){r(this,"eventEmitter",new N);r(this,"listeners",[]);r(this,"widgetListener");this.contentWindow=t,this.updateListeners(n),this.widgetListener=h(this.contentWindow,a.EMIT_COW_EVENT,i=>this.eventEmitter.emit(i.event,i.payload))}stopListeningIframe(){v(this.contentWindow,this.widgetListener)}updateListeners(t){for(const n of this.listeners)this.eventEmitter.off(n);this.listeners=t||[];for(const n of this.listeners)this.eventEmitter.on(n)}}const H=["connect","disconnect","close","chainChanged","accountsChanged"];class M{constructor(t){r(this,"ethereumProvider",null);r(this,"requestWaitingForConnection",{});r(this,"processRpcCallFromWindow",({rpcRequest:t})=>{if(!this.ethereumProvider){t.id&&(this.requestWaitingForConnection[t.id]=t);return}this.processRpcRequest(t)});this.iframeWidow=t}disconnect(){this.ethereumProvider=null,I(window,a.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow)}onConnect(t){this.ethereumProvider?this.disconnect():h(window,a.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow),this.ethereumProvider=t,this.processPendingRequests(),H.forEach(n=>{t.on(n,i=>this.onProviderEvent(n,i))})}processPendingRequests(){Object.keys(this.requestWaitingForConnection).forEach(t=>{this.processRpcRequest(this.requestWaitingForConnection[t])}),this.requestWaitingForConnection={}}processRpcRequest(t){const{id:n,jsonrpc:i,method:s}=t;if(!this.ethereumProvider||!n)return;(s==="enable"?this.ethereumProvider.enable():this.ethereumProvider.request({...t,id:n})).then(c=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:i,id:n,result:c}})).catch(c=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:i,id:n,error:c}}))}onProviderEvent(t,n){E(this.iframeWidow,f.PROVIDER_ON_EVENT,{event:t,params:n})}forwardRpcResponseToIframe(t){E(this.iframeWidow,f.PROVIDER_RPC_RESPONSE,t)}}class k{constructor(t,n){r(this,"forwardSdkMessage");this.appWindow=t,this.iframeWidow=n,this.forwardSdkMessage=i=>{G(i.data)&&i.origin!==window.location.origin&&(x(i.data)?this.appWindow.parent.postMessage(i.data,"*"):Q(i.data)&&this.iframeWidow.postMessage(i.data,"*"))},this.startListening()}startListening(){this.appWindow.addEventListener("message",this.forwardSdkMessage)}stopListening(){this.appWindow.removeEventListener("message",this.forwardSdkMessage)}}function G(e){return typeof e=="object"&&e!==null&&"id"in e&&typeof e.id=="string"}function x(e){return"method"in e&&typeof e.method=="string"&&"params"in e&&"env"in e&&typeof e.env=="object"&&e.env!==null&&"sdkVersion"in e.env}function Q(e){return"success"in e&&typeof e.success=="boolean"&&"version"in e&&typeof e.version=="string"}function A(e){return!!(e&&typeof e=="object")}const R="_";function j(e){const t=typeof e.baseUrl=="string"?e.baseUrl:"https://swap.cow.fi",n=S(e);return t+"/#"+n+"?"+L(e)}function S(e){const{chainId:t=1,sell:n,buy:i,tradeType:s=w.SWAP}=e,o=[(n==null?void 0:n.asset)||R,(i==null?void 0:i.asset)||R].map(encodeURIComponent).join("/");return`/${t}/widget/${s}/${o}`}function L(e){const t=new URLSearchParams;return B($(t,e),e)}function $(e,t){const{sell:n,buy:i}=t;return n!=null&&n.amount&&e.append("sellAmount",n.amount),i!=null&&i.amount&&e.append("buyAmount",i.amount),e}function B(e,t){const n=t.theme;return n?(A(n)?(e.append("palette",encodeURIComponent(JSON.stringify(n))),e.append("theme",n.baseTheme)):(e.append("palette","null"),e.append("theme",n)),e):(e.append("palette","null"),e)}const O="640px",q="450px",K=20;function Y(e,t){const{params:n,provider:i,listeners:s}=t;let o=i,c=n;const d=z(n);e.innerHTML="",e.appendChild(d);const{contentWindow:u}=d;if(!u)throw console.error("Iframe does not contain a window",d),new Error("Iframe does not contain a window!");const l=[];l.push(J(u,n.appCode)),l.push(...Z(d,n.height)),l.push(X());const _=new F(window,s);let T=g(u,null,o);d.addEventListener("load",()=>C(u,c,o));const D=new k(window,u);return{updateParams:p=>{c=p,C(u,c,o)},updateListeners:p=>_.updateListeners(p),updateProvider:p=>{o=p,T=g(u,T,p)},destroy:()=>{T.disconnect(),_.stopListeningIframe(),l.forEach(p=>window.removeEventListener("message",p)),D.stopListening(),e.removeChild(d)}}}function g(e,t,n){t&&t.disconnect();const i=t||new M(e);return n&&i.onConnect(n),i}function z(e){const{width:t=q,height:n=O}=e,i=document.createElement("iframe");return i.src=j(e),i.width=t,i.height=n,i.style.border="0",i.allow="clipboard-read; clipboard-write",i}function C(e,t,n){const i=!!n,s=S(t),o=L(t).toString(),{theme:c,...d}=t;E(e,f.UPDATE_PARAMS,{urlParams:{pathname:s,search:o},appParams:d,hasProvider:i})}function J(e,t){return h(window,a.ACTIVATE,()=>{E(e,f.UPDATE_APP_DATA,{metaData:t?{appCode:t}:void 0})})}function X(){return h(window,a.INTERCEPT_WINDOW_OPEN,({href:e,rel:t,target:n})=>{const i=e.toString();if(!i.startsWith("http")&&i.match(/^[a-zA-Z0-9]+:\/\//)){window.open(i,n,t);return}})}function Z(e,t=O){return[h(window,a.UPDATE_HEIGHT,n=>{e.style.height=n.height?`${n.height+K}px`:t}),h(window,a.SET_FULL_HEIGHT,({isUpToSmall:n})=>{e.style.height=n?t:`${document.body.offsetHeight}px`})]}const ee=Object.values(w);function te(e,t,n){if(m(e)){const i=e[n];return P(i)?i[t]:i}if(P(e)){const i=e[t];return m(i)?i[n]:i}return e}function m(e){return typeof e!="object"?!1:Object.keys(e).every(t=>ee.includes(t))}const ne=/^\d+$/;function P(e){return typeof e!="object"?!1:Object.keys(e).every(t=>typeof t=="number"||ne.test(t))}exports.TradeType=w;exports.WIDGET_PALETTE_COLORS=V;exports.WidgetMethodsEmit=a;exports.WidgetMethodsListen=f;exports.createCowSwapWidget=Y;exports.isCowSwapWidgetPalette=A;exports.isPerNetworkConfig=P;exports.isPerTradeTypeConfig=m;exports.listenToMessageFromWindow=h;exports.postMessageToWindow=E;exports.resolveFlexibleConfig=te;exports.stopListeningToMessageFromWindow=I;exports.stopListeningWindowListener=v; | ||
"use strict";var k=Object.defineProperty;var x=(e,n,t)=>n in e?k(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var T=(e,n,t)=>(x(e,typeof n!="symbol"?n+"":n,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class b{constructor(n){this.key=n}postMessageToWindow(n,t,s){const l=typeof s=="object"?s:{},h={key:this.key,method:t,...l};n.postMessage(h,"*")}listenToMessageFromWindow(n,t,s){const l=h=>{!H(h.data)||h.data.key!==this.key||h.data.method!==t||s(h.data)};return n.addEventListener("message",l),l}stopListeningToMessageFromWindow(n,t,s){n.removeEventListener("message",s)}stopListeningWindowListener(n,t){n.removeEventListener("message",t)}}function H(e){return typeof e=="object"&&e!==null&&"key"in e&&"method"in e&&typeof e.key=="string"&&typeof e.method=="string"}var C=(e=>(e.PROVIDER_RPC_REQUEST="PROVIDER_RPC_REQUEST",e.PROVIDER_RPC_RESPONSE="PROVIDER_RPC_RESPONSE",e.PROVIDER_ON_EVENT="PROVIDER_ON_EVENT",e))(C||{});const y=new b("cowSwapIframeRpcProviderTransport"),G=["connect","disconnect","close","chainChanged","accountsChanged"];class Q{constructor(n){T(this,"ethereumProvider",null);T(this,"requestWaitingForConnection",{});T(this,"processRpcCallFromWindow",({rpcRequest:n})=>{if(!this.ethereumProvider){n.id&&(this.requestWaitingForConnection[n.id]=n);return}this.processRpcRequest(n)});this.iframeWidow=n}disconnect(){this.ethereumProvider=null,y.stopListeningToMessageFromWindow(window,C.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow)}onConnect(n){this.ethereumProvider?this.disconnect():y.listenToMessageFromWindow(window,C.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow),this.ethereumProvider=n,this.processPendingRequests(),G.forEach(t=>{n.on(t,s=>this.onProviderEvent(t,s))})}processPendingRequests(){Object.keys(this.requestWaitingForConnection).forEach(n=>{this.processRpcRequest(this.requestWaitingForConnection[n])}),this.requestWaitingForConnection={}}processRpcRequest(n){const{id:t,jsonrpc:s,method:l}=n;if(!this.ethereumProvider||!t)return;(l==="enable"?this.ethereumProvider.enable():this.ethereumProvider.request({...n,id:t})).then(w=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:s,id:t,result:w}})).catch(w=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:s,id:t,error:w}}))}onProviderEvent(n,t){y.postMessageToWindow(this.iframeWidow,C.PROVIDER_ON_EVENT,{event:n,params:t})}forwardRpcResponseToIframe(n){y.postMessageToWindow(this.iframeWidow,C.PROVIDER_RPC_RESPONSE,n)}}var j={exports:{}};(function(e){var n=Object.prototype.hasOwnProperty,t="~";function s(){}Object.create&&(s.prototype=Object.create(null),new s().__proto__||(t=!1));function l(c,r,o){this.fn=c,this.context=r,this.once=o||!1}function h(c,r,o,i,E){if(typeof o!="function")throw new TypeError("The listener must be a function");var f=new l(o,i||c,E),p=t?t+r:r;return c._events[p]?c._events[p].fn?c._events[p]=[c._events[p],f]:c._events[p].push(f):(c._events[p]=f,c._eventsCount++),c}function w(c,r){--c._eventsCount===0?c._events=new s:delete c._events[r]}function u(){this._events=new s,this._eventsCount=0}u.prototype.eventNames=function(){var r=[],o,i;if(this._eventsCount===0)return r;for(i in o=this._events)n.call(o,i)&&r.push(t?i.slice(1):i);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(o)):r},u.prototype.listeners=function(r){var o=t?t+r:r,i=this._events[o];if(!i)return[];if(i.fn)return[i.fn];for(var E=0,f=i.length,p=new Array(f);E<f;E++)p[E]=i[E].fn;return p},u.prototype.listenerCount=function(r){var o=t?t+r:r,i=this._events[o];return i?i.fn?1:i.length:0},u.prototype.emit=function(r,o,i,E,f,p){var _=t?t+r:r;if(!this._events[_])return!1;var a=this._events[_],P=arguments.length,v,d;if(a.fn){switch(a.once&&this.removeListener(r,a.fn,void 0,!0),P){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,o),!0;case 3:return a.fn.call(a.context,o,i),!0;case 4:return a.fn.call(a.context,o,i,E),!0;case 5:return a.fn.call(a.context,o,i,E,f),!0;case 6:return a.fn.call(a.context,o,i,E,f,p),!0}for(d=1,v=new Array(P-1);d<P;d++)v[d-1]=arguments[d];a.fn.apply(a.context,v)}else{var U=a.length,R;for(d=0;d<U;d++)switch(a[d].once&&this.removeListener(r,a[d].fn,void 0,!0),P){case 1:a[d].fn.call(a[d].context);break;case 2:a[d].fn.call(a[d].context,o);break;case 3:a[d].fn.call(a[d].context,o,i);break;case 4:a[d].fn.call(a[d].context,o,i,E);break;default:if(!v)for(R=1,v=new Array(P-1);R<P;R++)v[R-1]=arguments[R];a[d].fn.apply(a[d].context,v)}}return!0},u.prototype.on=function(r,o,i){return h(this,r,o,i,!1)},u.prototype.once=function(r,o,i){return h(this,r,o,i,!0)},u.prototype.removeListener=function(r,o,i,E){var f=t?t+r:r;if(!this._events[f])return this;if(!o)return w(this,f),this;var p=this._events[f];if(p.fn)p.fn===o&&(!E||p.once)&&(!i||p.context===i)&&w(this,f);else{for(var _=0,a=[],P=p.length;_<P;_++)(p[_].fn!==o||E&&!p[_].once||i&&p[_].context!==i)&&a.push(p[_]);a.length?this._events[f]=a.length===1?a[0]:a:w(this,f)}return this},u.prototype.removeAllListeners=function(r){var o;return r?(o=t?t+r:r,this._events[o]&&w(this,o)):(this._events=new s,this._eventsCount=0),this},u.prototype.off=u.prototype.removeListener,u.prototype.addListener=u.prototype.on,u.prefixed=t,u.EventEmitter=u,e.exports=u})(j);class ${constructor(){T(this,"subscriptions",{})}on(n){const{event:t,handler:s}=n;return this.subscriptions[t]||(this.subscriptions[t]=[]),this.subscriptions[t].push(s),n}off(n){const{event:t,handler:s}=n;return this.subscriptions[t]&&(this.subscriptions[t]=this.subscriptions[t].filter(l=>l!==s)),n}emit(n,t){this.subscriptions[n]&&this.subscriptions[n].forEach(s=>s(t))}}var g=(e=>(e.ACTIVATE="ACTIVATE",e.UPDATE_HEIGHT="UPDATE_HEIGHT",e.SET_FULL_HEIGHT="SET_FULL_HEIGHT",e.EMIT_COW_EVENT="EMIT_COW_EVENT",e.PROVIDER_RPC_REQUEST="PROVIDER_RPC_REQUEST",e.INTERCEPT_WINDOW_OPEN="INTERCEPT_WINDOW_OPEN",e))(g||{}),O=(e=>(e.UPDATE_PARAMS="UPDATE_PARAMS",e.UPDATE_APP_DATA="UPDATE_APP_DATA",e.PROVIDER_RPC_RESPONSE="PROVIDER_RPC_RESPONSE",e.PROVIDER_ON_EVENT="PROVIDER_ON_EVENT",e))(O||{}),I=(e=>(e.SWAP="swap",e.LIMIT="limit",e.ADVANCED="advanced",e))(I||{});const B=["primary","background","paper","text","danger","warning","alert","info","success"],m=new b("cowSwapWidget");class q{constructor(n,t=[]){T(this,"eventEmitter",new $);T(this,"listeners",[]);T(this,"widgetListener");this.contentWindow=n,this.updateListeners(t),this.widgetListener=m.listenToMessageFromWindow(this.contentWindow,g.EMIT_COW_EVENT,s=>this.eventEmitter.emit(s.event,s.payload))}stopListeningIframe(){m.stopListeningWindowListener(this.contentWindow,this.widgetListener)}updateListeners(n){for(const t of this.listeners)this.eventEmitter.off(t);this.listeners=n||[];for(const t of this.listeners)this.eventEmitter.on(t)}}class z{constructor(n,t){T(this,"forwardSdkMessage");this.appWindow=n,this.iframeWidow=t,this.forwardSdkMessage=s=>{J(s.data)&&s.origin!==window.location.origin&&(K(s.data)?this.appWindow.parent.postMessage(s.data,"*"):X(s.data)&&this.iframeWidow.postMessage(s.data,"*"))},this.startListening()}startListening(){this.appWindow.addEventListener("message",this.forwardSdkMessage)}stopListening(){this.appWindow.removeEventListener("message",this.forwardSdkMessage)}}function J(e){return typeof e=="object"&&e!==null&&"id"in e&&typeof e.id=="string"}function K(e){return"method"in e&&typeof e.method=="string"&&"params"in e&&"env"in e&&typeof e.env=="object"&&e.env!==null&&"sdkVersion"in e.env}function X(e){return"success"in e&&typeof e.success=="boolean"&&"version"in e&&typeof e.version=="string"}function N(e){return!!(e&&typeof e=="object")}const A="_";function Y(e){const n=typeof e.baseUrl=="string"?e.baseUrl:"https://swap.cow.fi",t=V(e);return n+"/#"+t+"?"+M(e)}function V(e){const{chainId:n=1,sell:t,buy:s,tradeType:l=I.SWAP}=e,h=[(t==null?void 0:t.asset)||A,(s==null?void 0:s.asset)||A].map(encodeURIComponent).join("/");return`/${n}/widget/${l}/${h}`}function M(e){const n=new URLSearchParams;return ee(Z(n,e),e)}function Z(e,n){const{sell:t,buy:s}=n;return t!=null&&t.amount&&e.append("sellAmount",t.amount),s!=null&&s.amount&&e.append("buyAmount",s.amount),e}function ee(e,n){const t=n.theme;return t?(N(t)?(e.append("palette",encodeURIComponent(JSON.stringify(t))),e.append("theme",t.baseTheme)):(e.append("palette","null"),e.append("theme",t)),e):(e.append("palette","null"),e)}const F="640px",te="450px",ne=20;function se(e,n){const{params:t,provider:s,listeners:l}=n;let h=s,w=t;const u=re(t);e.innerHTML="",e.appendChild(u);const{contentWindow:c}=u;if(!c)throw console.error("Iframe does not contain a window",u),new Error("Iframe does not contain a window!");const r=[];r.push(oe(c,t.appCode)),r.push(...ae(u,t.height)),r.push(ie());const o=new q(window,l);let i=L(c,null,h);u.addEventListener("load",()=>D(c,w,h));const E=new z(window,c);return{updateParams:f=>{w=f,D(c,w,h)},updateListeners:f=>o.updateListeners(f),updateProvider:f=>{h=f,i=L(c,i,f)},destroy:()=>{i.disconnect(),o.stopListeningIframe(),r.forEach(f=>window.removeEventListener("message",f)),E.stopListening(),e.removeChild(u)}}}function L(e,n,t){n&&n.disconnect();const s=n||new Q(e);return t&&s.onConnect(t),s}function re(e){const{width:n=te,height:t=F}=e,s=document.createElement("iframe");return s.src=Y(e),s.width=n,s.height=t,s.style.border="0",s.allow="clipboard-read; clipboard-write",s}function D(e,n,t){const s=!!t,l=V(n),h=M(n).toString(),{theme:w,...u}=n;m.postMessageToWindow(e,O.UPDATE_PARAMS,{urlParams:{pathname:l,search:h},appParams:u,hasProvider:s})}function oe(e,n){return m.listenToMessageFromWindow(window,g.ACTIVATE,()=>{m.postMessageToWindow(e,O.UPDATE_APP_DATA,{metaData:n?{appCode:n}:void 0})})}function ie(){return m.listenToMessageFromWindow(window,g.INTERCEPT_WINDOW_OPEN,({href:e,rel:n,target:t})=>{const s=e.toString();if(!s.startsWith("http")&&s.match(/^[a-zA-Z0-9]+:\/\//)){window.open(s,t,n);return}})}function ae(e,n=F){return[m.listenToMessageFromWindow(window,g.UPDATE_HEIGHT,t=>{e.style.height=t.height?`${t.height+ne}px`:n}),m.listenToMessageFromWindow(window,g.SET_FULL_HEIGHT,({isUpToSmall:t})=>{e.style.height=t?n:`${document.body.offsetHeight}px`})]}const ce=Object.values(I);function ue(e,n,t){if(W(e)){const s=e[t];return S(s)?s[n]:s}if(S(e)){const s=e[n];return W(s)?s[t]:s}return e}function W(e){return typeof e!="object"?!1:Object.keys(e).every(n=>ce.includes(n))}const fe=/^\d+$/;function S(e){return typeof e!="object"?!1:Object.keys(e).every(n=>typeof n=="number"||fe.test(n))}exports.TradeType=I;exports.WIDGET_PALETTE_COLORS=B;exports.WidgetMethodsEmit=g;exports.WidgetMethodsListen=O;exports.createCowSwapWidget=se;exports.isCowSwapWidgetPalette=N;exports.isPerNetworkConfig=S;exports.isPerTradeTypeConfig=W;exports.resolveFlexibleConfig=ue;exports.widgetIframeTransport=m; |
{ | ||
"name": "@cowprotocol/widget-lib", | ||
"version": "0.14.1-RC.0", | ||
"version": "0.15.0", | ||
"type": "commonjs", | ||
@@ -24,4 +24,5 @@ "description": "CoW Swap Widget Library. Allows you to easily embed a CoW Swap widget on your website.", | ||
"dependencies": { | ||
"@cowprotocol/events": "^1.4.1-RC.0" | ||
"@cowprotocol/events": "^1.5.0", | ||
"@cowprotocol/iframe-transport": "^1.1.0" | ||
} | ||
} | ||
} |
import { CowSwapTheme, CowSwapWidgetPalette } from './types'; | ||
export declare function isCowSwapWidgetPalette(palette: CowSwapTheme | CowSwapWidgetPalette | undefined): palette is CowSwapWidgetPalette; |
@@ -1,4 +0,3 @@ | ||
import { CowEventListeners, CowEventPayloadMap, CowEvents } from '@cowprotocol/events'; | ||
import { SupportedChainId } from '@cowprotocol/cow-sdk'; | ||
import { CowWidgetEventListeners, CowWidgetEventPayloadMap, CowWidgetEvents } from '@cowprotocol/events'; | ||
export type { SupportedChainId } from '@cowprotocol/cow-sdk'; | ||
@@ -25,3 +24,3 @@ export type PerTradeTypeConfig<T> = Partial<Record<TradeType, T>>; | ||
provider?: EthereumProvider; | ||
listeners?: CowEventListeners; | ||
listeners?: CowWidgetEventListeners; | ||
} | ||
@@ -262,3 +261,3 @@ export interface JsonRpcRequest { | ||
[WidgetMethodsEmit.ACTIVATE]: void; | ||
[WidgetMethodsEmit.EMIT_COW_EVENT]: EmitCowEventPayload<CowEvents>; | ||
[WidgetMethodsEmit.EMIT_COW_EVENT]: EmitCowEventPayload<CowWidgetEvents>; | ||
[WidgetMethodsEmit.UPDATE_HEIGHT]: UpdateWidgetHeightPayload; | ||
@@ -275,2 +274,3 @@ [WidgetMethodsEmit.SET_FULL_HEIGHT]: SetWidgetFullHeightPayload; | ||
} | ||
export type WidgetEventsPayloadMap = WidgetMethodsEmitPayloadMap & WidgetMethodsListenPayloadMap; | ||
export type WidgetMethodsEmitPayloads = WidgetMethodsEmitPayloadMap[WidgetMethodsEmit]; | ||
@@ -298,5 +298,5 @@ export type WidgetMethodsListenPayloads = WidgetMethodsListenPayloadMap[WidgetMethodsListen]; | ||
} | ||
export interface EmitCowEventPayload<T extends CowEvents> { | ||
export interface EmitCowEventPayload<T extends CowWidgetEvents> { | ||
event: T; | ||
payload: CowEventPayloadMap[T]; | ||
payload: CowWidgetEventPayloadMap[T]; | ||
} | ||
@@ -345,1 +345,2 @@ export type WidgetMethodsEmitListener<T extends WidgetMethodsEmit> = T extends WidgetMethodsEmit ? { | ||
} | ||
export type WindowListener = (event: MessageEvent<unknown>) => void; |
import { CowSwapWidgetParams } from './types'; | ||
export declare function buildWidgetUrl(params: Partial<CowSwapWidgetParams>): string; | ||
export declare function buildWidgetPath(params: Partial<CowSwapWidgetParams>): string; | ||
export declare function buildWidgetUrlQuery(params: Partial<CowSwapWidgetParams>): URLSearchParams; |
Sorry, the diff of this file is not supported yet
53581
18.95%925
13.36%2
100%14
-6.67%+ Added
Updated