@cowprotocol/widget-lib 0.6.0-RC.3 → 0.6.0-RC.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.iife.js +1 -1
- package/index.js +1 -1
- package/index.mjs +18 -17
- package/package.json +1 -1
- package/types.d.ts +14 -4
package/index.iife.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var cowSwapWidget=function(o){"use strict";const P="cowSwapWidget";function p(t,n,e){const s={key:P,method:n,...typeof e=="object"?e:{}};t.postMessage(s,"*")}function E(t,n,e){const i=s=>{!D(s.data)||s.data.key!==P||s.data.method!==n||e(s.data)};return t.addEventListener("message",i),i}function D(t){return typeof t=="object"&&t!==null&&"key"in t&&"method"in t&&typeof t.key=="string"&&typeof t.method=="string"}function l(t,n,e){t.removeEventListener("message",e)}function
|
|
1
|
+
var cowSwapWidget=function(o){"use strict";const P="cowSwapWidget";function p(t,n,e){const s={key:P,method:n,...typeof e=="object"?e:{}};t.postMessage(s,"*")}function E(t,n,e){const i=s=>{!D(s.data)||s.data.key!==P||s.data.method!==n||e(s.data)};return t.addEventListener("message",i),i}function D(t){return typeof t=="object"&&t!==null&&"key"in t&&"method"in t&&typeof t.key=="string"&&typeof t.method=="string"}function l(t,n,e){t.removeEventListener("message",e)}function w(t,n){t.removeEventListener("message",n)}var d=(t=>(t.ACTIVATE="ACTIVATE",t.UPDATE_HEIGHT="UPDATE_HEIGHT",t.EMIT_COW_EVENT="EMIT_COW_EVENT",t.PROVIDER_RPC_REQUEST="PROVIDER_RPC_REQUEST",t))(d||{}),h=(t=>(t.UPDATE_PARAMS="UPDATE_PARAMS",t.UPDATE_APP_DATA="UPDATE_APP_DATA",t.PROVIDER_RPC_RESPONSE="PROVIDER_RPC_RESPONSE",t.PROVIDER_ON_EVENT="PROVIDER_ON_EVENT",t))(h||{}),m=(t=>(t.SWAP="swap",t.LIMIT="limit",t.ADVANCED="advanced",t))(m||{});const S=["connect","disconnect","close","chainChanged","accountsChanged"];class O{constructor(n){this.iframeWidow=n,this.ethereumProvider=null,this.requestWaitingForConnection={},this.processRpcCallFromWindow=({rpcRequest:e})=>{if(!this.ethereumProvider){e.id&&(this.requestWaitingForConnection[e.id]=e);return}this.processRpcRequest(e)}}disconnect(){this.ethereumProvider=null,l(window,d.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow)}onConnect(n){this.ethereumProvider?this.disconnect():E(window,d.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow),this.ethereumProvider=n,this.processPendingRequests(),S.forEach(e=>{n.on(e,i=>this.onProviderEvent(e,i))})}processPendingRequests(){Object.keys(this.requestWaitingForConnection).forEach(n=>{this.processRpcRequest(this.requestWaitingForConnection[n])}),this.requestWaitingForConnection={}}processRpcRequest(n){const{id:e,jsonrpc:i,method:s}=n;if(!this.ethereumProvider||!e)return;(s==="enable"?this.ethereumProvider.enable():this.ethereumProvider.request({...n,id:e})).then(r=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:i,id:e,result:r}})).catch(r=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:i,id:e,error:r}}))}onProviderEvent(n,e){p(this.iframeWidow,h.PROVIDER_ON_EVENT,{event:n,params:e})}forwardRpcResponseToIframe(n){p(this.iframeWidow,h.PROVIDER_RPC_RESPONSE,n)}}function L(){return typeof window>"u"||!window?"":`https://swap-dev-git-${window.location.hostname.replace("widget-configurator-git-","").replace("-cowswap.vercel.app","")}-cowswap.vercel.app`}const R={local:"http://localhost:3000",prod:"https://swap.cow.fi",dev:"https://dev.swap.cow.fi",pr:L()},T="_";function U(t){var s;const n=typeof t.baseUrl=="string"?t.baseUrl:R[((s=t.baseUrl)==null?void 0:s.environment)||"prod"],e=_(t),i=g(t);return n+"/#"+e+"?"+i}function _(t){const{chainId:n=1,sell:e,buy:i,tradeType:s=m.SWAP}=t,c=[(e==null?void 0:e.asset)||T,(i==null?void 0:i.asset)||T].map(encodeURIComponent).join("/");return`/${n}/widget/${s}/${c}`}function g(t){const{sell:n,buy:e,theme:i}=t,s=new URLSearchParams;return n!=null&&n.amount&&s.append("sellAmount",n.amount),e!=null&&e.amount&&s.append("buyAmount",e.amount),i&&s.append("theme",typeof i=="string"?i:i.baseTheme),s}class y{constructor(){this.subscriptions={}}on(n){const{event:e,handler:i}=n;this.subscriptions[e]||(this.subscriptions[e]=[]),this.subscriptions[e].push(i)}off(n){const{event:e,handler:i}=n;this.subscriptions[e]&&(this.subscriptions[e]=this.subscriptions[e].filter(s=>s!==i))}emit(n,e){this.subscriptions[n]&&this.subscriptions[n].forEach(i=>i(e))}}let V=1;class b{constructor(n,e=[]){this.contentWindow=n,this.eventEmitter=new y,this.listeners=[],this.instanceNumber=V++,this.updateListeners(e),this.widgetListener=E(this.contentWindow,d.EMIT_COW_EVENT,i=>this.eventEmitter.emit(i.event,i.payload))}stopListeningIframe(){w(this.contentWindow,this.widgetListener)}updateListeners(n){for(const e of this.listeners)this.eventEmitter.off(e);this.listeners=n||[];for(const e of this.listeners)this.eventEmitter.on(e)}}const A="640px",N="450px",F=20;function H(t,n){const{params:e,provider:i,listeners:s}=n;let c=i;const r=M(e);t.innerHTML="",t.appendChild(r);const{contentWindow:u}=r;if(!u)throw console.error("Iframe does not contain a window",r),new Error("Iframe does not contain a window!");const f=[];f.push(q(u,e.appCode)),f.push(G(r,e.height));const C=new b(window,s);let I=v(u,null,c);return r.addEventListener("load",()=>W(u,e,c)),{updateParams:a=>W(u,a,c),updateListeners:a=>C.updateListeners(a),updateProvider:a=>{c=a,I=v(u,I,a)},destroy:()=>{C.stopListeningIframe(),f.forEach(a=>window.removeEventListener("message",a)),t.removeChild(r)}}}function v(t,n,e){n&&n.disconnect();const i=n||new O(t);return e&&i.onConnect(e),i}function M(t){const{width:n=N,height:e=A}=t,i=document.createElement("iframe");return i.src=U(t),i.width=n,i.height=e,i.style.border="0",i}function W(t,n,e){const i=!!e,s=_(n),c=g(n).toString();p(t,h.UPDATE_PARAMS,{urlParams:{pathname:s,search:c},appParams:{...n},hasProvider:i})}function q(t,n){const e=E(window,d.ACTIVATE,()=>{w(window,e),p(t,h.UPDATE_APP_DATA,{metaData:n?{appCode:n}:void 0})});return e}function G(t,n=A){return E(window,d.UPDATE_HEIGHT,e=>{t.style.height=e.height?`${e.height+F}px`:n})}return o.COWSWAP_URLS=R,o.TradeType=m,o.WidgetMethodsEmit=d,o.WidgetMethodsListen=h,o.createCowSwapWidget=H,o.listenToMessageFromWindow=E,o.postMessageToWindow=p,o.stopListeningToMessageFromWindow=l,o.stopListeningWindowListener=w,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),o}({});
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _="cowSwapWidget";function p(t,n,e){const i={key:_,method:n,...typeof e=="object"?e:{}};t.postMessage(i,"*")}function u(t,n,e){const s=i=>{!I(i.data)||i.data.key!==_||i.data.method!==n||e(i.data)};return t.addEventListener("message",s),s}function I(t){return typeof t=="object"&&t!==null&&"key"in t&&"method"in t&&typeof t.key=="string"&&typeof t.method=="string"}function g(t,n,e){t.removeEventListener("message",e)}function m(t,n){t.removeEventListener("message",n)}var a=(t=>(t.ACTIVATE="ACTIVATE",t.UPDATE_HEIGHT="UPDATE_HEIGHT",t.EMIT_COW_EVENT="EMIT_COW_EVENT",t.PROVIDER_RPC_REQUEST="PROVIDER_RPC_REQUEST",t))(a||{}),h=(t=>(t.UPDATE_PARAMS="UPDATE_PARAMS",t.UPDATE_APP_DATA="UPDATE_APP_DATA",t.PROVIDER_RPC_RESPONSE="PROVIDER_RPC_RESPONSE",t.PROVIDER_ON_EVENT="PROVIDER_ON_EVENT",t))(h||{}),w=(t=>(t.SWAP="swap",t.LIMIT="limit",t.ADVANCED="advanced",t))(w||{});const D=["connect","disconnect","close","chainChanged","accountsChanged"];class O{constructor(n){this.iframeWidow=n,this.ethereumProvider=null,this.requestWaitingForConnection={},this.processRpcCallFromWindow=({rpcRequest:e})=>{if(!this.ethereumProvider){e.id&&(this.requestWaitingForConnection[e.id]=e);return}this.processRpcRequest(e)}}disconnect(){this.ethereumProvider=null,g(window,a.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow)}onConnect(n){this.ethereumProvider?this.disconnect():u(window,a.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow),this.ethereumProvider=n,this.processPendingRequests(),D.forEach(e=>{n.on(e,s=>this.onProviderEvent(e,s))})}processPendingRequests(){Object.keys(this.requestWaitingForConnection).forEach(n=>{this.processRpcRequest(this.requestWaitingForConnection[n])}),this.requestWaitingForConnection={}}processRpcRequest(n){const{id:e,jsonrpc:s,method:i}=n;if(!this.ethereumProvider||!e)return;(i==="enable"?this.ethereumProvider.enable():this.ethereumProvider.request({...n,id:e})).then(o=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:s,id:e,result:o}})).catch(o=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:s,id:e,error:o}}))}onProviderEvent(n,e){p(this.iframeWidow,h.PROVIDER_ON_EVENT,{event:n,params:e})}forwardRpcResponseToIframe(n){p(this.iframeWidow,h.PROVIDER_RPC_RESPONSE,n)}}function S(){return typeof window>"u"||!window?"":`https://swap-dev-git-${window.location.hostname.replace("widget-configurator-git-","").replace("-cowswap.vercel.app","")}-cowswap.vercel.app`}const A={local:"http://localhost:3000",prod:"https://swap.cow.fi",dev:"https://dev.swap.cow.fi",pr:S()},l="_";function L(t){const n=A[t.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _="cowSwapWidget";function p(t,n,e){const i={key:_,method:n,...typeof e=="object"?e:{}};t.postMessage(i,"*")}function u(t,n,e){const s=i=>{!I(i.data)||i.data.key!==_||i.data.method!==n||e(i.data)};return t.addEventListener("message",s),s}function I(t){return typeof t=="object"&&t!==null&&"key"in t&&"method"in t&&typeof t.key=="string"&&typeof t.method=="string"}function g(t,n,e){t.removeEventListener("message",e)}function m(t,n){t.removeEventListener("message",n)}var a=(t=>(t.ACTIVATE="ACTIVATE",t.UPDATE_HEIGHT="UPDATE_HEIGHT",t.EMIT_COW_EVENT="EMIT_COW_EVENT",t.PROVIDER_RPC_REQUEST="PROVIDER_RPC_REQUEST",t))(a||{}),h=(t=>(t.UPDATE_PARAMS="UPDATE_PARAMS",t.UPDATE_APP_DATA="UPDATE_APP_DATA",t.PROVIDER_RPC_RESPONSE="PROVIDER_RPC_RESPONSE",t.PROVIDER_ON_EVENT="PROVIDER_ON_EVENT",t))(h||{}),w=(t=>(t.SWAP="swap",t.LIMIT="limit",t.ADVANCED="advanced",t))(w||{});const D=["connect","disconnect","close","chainChanged","accountsChanged"];class O{constructor(n){this.iframeWidow=n,this.ethereumProvider=null,this.requestWaitingForConnection={},this.processRpcCallFromWindow=({rpcRequest:e})=>{if(!this.ethereumProvider){e.id&&(this.requestWaitingForConnection[e.id]=e);return}this.processRpcRequest(e)}}disconnect(){this.ethereumProvider=null,g(window,a.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow)}onConnect(n){this.ethereumProvider?this.disconnect():u(window,a.PROVIDER_RPC_REQUEST,this.processRpcCallFromWindow),this.ethereumProvider=n,this.processPendingRequests(),D.forEach(e=>{n.on(e,s=>this.onProviderEvent(e,s))})}processPendingRequests(){Object.keys(this.requestWaitingForConnection).forEach(n=>{this.processRpcRequest(this.requestWaitingForConnection[n])}),this.requestWaitingForConnection={}}processRpcRequest(n){const{id:e,jsonrpc:s,method:i}=n;if(!this.ethereumProvider||!e)return;(i==="enable"?this.ethereumProvider.enable():this.ethereumProvider.request({...n,id:e})).then(o=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:s,id:e,result:o}})).catch(o=>this.forwardRpcResponseToIframe({rpcResponse:{jsonrpc:s,id:e,error:o}}))}onProviderEvent(n,e){p(this.iframeWidow,h.PROVIDER_ON_EVENT,{event:n,params:e})}forwardRpcResponseToIframe(n){p(this.iframeWidow,h.PROVIDER_RPC_RESPONSE,n)}}function S(){return typeof window>"u"||!window?"":`https://swap-dev-git-${window.location.hostname.replace("widget-configurator-git-","").replace("-cowswap.vercel.app","")}-cowswap.vercel.app`}const A={local:"http://localhost:3000",prod:"https://swap.cow.fi",dev:"https://dev.swap.cow.fi",pr:S()},l="_";function L(t){var i;const n=typeof t.baseUrl=="string"?t.baseUrl:A[((i=t.baseUrl)==null?void 0:i.environment)||"prod"],e=v(t),s=C(t);return n+"/#"+e+"?"+s}function v(t){const{chainId:n=1,sell:e,buy:s,tradeType:i=w.SWAP}=t,r=[(e==null?void 0:e.asset)||l,(s==null?void 0:s.asset)||l].map(encodeURIComponent).join("/");return`/${n}/widget/${i}/${r}`}function C(t){const{sell:n,buy:e,theme:s}=t,i=new URLSearchParams;return n!=null&&n.amount&&i.append("sellAmount",n.amount),e!=null&&e.amount&&i.append("buyAmount",e.amount),s&&i.append("theme",typeof s=="string"?s:s.baseTheme),i}class U{constructor(){this.subscriptions={}}on(n){const{event:e,handler:s}=n;this.subscriptions[e]||(this.subscriptions[e]=[]),this.subscriptions[e].push(s)}off(n){const{event:e,handler:s}=n;this.subscriptions[e]&&(this.subscriptions[e]=this.subscriptions[e].filter(i=>i!==s))}emit(n,e){this.subscriptions[n]&&this.subscriptions[n].forEach(s=>s(e))}}let y=1;class V{constructor(n,e=[]){this.contentWindow=n,this.eventEmitter=new U,this.listeners=[],this.instanceNumber=y++,this.updateListeners(e),this.widgetListener=u(this.contentWindow,a.EMIT_COW_EVENT,s=>this.eventEmitter.emit(s.event,s.payload))}stopListeningIframe(){m(this.contentWindow,this.widgetListener)}updateListeners(n){for(const e of this.listeners)this.eventEmitter.off(e);this.listeners=n||[];for(const e of this.listeners)this.eventEmitter.on(e)}}const W="640px",b="450px",N=20;function F(t,n){const{params:e,provider:s,listeners:i}=n;let r=s;const o=H(e);t.innerHTML="",t.appendChild(o);const{contentWindow:d}=o;if(!d)throw console.error("Iframe does not contain a window",o),new Error("Iframe does not contain a window!");const E=[];E.push(M(d,e.appCode)),E.push(q(o,e.height));const f=new V(window,i);let P=R(d,null,r);return o.addEventListener("load",()=>T(d,e,r)),{updateParams:c=>T(d,c,r),updateListeners:c=>f.updateListeners(c),updateProvider:c=>{r=c,P=R(d,P,c)},destroy:()=>{f.stopListeningIframe(),E.forEach(c=>window.removeEventListener("message",c)),t.removeChild(o)}}}function R(t,n,e){n&&n.disconnect();const s=n||new O(t);return e&&s.onConnect(e),s}function H(t){const{width:n=b,height:e=W}=t,s=document.createElement("iframe");return s.src=L(t),s.width=n,s.height=e,s.style.border="0",s}function T(t,n,e){const s=!!e,i=v(n),r=C(n).toString();p(t,h.UPDATE_PARAMS,{urlParams:{pathname:i,search:r},appParams:{...n},hasProvider:s})}function M(t,n){const e=u(window,a.ACTIVATE,()=>{m(window,e),p(t,h.UPDATE_APP_DATA,{metaData:n?{appCode:n}:void 0})});return e}function q(t,n=W){return u(window,a.UPDATE_HEIGHT,e=>{t.style.height=e.height?`${e.height+N}px`:n})}exports.COWSWAP_URLS=A;exports.TradeType=w;exports.WidgetMethodsEmit=a;exports.WidgetMethodsListen=h;exports.createCowSwapWidget=F;exports.listenToMessageFromWindow=u;exports.postMessageToWindow=p;exports.stopListeningToMessageFromWindow=g;exports.stopListeningWindowListener=m;
|
package/index.mjs
CHANGED
|
@@ -103,8 +103,9 @@ const S = {
|
|
|
103
103
|
dev: "https://dev.swap.cow.fi",
|
|
104
104
|
pr: O()
|
|
105
105
|
}, w = "_";
|
|
106
|
-
function
|
|
107
|
-
|
|
106
|
+
function U(t) {
|
|
107
|
+
var i;
|
|
108
|
+
const n = typeof t.baseUrl == "string" ? t.baseUrl : S[((i = t.baseUrl) == null ? void 0 : i.environment) || "prod"], e = A(t), s = v(t);
|
|
108
109
|
return n + "/#" + e + "?" + s;
|
|
109
110
|
}
|
|
110
111
|
function A(t) {
|
|
@@ -115,7 +116,7 @@ function v(t) {
|
|
|
115
116
|
const { sell: n, buy: e, theme: s } = t, i = new URLSearchParams();
|
|
116
117
|
return n != null && n.amount && i.append("sellAmount", n.amount), e != null && e.amount && i.append("buyAmount", e.amount), s && i.append("theme", typeof s == "string" ? s : s.baseTheme), i;
|
|
117
118
|
}
|
|
118
|
-
class
|
|
119
|
+
class V {
|
|
119
120
|
constructor() {
|
|
120
121
|
this.subscriptions = {};
|
|
121
122
|
}
|
|
@@ -131,10 +132,10 @@ class L {
|
|
|
131
132
|
this.subscriptions[n] && this.subscriptions[n].forEach((s) => s(e));
|
|
132
133
|
}
|
|
133
134
|
}
|
|
134
|
-
let
|
|
135
|
+
let L = 1;
|
|
135
136
|
class y {
|
|
136
137
|
constructor(n, e = []) {
|
|
137
|
-
this.contentWindow = n, this.eventEmitter = new
|
|
138
|
+
this.contentWindow = n, this.eventEmitter = new V(), this.listeners = [], this.instanceNumber = L++, this.updateListeners(e), this.widgetListener = u(
|
|
138
139
|
this.contentWindow,
|
|
139
140
|
d.EMIT_COW_EVENT,
|
|
140
141
|
(s) => this.eventEmitter.emit(s.event, s.payload)
|
|
@@ -151,27 +152,27 @@ class y {
|
|
|
151
152
|
this.eventEmitter.on(e);
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
|
-
const g = "640px", N = "450px",
|
|
155
|
+
const g = "640px", N = "450px", b = 20;
|
|
155
156
|
function M(t, n) {
|
|
156
157
|
const { params: e, provider: s, listeners: i } = n;
|
|
157
158
|
let r = s;
|
|
158
|
-
const o =
|
|
159
|
+
const o = H(e);
|
|
159
160
|
t.innerHTML = "", t.appendChild(o);
|
|
160
161
|
const { contentWindow: a } = o;
|
|
161
162
|
if (!a)
|
|
162
163
|
throw console.error("Iframe does not contain a window", o), new Error("Iframe does not contain a window!");
|
|
163
164
|
const E = [];
|
|
164
|
-
E.push(
|
|
165
|
-
const
|
|
166
|
-
let
|
|
165
|
+
E.push(F(a, e.appCode)), E.push(q(o, e.height));
|
|
166
|
+
const f = new y(window, i);
|
|
167
|
+
let m = P(a, null, r);
|
|
167
168
|
return o.addEventListener("load", () => l(a, e, r)), {
|
|
168
169
|
updateParams: (c) => l(a, c, r),
|
|
169
|
-
updateListeners: (c) =>
|
|
170
|
+
updateListeners: (c) => f.updateListeners(c),
|
|
170
171
|
updateProvider: (c) => {
|
|
171
|
-
r = c,
|
|
172
|
+
r = c, m = P(a, m, c);
|
|
172
173
|
},
|
|
173
174
|
destroy: () => {
|
|
174
|
-
|
|
175
|
+
f.stopListeningIframe(), E.forEach((c) => window.removeEventListener("message", c)), t.removeChild(o);
|
|
175
176
|
}
|
|
176
177
|
};
|
|
177
178
|
}
|
|
@@ -180,9 +181,9 @@ function P(t, n, e) {
|
|
|
180
181
|
const s = n || new W(t);
|
|
181
182
|
return e && s.onConnect(e), s;
|
|
182
183
|
}
|
|
183
|
-
function
|
|
184
|
+
function H(t) {
|
|
184
185
|
const { width: n = N, height: e = g } = t, s = document.createElement("iframe");
|
|
185
|
-
return s.src =
|
|
186
|
+
return s.src = U(t), s.width = n, s.height = e, s.style.border = "0", s;
|
|
186
187
|
}
|
|
187
188
|
function l(t, n, e) {
|
|
188
189
|
const s = !!e, i = A(n), r = v(n).toString();
|
|
@@ -197,7 +198,7 @@ function l(t, n, e) {
|
|
|
197
198
|
hasProvider: s
|
|
198
199
|
});
|
|
199
200
|
}
|
|
200
|
-
function
|
|
201
|
+
function F(t, n) {
|
|
201
202
|
const e = u(window, d.ACTIVATE, () => {
|
|
202
203
|
T(window, e), p(t, h.UPDATE_APP_DATA, {
|
|
203
204
|
metaData: n ? { appCode: n } : void 0
|
|
@@ -207,7 +208,7 @@ function b(t, n) {
|
|
|
207
208
|
}
|
|
208
209
|
function q(t, n = g) {
|
|
209
210
|
return u(window, d.UPDATE_HEIGHT, (e) => {
|
|
210
|
-
t.style.height = e.height ? `${e.height +
|
|
211
|
+
t.style.height = e.height ? `${e.height + b}px` : n;
|
|
211
212
|
});
|
|
212
213
|
}
|
|
213
214
|
export {
|
package/package.json
CHANGED
package/types.d.ts
CHANGED
|
@@ -122,9 +122,15 @@ export interface CowSwapWidgetParams {
|
|
|
122
122
|
*/
|
|
123
123
|
tradeType?: TradeType;
|
|
124
124
|
/**
|
|
125
|
-
* The
|
|
125
|
+
* The base url of the widget implementation
|
|
126
|
+
*
|
|
127
|
+
* The parameter can have the URL directly, or an object with the environment property,
|
|
128
|
+
*
|
|
129
|
+
* The base URL will default to the production environment if not specified, so it will use https://swap.cow.fi by default.
|
|
126
130
|
*/
|
|
127
|
-
|
|
131
|
+
baseUrl?: string | {
|
|
132
|
+
environment?: CowSwapWidgetEnv;
|
|
133
|
+
};
|
|
128
134
|
/**
|
|
129
135
|
* Sell token, and optionally the amount.
|
|
130
136
|
*/
|
|
@@ -163,9 +169,13 @@ export interface CowSwapWidgetParams {
|
|
|
163
169
|
*/
|
|
164
170
|
hideNetworkSelector?: boolean;
|
|
165
171
|
/**
|
|
166
|
-
*
|
|
172
|
+
* Defines the widget mode.
|
|
173
|
+
* - `true` (standalone mode): The widget is standalone, so it will use its own Ethereum provider. The user can connect from within the widget.
|
|
174
|
+
* - `false` (dapp mode): The widget is embedded in a dapp which is responsible of providing the Ethereum provider. Therefore, there won't be a connect button in the widget as this should happen in the host app.
|
|
175
|
+
*
|
|
176
|
+
* Defaults to standalone.
|
|
167
177
|
*/
|
|
168
|
-
|
|
178
|
+
standaloneMode?: boolean;
|
|
169
179
|
/**
|
|
170
180
|
* The theme of the widget UI.
|
|
171
181
|
*/
|