UNPKG

@dzapio/sdk

Version:

A TypeScript/JavaScript SDK for interacting with the DZap protocol, providing utilities for DeFi operations including Swaps, Bridges, and Zaps.

1 lines 200 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("viem"),require("axios"),require("ethers"),require("viem/chains"),require("viem/utils"),require("viem/actions"),require("decimal.js")):"function"==typeof define&&define.amd?define(["exports","viem","axios","ethers","viem/chains","viem/utils","viem/actions","decimal.js"],t):t((e||self).sdk={},e.viem,e.axios,e.ethers,e.viemChains,e.utils,e.actions,e.Decimal)}(this,function(e,t,n,a,r,s,i,p){function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,a.get?a:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,t}var d,y,l,m,c,T,f,b,v=/*#__PURE__*/o(n),h=/*#__PURE__*/u(r),g=/*#__PURE__*/o(p);!function(e){e.production="production",e.development="development"}(d||(d={})),function(e){e[e.PERMIT=0]="PERMIT",e[e.PERMIT2=1]="PERMIT2"}(y||(y={})),e.DZapPermitMode=void 0,(l=e.DZapPermitMode||(e.DZapPermitMode={}))[l.PERMIT=0]="PERMIT",l[l.PERMIT2_APPROVE=1]="PERMIT2_APPROVE",l[l.PERMIT2_WITNESS_TRANSFER=2]="PERMIT2_WITNESS_TRANSFER",l[l.BATCH_PERMIT2_WITNESS_TRANSFER=3]="BATCH_PERMIT2_WITNESS_TRANSFER",function(e){e[e.PERMIT=0]="PERMIT",e[e.PERMIT2_TRANSFER_FROM=1]="PERMIT2_TRANSFER_FROM",e[e.PERMIT2_APPROVE=2]="PERMIT2_APPROVE"}(m||(m={})),function(e){e.v1="v1",e.v2="v2"}(c||(c={})),e.TxnStatus=void 0,(T=e.TxnStatus||(e.TxnStatus={})).mining="mining",T.success="success",T.rejected="rejected",T.error="error",T.reverted="reverted",T.pendingWalletConfirmation="pendingWalletConfirmation",T.partialSuccess="partialSuccess",function(e){e.V1="v1",e.V1_2="v1.2",e.V2="v2"}(f||(f={})),e.StatusCodes=void 0,(b=e.StatusCodes||(e.StatusCodes={}))[b.UserRejectedRequest=4001]="UserRejectedRequest",b[b.Success=200]="Success",b[b.FunctionNotFound=32771]="FunctionNotFound",b[b.Error=500]="Error",b[b.WalletRPCFailure=429]="WalletRPCFailure",b[b.SimulationFailure=417]="SimulationFailure",b[b.ContractExecutionError=-500]="ContractExecutionError";var x,w={permit2:"permit2",erc20:"erc20"},I={trade:"trade",dca:"dca",zap:"zap"},A="swap",_=t.encodeAbiParameters(t.parseAbiParameters("uint8, bytes"),[e.DZapPermitMode.PERMIT,"0x"]),S=t.encodeAbiParameters(t.parseAbiParameters("uint8, bytes"),[e.DZapPermitMode.PERMIT2_APPROVE,"0x"]);function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function D(){return D=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},D.apply(null,arguments)}function k(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var C,E,M,F,B={name:"DZapVerifier",version:"1",salt:t.keccak256(t.encodePacked(["string"],["DZap-v0.1"]))},R="PermitWitnessTransferFrom",N="PermitBatchWitnessTransferFrom",U={PermitSingle:"PermitSingle",PermitWitnessTransferFrom:"PermitWitnessTransferFrom",PermitBatchWitnessTransferFrom:"PermitBatchWitnessTransferFrom",EIP2612Permit:"EIP2612Permit",AutoPermit:"AutoPermit"},j=((x={})[U.EIP2612Permit]=e.DZapPermitMode.PERMIT,x[U.PermitSingle]=e.DZapPermitMode.PERMIT2_APPROVE,x[U.PermitWitnessTransferFrom]=e.DZapPermitMode.PERMIT2_WITNESS_TRANSFER,x[U.PermitBatchWitnessTransferFrom]=e.DZapPermitMode.BATCH_PERMIT2_WITNESS_TRANSFER,x),O=D({},function(e,t){if(null==e)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;n[a]=e[a]}return n}(U,["EIP2612Permit"]),{Default:"Default"}),V={name:"name",allowance:"allowance",approve:"approve",transfer:"transfer",transferFrom:"transferFrom",balanceOf:"balanceOf",decimals:"decimals",symbol:"symbol",version:"version",nonces:"nonces",domainSeparator:"DOMAIN_SEPARATOR"},W=1800,H="get",Z="post",q=/*#__PURE__*/function(){function e(e){var t=this;this.axiosInstance=void 0,this.axiosInstance=v.default.create({baseURL:e}),this.axiosInstance.interceptors.response.use(function(e){return e},function(e){try{var n,a,r,s=function(t){return r?t:Promise.reject(e)},i=e.config;if(!i)return Promise.reject(e);i.retryCount=null!=(n=i.retryCount)?n:0,i.shouldRetry=null!=(a=i.shouldRetry)&&a;var p=function(){if(i.shouldRetry&&i.retryCount<2)return i.retryCount+=1,Promise.resolve(new Promise(function(e){return setTimeout(e,500)})).then(function(){var e=t.axiosInstance(i);return r=1,e})}();return Promise.resolve(p&&p.then?p.then(s):s(p))}catch(e){return Promise.reject(e)}})}return e.getInstance=function(t){return e.instances.has(t)||e.instances.set(t,new e(t)),e.instances.get(t).axiosInstance},e}();q.instances=new Map,"undefined"!=typeof process&&process.env&&(C=process.env.REACT_APP_ENV||process.env.NEXT_PUBLIC_APP_ENV||process.env.NODE_ENV,E=process.env.REACT_APP_BASE_API_URL||process.env.NEXT_PUBLIC_BASE_API_URL||process.env.BASE_API_URL,M=process.env.REACT_APP_ZAP_API_URL||process.env.NEXT_PUBLIC_ZAP_API_URL||process.env.ZAP_API_URL,F=process.env.REACT_APP_DZAP_API_KEY||process.env.NEXT_PUBLIC_DZAP_API_KEY||process.env.DZAP_API_KEY);var L=function(){var e={apiKey:F||null,rpcUrlsByChainId:{},eip2612DisabledChains:[747474],appEnv:C||d.development,baseApiUrl:E||"https://api.dzap.io",zapApiUrl:M||"https://zap.dzap.io",versionPostfix:"v1/"};return{getApiKey:function(){return e.apiKey},setApiKey:function(t){e.apiKey=t},getRpcUrlsByChainId:function(t){return e.rpcUrlsByChainId[t]},setRpcUrlsByChainId:function(t){e.rpcUrlsByChainId=t},getEip2612DisabledChains:function(){return e.eip2612DisabledChains},setEip2612DisabledChains:function(t){e.eip2612DisabledChains=t},getAppEnv:function(){return e.appEnv},setAppEnv:function(t){e.appEnv=t},getBaseApiUrl:function(){return e.baseApiUrl},setBaseApiUrl:function(t){e.baseApiUrl=t},getZapApiUrl:function(){return e.zapApiUrl},setZapApiUrl:function(t){e.zapApiUrl=t},getVersionPostfix:function(){return e.versionPostfix},setVersionPostfix:function(t){e.versionPostfix=t},getBaseUrl:function(){return e.baseApiUrl+"/"+e.versionPostfix},getBaseZapUrl:function(){return e.zapApiUrl+"/"+e.versionPostfix}}}(),z=q.getInstance(L.getBaseUrl()),G=q.getInstance(L.getBaseZapUrl()),K=function(e){var t=e.endpoint,n=e.data,a=e.method,r=void 0===a?Z:a,s=e.cancelToken,i=e.shouldRetry,p=void 0!==i&&i;try{var o=L.getApiKey(),u={method:r,url:t,data:r===H?void 0:n,params:r===H?n:void 0,headers:D({"Content-Type":"application/json"},o?{"x-api-key":o}:{}),cancelToken:s,shouldRetry:p};return Promise.resolve(z(u).then(function(e){return e.data}).catch(function(e){return Promise.reject(e)}))}catch(e){return Promise.reject(e)}},Y=function(e){var t=e.endpoint,n=e.data,a=e.method,r=void 0===a?Z:a,s=e.cancelToken,i=e.shouldRetry,p=void 0!==i&&i;try{var o=L.getApiKey(),u={method:r,url:t,data:r===H?void 0:n,params:r===H?n:void 0,headers:D({"Content-Type":"application/json"},o?{"x-api-key":o}:{}),cancelToken:s,shouldRetry:p};return Promise.resolve(G(u).then(function(e){return e.data}).catch(function(e){return Promise.reject(e)}))}catch(e){return Promise.reject(e)}},X=function(e){return K({endpoint:"/buildTx",data:e,method:Z})},Q=function(e){return K({endpoint:"/broadcast",data:e,method:Z})},J=function(e,t){return Y({endpoint:"/buildTx",data:e,method:Z,cancelToken:t})},$=function(){return K({endpoint:"chains",data:{},method:H,shouldRetry:!0})},ee=function(e,t,n){return K({endpoint:"token/tokens",data:{chainId:e,source:t,account:n},method:H,shouldRetry:!0})},te=function(e,t,n,a,r){var s={tokenAddress:Array.isArray(e)?void 0:e,tokenAddresses:Array.isArray(e)?e.join(","):void 0,chainId:t,account:n,includeBalance:a,includePrice:r};return K({endpoint:"token/details",data:s,method:H})},ne="undefined"!=typeof process&&process.versions&&process.versions.node,ae=null;if(ne)try{ae=require("node-cache")}catch(e){ae=null}var re=/*#__PURE__*/function(){function e(){this.cache=new Map}var t=e.prototype;return t.set=function(e,t,n){var a=n?Date.now()+1e3*n:void 0;this.cache.set(e,{value:t,expiry:a})},t.get=function(e){var t=this.cache.get(e);if(t){if(!(t.expiry&&Date.now()>t.expiry))return t.value;this.cache.delete(e)}},t.del=function(e){return this.cache.delete(e)?1:0},t.flushAll=function(){this.cache.clear()},e}(),se=/*#__PURE__*/function(){function e(){this.client=void 0,this.client=ne&&ae?new ae({checkperiod:10,deleteOnExpire:!0}):new re}return e.set=function(e,t,n){null!=t&&this.instance.client.set(e,t,null!=n?n:0)},e.get=function(e){return this.instance.client.get(e)},e.delete=function(e){return this.instance.client.del(e)},e.flush=function(){this.instance.client.flushAll()},t=e,(n=[{key:"instance",get:function(){return e._instance||(e._instance=new e),e._instance}}])&&function(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,k(a.key),a)}}(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,n}();se._instance=void 0;var ie=["0x0000000000000000000000000000000000001010","0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","0x0000000000000000000000000000000000000000","0x000000000000000000000000000000000000800A","11111111111111111111111111111111","0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000","EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c","0x000000000000000000000000000000000000aA09","0x2::sui::SUI","0x1::aptos_coin::AptosCoin","0x0000000000000000000000000000000000001000"],pe="dZap",oe="defiLlama",ue="coingecko",de=function(e,t){return!!t&&Object.values(t).some(function(t){return t.isEnabled&&t.nativeToken.contract===e})},ye=function(e,n){return void 0===n&&(n=t.zeroAddress),t.isAddress(e)?ie.includes(e)?n:t.getAddress(e):e},le=function(){var e=this;this.id=ue,this.requiresChainConfig=!0,this.fetchNativePrice=function(e,t){try{if(!t||!t[e].isEnabled)return Promise.resolve(0);var n=t[e].coingecko;return n?Promise.resolve(K({endpoint:(a=null==n?void 0:n.nativeTokenKey,"https://api.coingecko.com/api/v3/simple/price?ids="+a+"&vs_currencies=usd&include_last_updated_at=true"),method:H})).then(function(e){var t;return(null==(t=e[null==n?void 0:n.nativeTokenKey])?void 0:t.usd)||null}):Promise.resolve(0)}catch(e){return Promise.reject(e)}var a},this.fetchERC20Prices=function(e,t,n){try{if(!t.length||!n||!n[e].isEnabled)return Promise.resolve({});var a=n[e].coingecko;if(!a)return Promise.resolve({});var r=t.map(function(e){return K({endpoint:(t=e,n=a.chainKey,"https://api.coingecko.com/api/v3/simple/token_price/"+n+"?contract_addresses="+t+"&vs_currencies=usd&include_last_updated_at=true"),method:H});var t,n});return Promise.resolve(Promise.allSettled(r)).then(function(e){return e.reduce(function(e,n,a){var r=t[a];if("fulfilled"===n.status){var s,i=null==(s=n.value[r.toLowerCase()])?void 0:s.usd;e[r]=void 0===i?null:i.toString()}else e[r]=null,console.error("Error fetching data for address "+r+":",n.reason);return e},{})})}catch(e){return Promise.reject(e)}},this.fetchPrices=function(t,n,a){return Promise.resolve(function(){try{var r=(s=n.filter(function(e){return!de(e,a)}),Promise.resolve(Promise.all([e.fetchERC20Prices(t,s,a),s.length!==n.length?e.fetchNativePrice(t,a):void 0])).then(function(e){var n=e[0],r=e[1];return a[t].isEnabled&&r&&(n[a[t].nativeToken.contract]=r.toString()),n}))}catch(e){return{}}var s;return r&&r.then?r.then(void 0,function(){return{}}):r}())}},me=/*#__PURE__*/function(){function e(){var e=this;this.id=oe,this.requiresChainConfig=!0,this.postProcess=function(e,t,n,a){var r=n[e].name;return r?t.reduce(function(e,t){var n=a.coins[r+":"+t];return n?(e[t]=n.price.toString(),e):(e[t]=null,e)},{}):{}},this.fetchPrices=function(t,n,a){return Promise.resolve(function(){try{var r=(i=e.preProcess(t,n,a)).length?Promise.resolve(K({endpoint:(s=i,"https://coins.llama.fi/prices/current/"+s.join(",")),method:H})).then(function(r){return e.postProcess(t,n,a,r)}):{}}catch(e){return{}}var s,i;return r&&r.then?r.then(void 0,function(){return{}}):r}())}}return e.prototype.preProcess=function(e,t,n){var a=n[e];if(!a.isEnabled||null==a||!a.name)return[];var r=a.name,s=a.defiLlama;return t.map(function(e){return null!=s&&s.chainKey?de(e,n)?s.chainKey+":"+s.nativeTokenKey:s.chainKey+":"+e:r+":"+e})},e}(),ce=function(){this.id=pe,this.requiresChainConfig=!1,this.fetchPrices=function(e,t){try{return Promise.resolve(function(n,a){try{var r=Promise.resolve(function(e,t){return K({endpoint:"token/price",data:{tokenAddresses:e,chainId:t},method:H})}(t,e))}catch(e){return a(e)}return r&&r.then?r.then(void 0,a):r}(0,function(e){return console.error("Failed to fetch token price",e),{}}))}catch(e){return Promise.reject(e)}}};const Te="undefined"!=typeof Symbol?Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator")):"@@iterator";function fe(e,t,n){if(!e.s){if(n instanceof be){if(!n.s)return void(n.o=fe.bind(null,e,t));1&t&&(t=n.s),n=n.v}if(n&&n.then)return void n.then(fe.bind(null,e,t),fe.bind(null,e,2));e.s=t,e.v=n;var a=e.o;a&&a(e)}}var be=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,n){var a=new e,r=this.s;if(r){var s=1&r?t:n;if(s){try{fe(a,1,s(this.v))}catch(e){fe(a,2,e)}return a}return this}return this.o=function(e){try{var r=e.v;1&e.s?fe(a,1,t?t(r):r):n?fe(a,1,n(r)):fe(a,2,r)}catch(e){fe(a,2,e)}},a},e}();function ve(e){return e instanceof be&&1&e.s}var he=/*#__PURE__*/function(){function e(){this.providers=void 0,this.providers=this.initailizeProviders()}var t=e.prototype;return t.initailizeProviders=function(){return new Map([[pe,new ce],[oe,new me],[ue,new le]])},t.getPrices=function(e){var t=e.chainId,n=e.tokenAddresses,a=e.chainConfig,r=e.allowedSources,s=e.notAllowSources,i=void 0===s?[]:s;try{var p,o=function(){for(var e=[],t=0,n=Object.entries(c);t<n.length;t++){var a=n[t],r=a[0],s=a[1];null===s?e.push(r):m[r]=s}return Object.keys(m).length>0&&se.set(y,D({},l,m),900),D({},l,c)},u=this;if(!n||0===n.length)return Promise.resolve({});var d=u.getValidProviders({allowedSources:r,notAllowSources:i,chainConfig:a});if(0===d.length)return Promise.resolve({});var y=function(e){return"tokenPrices_"+e}(t),l=se.get(y)||{},m={},c={};n.forEach(function(e){null!=l&&l[e]||(c[e]=null)});var T=function(e,t,n){if("function"==typeof e[Te]){var a,r,s,i=function(e){try{for(;!((a=p.next()).done||n&&n());)if((e=t(a.value))&&e.then){if(!ve(e))return void e.then(i,s||(s=fe.bind(null,r=new be,2)));e=e.v}r?fe(r,1,e):r=e}catch(e){fe(r||(r=new be),2,e)}},p=e[Te]();if(i(),p.return){var o=function(e){try{a.done||p.return()}catch(e){}return e};if(r&&r.then)return r.then(o,function(e){throw o(e)});o()}return r}if(!("length"in e))throw new TypeError("Object is not iterable");for(var u=[],d=0;d<e.length;d++)u.push(e[d]);return function(e,t,n){var a,r,s=-1;return function i(p){try{for(;++s<e.length&&(!n||!n());)if((p=t(s))&&p.then){if(!ve(p))return void p.then(i,r||(r=fe.bind(null,a=new be,2)));p=p.v}a?fe(a,1,p):a=p}catch(e){fe(a||(a=new be),2,e)}}(),a}(u,function(e){return t(u[e])},n)}(d,function(e){var n=Object.keys(c).filter(function(e){return null===c[e]});if(0!==n.length)return Promise.resolve(e.fetchPrices(t,n,a)).then(function(e){u.updateTokensPrice(e,c)});p=1},function(){return p});return Promise.resolve(T&&T.then?T.then(o):o())}catch(e){return Promise.reject(e)}},t.getValidProviders=function(e){var t=e.allowedSources,n=e.notAllowSources,a=e.chainConfig;return Array.from(this.providers.values()).filter(function(e){var r,s,i=null==(r=null==t?void 0:t.includes(e.id))||r,p=null!=(s=null==n?void 0:n.includes(e.id))&&s,o=t?i&&!p:!p;return e.requiresChainConfig&&!a?(console.error("Provider "+e.id+" requires chainConfig but none was provided."),!1):o})},t.updateTokensPrice=function(e,t){Object.entries(e).forEach(function(e){var n=e[1];null!==n&&(t[e[0]]=n)})},e}(),ge=[{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"}],name:"AllowanceExpired",type:"error"},{inputs:[],name:"ExcessiveInvalidation",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InsufficientAllowance",type:"error"},{inputs:[{internalType:"uint256",name:"maxAmount",type:"uint256"}],name:"InvalidAmount",type:"error"},{inputs:[],name:"InvalidContractSignature",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"LengthMismatch",type:"error"},{inputs:[{internalType:"uint256",name:"signatureDeadline",type:"uint256"}],name:"SignatureExpired",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint160",name:"amount",type:"uint160"},{indexed:!1,internalType:"uint48",name:"expiration",type:"uint48"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"address",name:"spender",type:"address"}],name:"Lockdown",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint48",name:"newNonce",type:"uint48"},{indexed:!1,internalType:"uint48",name:"oldNonce",type:"uint48"}],name:"NonceInvalidation",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint160",name:"amount",type:"uint160"},{indexed:!1,internalType:"uint48",name:"expiration",type:"uint48"},{indexed:!1,internalType:"uint48",name:"nonce",type:"uint48"}],name:"Permit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"uint256",name:"word",type:"uint256"},{indexed:!1,internalType:"uint256",name:"mask",type:"uint256"}],name:"UnorderedNonceInvalidation",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint48",name:"newNonce",type:"uint48"}],name:"invalidateNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"wordPos",type:"uint256"},{internalType:"uint256",name:"mask",type:"uint256"}],name:"invalidateUnorderedNonces",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"}],internalType:"struct IAllowanceTransfer.TokenSpenderPair[]",name:"approvals",type:"tuple[]"}],name:"lockdown",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"nonceBitmap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails[]",name:"details",type:"tuple[]"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitBatch",name:"permitBatch",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"uint48",name:"expiration",type:"uint48"},{internalType:"uint48",name:"nonce",type:"uint48"}],internalType:"struct IAllowanceTransfer.PermitDetails",name:"details",type:"tuple"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"sigDeadline",type:"uint256"}],internalType:"struct IAllowanceTransfer.PermitSingle",name:"permitSingle",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails",name:"transferDetails",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions",name:"permitted",type:"tuple"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails",name:"transferDetails",type:"tuple"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeString",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ISignatureTransfer.TokenPermissions[]",name:"permitted",type:"tuple[]"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct ISignatureTransfer.PermitBatchTransferFrom",name:"permit",type:"tuple"},{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"requestedAmount",type:"uint256"}],internalType:"struct ISignatureTransfer.SignatureTransferDetails[]",name:"transferDetails",type:"tuple[]"},{internalType:"address",name:"owner",type:"address"},{internalType:"bytes32",name:"witness",type:"bytes32"},{internalType:"string",name:"witnessTypeString",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"permitWitnessTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"address",name:"token",type:"address"}],internalType:"struct IAllowanceTransfer.AllowanceTransferDetails[]",name:"transferDetails",type:"tuple[]"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint160",name:"amount",type:"uint160"},{internalType:"address",name:"token",type:"address"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}],xe=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}],we=[{type:"error",name:"CalldataEmptyButInitNotZero",inputs:[]},{type:"error",name:"FacetAddressIsNotZero",inputs:[]},{type:"error",name:"FacetAddressIsZero",inputs:[]},{type:"error",name:"FacetContainsNoCode",inputs:[]},{type:"error",name:"FunctionAlreadyExists",inputs:[]},{type:"error",name:"FunctionDoesNotExist",inputs:[]},{type:"error",name:"FunctionIsImmutable",inputs:[]},{type:"error",name:"IncorrectFacetCutAction",inputs:[]},{type:"error",name:"InitReverted",inputs:[{type:"bytes",name:"reason"}]},{type:"error",name:"InitZeroButCalldataNotEmpty",inputs:[]},{type:"error",name:"NoSelectorsInFace",inputs:[]},{type:"error",name:"ZeroAddress",inputs:[]},{type:"error",name:"OnlyContractOwner",inputs:[]},{type:"event",anonymous:!1,name:"DiamondCut",inputs:[{type:"tuple[]",name:"_diamondCut",components:[{type:"address",name:"facetAddress"},{type:"uint8",name:"action"},{type:"bytes4[]",name:"functionSelectors"}]},{type:"address",name:"_init",indexed:!1},{type:"bytes",name:"_calldata",indexed:!1}]},{type:"function",name:"diamondCut",constant:!1,payable:!1,inputs:[{type:"tuple[]",name:"_diamondCut",components:[{type:"address",name:"facetAddress"},{type:"uint8",name:"action"},{type:"bytes4[]",name:"functionSelectors"}]},{type:"address",name:"_init"},{type:"bytes",name:"_calldata"}],outputs:[]},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"CannotAuthorizeSelf",inputs:[]},{type:"function",name:"initialize",constant:!1,payable:!1,inputs:[{type:"address",name:"_protocolFeeVault"},{type:"address",name:"_feeValidator"},{type:"address",name:"_refundVault"},{type:"address",name:"_permit2"}],outputs:[]},{type:"function",name:"facetAddress",constant:!0,stateMutability:"view",payable:!1,inputs:[{type:"bytes4",name:"_functionSelector"}],outputs:[{type:"address",name:"facetAddress_"}]},{type:"function",name:"facetAddresses",constant:!0,stateMutability:"view",payable:!1,inputs:[],outputs:[{type:"address[]",name:"facetAddresses_"}]},{type:"function",name:"facetFunctionSelectors",constant:!0,stateMutability:"view",payable:!1,inputs:[{type:"address",name:"_facet"}],outputs:[{type:"bytes4[]",name:"facetFunctionSelectors_"}]},{type:"function",name:"facets",constant:!0,stateMutability:"view",payable:!1,inputs:[],outputs:[{type:"tuple[]",name:"facets_",components:[{type:"address",name:"facetAddress"},{type:"bytes4[]",name:"functionSelectors"}]}]},{type:"function",name:"supportsInterface",constant:!0,stateMutability:"view",payable:!1,inputs:[{type:"bytes4",name:"_interfaceId"}],outputs:[{type:"bool",name:""}]},{type:"event",anonymous:!1,name:"OwnershipTransferred",inputs:[{type:"address",name:"previousOwner",indexed:!0},{type:"address",name:"newOwner",indexed:!0}]},{type:"function",name:"owner",constant:!0,stateMutability:"view",payable:!1,inputs:[],outputs:[{type:"address",name:"owner_"}]},{type:"function",name:"transferOwnership",constant:!1,payable:!1,inputs:[{type:"address",name:"_newOwner"}],outputs:[]},{type:"event",anonymous:!1,name:"ExecutionAllowed",inputs:[{type:"address",name:"account",indexed:!0},{type:"bytes4",name:"method",indexed:!0}]},{type:"event",anonymous:!1,name:"ExecutionDenied",inputs:[{type:"address",name:"account",indexed:!0},{type:"bytes4",name:"method",indexed:!0}]},{type:"function",name:"addressCanExecuteMethod",constant:!0,stateMutability:"view",payable:!1,inputs:[{type:"bytes4",name:"_selector"},{type:"address",name:"_executor"}],outputs:[{type:"bool",name:""}]},{type:"function",name:"setBatchCanExecute",constant:!1,payable:!1,inputs:[{type:"bytes4[]",name:"_selector"},{type:"address[]",name:"_executor"},{type:"bool[]",name:"_canExecute"}],outputs:[]},{type:"function",name:"setCanExecute",constant:!1,payable:!1,inputs:[{type:"bytes4",name:"_selector"},{type:"address",name:"_executor"},{type:"bool",name:"_canExecute"}],outputs:[]},{type:"error",name:"UnAuthorized",inputs:[]},{type:"event",anonymous:!1,name:"ProtocolFeeVaultUpdated",inputs:[{type:"address",name:"protocolFeeVault",indexed:!0}]},{type:"event",anonymous:!1,name:"RefundVaultUpdated",inputs:[{type:"address",name:"refundVault",indexed:!0}]},{type:"function",name:"getProtocolFeeVault",constant:!0,stateMutability:"view",payable:!1,inputs:[],outputs:[{type:"address",name:""}]},{type:"function",name:"getRefundVault",constant:!0,stateMutability:"view",payable:!1,inputs:[],outputs:[{type:"address",name:""}]},{type:"function",name:"setProtocolFeeVault",constant:!1,payable:!1,inputs:[{type:"address",name:"_protocolFeeVault"}],outputs:[]},{type:"function",name:"setRefundVault",constant:!1,payable:!1,inputs:[{type:"address",name:"_refundVault"}],outputs:[]},{type:"event",anonymous:!1,name:"FeeValidatorUpdated",inputs:[{type:"address",name:"feeValidator",indexed:!0}]},{type:"function",name:"getFeeValidator",constant:!0,stateMutability:"view",payable:!1,inputs:[],outputs:[{type:"address",name:""}]},{type:"function",name:"getNonce",constant:!0,stateMutability:"view",payable:!1,inputs:[{type:"address",name:"_user"}],outputs:[{type:"uint256",name:""}]},{type:"function",name:"setFeeValidator",constant:!1,payable:!1,inputs:[{type:"address",name:"_feeValidator"}],outputs:[]},{type:"error",name:"AdapterNotWhitelisted",inputs:[{type:"address",name:"adapter"}]},{type:"error",name:"BridgeNotWhitelisted",inputs:[{type:"address",name:"bridge"}]},{type:"error",name:"DexNotWhitelised",inputs:[{type:"address",name:"dex"}]},{type:"error",name:"NotAContract",inputs:[]},{type:"event",anonymous:!1,name:"AdapterAdded",inputs:[{type:"address",name:"adapter",indexed:!0}]},{type:"event",anonymous:!1,name:"AdapterRemoved",inputs:[{type:"address",name:"adapter",indexed:!0}]},{type:"event",anonymous:!1,name:"AdaptersAdded",inputs:[{type:"address[]",name:"adapters"}]},{type:"event",anonymous:!1,name:"AdaptersRemoved",inputs:[{type:"address[]",name:"adapters"}]},{type:"event",anonymous:!1,name:"BridgeAdded",inputs:[{type:"address",name:"bridge",indexed:!0}]},{type:"event",anonymous:!1,name:"BridgeRemoved",inputs:[{type:"address",name:"bridge",indexed:!0}]},{type:"event",anonymous:!1,name:"BridgesAdded",inputs:[{type:"address[]",name:"bridges"}]},{type:"event",anonymous:!1,name:"BridgesRemoved",inputs:[{type:"address[]",name:"bridges"}]},{type:"event",anonymous:!1,name:"DexAdded",inputs:[{type:"address",name:"dex",indexed:!0}]},{type:"event",anonymous:!1,name:"DexRemoved",inputs:[{type:"address",name:"dex",indexed:!0}]},{type:"event",anonymous:!1,name:"DexesAdded",inputs:[{type:"address[]",name:"dexes"}]},{type:"event",anonymous:!1,name:"DexesRemoved",inputs:[{type:"address[]",name:"dexes"}]},{type:"function",name:"addAdapter",constant:!1,payable:!1,inputs:[{type:"address",name:"_adapter"}],outputs:[]},{type:"function",name:"addAdapters",constant:!1,payable:!1,inputs:[{type:"address[]",name:"_adapters"}],outputs:[]},{type:"function",name:"addBridge",constant:!1,payable:!1,inputs:[{type:"address",name:"_bridge"}],outputs:[]},{type:"function",name:"addBridges",constant:!1,payable:!1,inputs:[{type:"address[]",name:"_bridges"}],outputs:[]},{type:"function",name:"addDex",constant:!1,payable:!1,inputs:[{type:"address",name:"_dex"}],outputs:[]},{type:"function",name:"addDexesAndBridges",constant:!1,payable:!1,inputs:[{type:"address[]",name:"_dexs"},{type:"address[]",name:"_bridges"}],outputs:[]},{type:"function",name:"addDexs",constant:!1,payable:!1,inputs:[{type:"address[]",name:"_dexs"}],outputs:[]},{type:"function",name:"isAdapterWhitelisted",constant:!0,stateMutability:"view",payable:!1,inputs:[{type:"address",name:"_adapter"}],outputs:[{type:"bool",name:""}]},{type:"function",name:"isBridgeWhitelisted",constant:!0,stateMutability:"view",payable:!1,inputs:[{type:"address",name:"_bridge"}],outputs:[{type:"bool",name:""}]},{type:"function",name:"isDexWhitelisted",constant:!0,stateMutability:"view",payable:!1,inputs:[{type:"address",name:"_dex"}],outputs:[{type:"bool",name:""}]},{type:"function",name:"removeAdapter",constant:!1,payable:!1,inputs:[{type:"address",name:"_adapter"}],outputs:[]},{type:"function",name:"removeAdapters",constant:!1,payable:!1,inputs:[{type:"address[]",name:"_adapters"}],outputs:[]},{type:"function",name:"removeBridge",constant:!1,payable:!1,inputs:[{type:"address",name:"_bridge"}],outputs:[]},{type:"function",name:"removeBridges",constant:!1,payable:!1,inputs:[{type:"address[]",name:"_bridges"}],outputs:[]},{type:"function",name:"removeDex",constant:!1,payable:!1,inputs:[{type:"address",name:"_dex"}],outputs:[]},{type:"function",name:"removeDexesAndBridges",constant:!1,payable:!1,inputs:[{type:"address[]",name:"_dexs"},{type:"address[]",name:"_bridges"}],outputs:[]},{type:"function",name:"removeDexs",constant:!1,payable:!1,inputs:[{type:"address[]",name:"_dexs"}],outputs:[]},{type:"error",name:"InsufficientBalance",inputs:[{type:"uint256",name:"amount"},{type:"uint256",name:"contractBalance"}]},{type:"error",name:"NativeTransferFailed",inputs:[]},{type:"error",name:"NoTransferToNullAddress",inputs:[]},{type:"error",name:"ReentrancyError",inputs:[]},{type:"error",name:"WithdrawFailed",inputs:[]},{type:"event",anonymous:!1,name:"LogWithdraw",inputs:[{type:"address",name:"tokenAddress",indexed:!0},{type:"address",name:"to",indexed:!1},{type:"uint256",name:"amount",indexed:!1}]},{type:"function",name:"executeCallAndWithdraw",constant:!1,payable:!1,inputs:[{type:"address",name:"_callTo"},{type:"bytes",name:"_callData"},{type:"address",name:"_token"},{type:"address",name:"_to"},{type:"uint256",name:"_amount"}],outputs:[]},{type:"function",name:"withdraw",constant:!1,payable:!1,inputs:[{type:"address",name:"_token"},{type:"address",name:"_to"},{type:"uint256",name:"_amount"}],outputs:[]},{type:"error",name:"InvalidPermit",inputs:[{type:"string",name:""}]},{type:"error",name:"InvalidPermitType",inputs:[]},{type:"error",name:"NoSwapFromZeroAmount",inputs:[]},{type:"error",name:"NullAddrIsNotAValidRecipient",inputs:[]},{type:"error",name:"NullAddrIsNotAValidSpender",inputs:[]},{type:"error",name:"SlippageTooHigh",inputs:[{type:"uint256",name:"minAmount"},{type:"uint256",name:"returnAmount"}]},{type:"error",name:"SwapCallFailed",inputs:[{type:"address",name:"target"},{type:"bytes4",name:"funSig"},{type:"bytes",name:"reason"}]},{type:"event",anonymous:!1,name:"DZapBatchTokenSwapped",inputs:[{type:"bytes",name:"transactionId",indexed:!0},{type:"address",name:"sender",indexed:!0},{type:"tuple[]",name:"swapInfo",components:[{type:"string",name:"dex"},{type:"address",name:"callTo"},{type:"address",name:"recipient"},{type:"address",name:"fromToken"},{type:"address",name:"toToken"},{type:"uint256",name:"fromAmount"},{type:"uint256",name:"returnToAmount"}]}]},{type:"event",anonymous:!1,name:"DZapTokenSwapped",inputs:[{type:"bytes",name:"transactionId",indexed:!0},{type:"address",name:"sender",indexed:!0},{type:"tuple",name:"swapInfo",indexed:!1,components:[{type:"string",name:"dex"},{type:"address",name:"callTo"},{type:"address",name:"recipient"},{type:"address",name:"fromToken"},{type:"address",name:"toToken"},{type:"uint256",name:"fromAmount"},{type:"uint256",name:"returnToAmount"}]}]},{type:"function",name:"swap",constant:!1,stateMutability:"payable",payable:!0,inputs:[{type:"bytes",name:"_transactionId"},{type:"bytes",name:"_batchDepositSignature"},{type:"tuple",name:"_tokenDepositDetails",components:[{type:"tuple[]",name:"permitted",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"}]},{type:"uint256",name:"nonce"},{type:"uint256",name:"deadline"}]},{type:"tuple[]",name:"_swapData",components:[{type:"address",name:"recipient"},{type:"address",name:"from"},{type:"address",name:"to"},{type:"uint256",name:"fromAmount"},{type:"uint256",name:"minToAmount"}]},{type:"tuple[]",name:"_swapExecutionData",components:[{type:"string",name:"dex"},{type:"address",name:"callTo"},{type:"address",name:"approveTo"},{type:"bytes",name:"swapCallData"},{type:"bool",name:"isDirectTransfer"}]},{type:"bool",name:"withoutRevert"}],outputs:[]},{type:"function",name:"swap",constant:!1,stateMutability:"payable",payable:!0,inputs:[{type:"bytes",name:"_transactionId"},{type:"tuple[]",name:"_inputTokens",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"},{type:"bytes",name:"permit"}]},{type:"tuple[]",name:"_swapData",components:[{type:"address",name:"recipient"},{type:"address",name:"from"},{type:"address",name:"to"},{type:"uint256",name:"fromAmount"},{type:"uint256",name:"minToAmount"}]},{type:"tuple[]",name:"_swapExecutionData",components:[{type:"string",name:"dex"},{type:"address",name:"callTo"},{type:"address",name:"approveTo"},{type:"bytes",name:"swapCallData"},{type:"bool",name:"isDirectTransfer"}]},{type:"bool",name:"withoutRevert"}],outputs:[]},{type:"function",name:"swap",constant:!1,stateMutability:"payable",payable:!0,inputs:[{type:"bytes",name:"_transactionId"},{type:"bytes",name:"_tokenApprovalData"},{type:"tuple",name:"_swapData",components:[{type:"address",name:"recipient"},{type:"address",name:"from"},{type:"address",name:"to"},{type:"uint256",name:"fromAmount"},{type:"uint256",name:"minToAmount"}]},{type:"tuple",name:"_swapExecutionData",components:[{type:"string",name:"dex"},{type:"address",name:"callTo"},{type:"address",name:"approveTo"},{type:"bytes",name:"swapCallData"},{type:"bool",name:"isDirectTransfer"}]}],outputs:[]},{type:"error",name:"AdapterCallFailed",inputs:[{type:"address",name:"adapter"},{type:"bytes",name:"res"}]},{type:"error",name:"SigDeadlineExpired",inputs:[]},{type:"error",name:"UnauthorizedSigner",inputs:[]},{type:"event",anonymous:!1,name:"BridgeStarted",inputs:[{type:"bytes",name:"transactionId",indexed:!0},{type:"address",name:"user",indexed:!0},{type:"bytes",name:"receiver",indexed:!1},{type:"string",name:"bridge",indexed:!1},{type:"address",name:"bridgeAddress",indexed:!1},{type:"address",name:"from",indexed:!1},{type:"bytes",name:"to",indexed:!1},{type:"uint256",name:"amount",indexed:!1},{type:"uint256",name:"destinationChainId",indexed:!1},{type:"bool",name:"hasDestinationCall",indexed:!1}]},{type:"event",anonymous:!1,name:"DZapBridgeStarted",inputs:[{type:"bytes",name:"transactionId",indexed:!0},{type:"address",name:"user",indexed:!0},{type:"address",name:"integrator",indexed:!0}]},{type:"function",name:"bridge",constant:!1,stateMutability:"payable",payable:!0,inputs:[{type:"bytes",name:"_transactionId"},{type:"bytes",name:"_feeData"},{type:"bytes",name:"_feeVerificationSignature"},{type:"uint256",name:"_deadline"},{type:"tuple[]",name:"_erc20Token",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"},{type:"bytes",name:"permit"}]},{type:"tuple[]",name:"_swapData",components:[{type:"address",name:"recipient"},{type:"address",name:"from"},{type:"address",name:"to"},{type:"uint256",name:"fromAmount"},{type:"uint256",name:"minToAmount"},{type:"bool",name:"updateBridgeInAmount"}]},{type:"tuple[]",name:"_swapExecutionData",components:[{type:"string",name:"dex"},{type:"address",name:"callTo"},{type:"address",name:"approveTo"},{type:"bytes",name:"swapCallData"},{type:"bool",name:"isDirectTransfer"}]},{type:"tuple[]",name:"_adapterInfo",components:[{type:"address",name:"adapter"},{type:"bytes",name:"adapterData"}]}],outputs:[]},{type:"function",name:"bridge",constant:!1,stateMutability:"payable",payable:!0,inputs:[{type:"bytes",name:"_transactionId"},{type:"bytes",name:"_feeData"},{type:"bytes",name:"_feeVerificationSignature"},{type:"bytes",name:"_batchDepositSignature"},{type:"uint256",name:"_deadline"},{type:"tuple",name:"_tokenDepositDetails",components:[{type:"tuple[]",name:"permitted",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"}]},{type:"uint256",name:"nonce"},{type:"uint256",name:"deadline"}]},{type:"tuple[]",name:"_swapData",components:[{type:"address",name:"recipient"},{type:"address",name:"from"},{type:"address",name:"to"},{type:"uint256",name:"fromAmount"},{type:"uint256",name:"minToAmount"},{type:"bool",name:"updateBridgeInAmount"}]},{type:"tuple[]",name:"_swapExecutionData",components:[{type:"string",name:"dex"},{type:"address",name:"callTo"},{type:"address",name:"approveTo"},{type:"bytes",name:"swapCallData"},{type:"bool",name:"isDirectTransfer"}]},{type:"tuple[]",name:"_adapterInfo",components:[{type:"address",name:"adapter"},{type:"bytes",name:"adapterData"}]}],outputs:[]},{type:"function",name:"bridge",constant:!1,stateMutability:"payable",payable:!0,inputs:[{type:"bytes",name:"_transactionId"},{type:"bytes",name:"_feeData"},{type:"bytes",name:"_feeVerificationSignature"},{type:"uint256",name:"_deadline"},{type:"tuple",name:"_intputTokens",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"},{type:"bytes",name:"permit"}]},{type:"tuple",name:"_swapData",components:[{type:"address",name:"recipient"},{type:"address",name:"from"},{type:"address",name:"to"},{type:"uint256",name:"fromAmount"},{type:"uint256",name:"minToAmount"},{type:"bool",name:"updateBridgeInAmount"}]},{type:"tuple",name:"_swapExecutionData",components:[{type:"string",name:"dex"},{type:"address",name:"callTo"},{type:"address",name:"approveTo"},{type:"bytes",name:"swapCallData"},{type:"bool",name:"isDirectTransfer"}]},{type:"tuple",name:"_adapterInfo",components:[{type:"address",name:"adapter"},{type:"bytes",name:"adapterData"}]}],outputs:[]},{type:"function",name:"bridge",constant:!1,stateMutability:"payable",payable:!0,inputs:[{type:"bytes",name:"_transactionId"},{type:"bytes",name:"_feeData"},{type:"bytes",name:"_feeVerificationSignature"},{type:"uint256",name:"_deadline"},{type:"tuple",name:"_intputTokens",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"},{type:"bytes",name:"permit"}]},{type:"tuple",name:"_adapterInfo",components:[{type:"address",name:"adapter"},{type:"bytes",name:"adapterData"}]}],outputs:[]},{type:"event",anonymous:!1,name:"DZapGasLessStarted",inputs:[{type:"bytes",name:"_transactionId",indexed:!0},{type:"address",name:"executor",indexed:!0},{type:"address",name:"_user",indexed:!0}]},{type:"function",name:"executeBridge",constant:!1,stateMutability:"payable",payable:!0,inputs:[{type:"bytes",name:"_transactionId"},{type:"bytes",name:"_bridgeFeeData"},{type:"bytes",name:"_userIntentSignature"},{type:"bytes",name:"_feeVerificationSignature"},{type:"uint256",name:"_userIntentDeadline"},{type:"uint256",name:"_bridgeFeeDeadline"},{type:"address",name:"_user"},{type:"tuple",name:"_inputToken",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"},{type:"bytes",name:"permit"}]},{type:"tuple",name:"_executorFeeInfo",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"}]},{type:"tuple",name:"_adapterInfo",components:[{type:"address",name:"adapter"},{type:"bytes",name:"adapterData"}]}],outputs:[]},{type:"function",name:"executeMultiBridge",constant:!1,stateMutability:"payable",payable:!0,inputs:[{type:"bytes",name:"_transactionId"},{type:"bytes",name:"_bridgeFeeData"},{type:"bytes",name:"_userIntentSignature"},{type:"bytes",name:"_feeVerificationSignature"},{type:"uint256",name:"_userIntentDeadline"},{type:"uint256",name:"_bridgeFeeDeadline"},{type:"address",name:"_user"},{type:"tuple[]",name:"_inputTokens",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"},{type:"bytes",name:"permit"}]},{type:"tuple[]",name:"_executorFeeInfo",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"}]},{type:"tuple[]",name:"_swapData",components:[{type:"address",name:"recipient"},{type:"address",name:"from"},{type:"address",name:"to"},{type:"uint256",name:"fromAmount"},{type:"uint256",name:"minToAmount"},{type:"bool",name:"updateBridgeInAmount"}]},{type:"tuple[]",name:"_swapExecutionData",components:[{type:"string",name:"dex"},{type:"address",name:"callTo"},{type:"address",name:"approveTo"},{type:"bytes",name:"swapCallData"},{type:"bool",name:"isDirectTransfer"}]},{type:"tuple[]",name:"_adapterInfo",components:[{type:"address",name:"adapter"},{type:"bytes",name:"adapterData"}]}],outputs:[]},{type:"function",name:"executeMultiBridgeBatchWithPermit2Witness",constant:!1,stateMutability:"payable",payable:!0,inputs:[{type:"bytes",name:"_transactionId"},{type:"bytes",name:"_bridgeFeeData"},{type:"bytes",name:"_userIntentSignature"},{type:"bytes",name:"_feeVerificationSignature"},{type:"uint256",name:"_bridgeFeeDeadline"},{type:"address",name:"_user"},{type:"tuple",name:"_tokenDepositDetails",components:[{type:"tuple[]",name:"permitted",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"}]},{type:"uint256",name:"nonce"},{type:"uint256",name:"deadline"}]},{type:"tuple[]",name:"_executorFeeInfo",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"}]},{type:"tuple[]",name:"_swapData",components:[{type:"address",name:"recipient"},{type:"address",name:"from"},{type:"address",name:"to"},{type:"uint256",name:"fromAmount"},{type:"uint256",name:"minToAmount"},{type:"bool",name:"updateBridgeInAmount"}]},{type:"tuple[]",name:"_swapExecutionData",components:[{type:"string",name:"dex"},{type:"address",name:"callTo"},{type:"address",name:"approveTo"},{type:"bytes",name:"swapCallData"},{type:"bool",name:"isDirectTransfer"}]},{type:"tuple[]",name:"_adapterInfo",components:[{type:"address",name:"adapter"},{type:"bytes",name:"adapterData"}]}],outputs:[]},{type:"function",name:"executeMultiSwap",constant:!1,payable:!1,inputs:[{type:"bytes",name:"_transactionId"},{type:"bytes",name:"_userIntentSignature"},{type:"uint256",name:"_userIntentDeadline"},{type:"address",name:"_user"},{type:"tuple[]",name:"_inputTokens",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"},{type:"bytes",name:"permit"}]},{type:"tuple[]",name:"_executorFeeInfo",components:[{type:"address",name:"token"},{type:"uint256",name:"amount"}]},{type:"tuple[]",name:"_swapData",components:[{type:"address",name:"recipient"},{type:"address",name:"from"},{type:"address",name:"to"},{type:"uint256",name:"fromAmount"},{type:"uint256",name:"minToAmount"}]},{type:"tuple[]",name:"_swapExecutionData",components:[{type:"string",name:"dex"},{type:"address",name:"callTo"},{type:"address",name:"