@makerdao/dai
Version:
Library for interacting with the Dai Stablecoin System.
1 lines • 149 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@makerdao/services-core"),require("lodash/fp"),require("invariant"),require("eth-lib/lib/account"),require("web3-provider-engine/dist/es5/subproviders/wallet"),require("web3-provider-engine/dist/es5"),require("web3-provider-engine/dist/es5/subproviders/websocket"),require("web3-provider-engine/dist/es5/subproviders/rpc"),require("web3-provider-engine/dist/es5/subproviders/subscriptions"),require("web3-provider-engine/dist/es5/subproviders/provider"),require("assert"),require("bignumber.js"),require("debug"),require("tslib"),require("lodash-es"),require("ethers"),require("@makerdao/currency"),require("eventemitter2"),require("isomorphic-fetch"),require("@makerdao/multicall"),require("rxjs"),require("rxjs/operators"),require("util"),require("web3")):"function"==typeof define&&define.amd?define(["exports","@makerdao/services-core","lodash/fp","invariant","eth-lib/lib/account","web3-provider-engine/dist/es5/subproviders/wallet","web3-provider-engine/dist/es5","web3-provider-engine/dist/es5/subproviders/websocket","web3-provider-engine/dist/es5/subproviders/rpc","web3-provider-engine/dist/es5/subproviders/subscriptions","web3-provider-engine/dist/es5/subproviders/provider","assert","bignumber.js","debug","tslib","lodash-es","ethers","@makerdao/currency","eventemitter2","isomorphic-fetch","@makerdao/multicall","rxjs","rxjs/operators","util","web3"],e):e((t=t||self)["@makerdao/dai"]={},t.servicesCore,t.fp,t.invariant,t.Account,t.Wallet,t.Web3ProviderEngine,t.WebsocketSubprovider,t.RpcSource,t.SubscriptionSubprovider,t.ProviderSubprovider,t.assert,t.BigNumber,t.debug,t.tslib,t.lodashEs,t.ethers,t.currency,t.EventEmitterObj,t.fetch,t.multicall$1,t.rxjs,t.operators,t.util,t.Web3)}(this,(function(t,e,n,a,r,i,s,o,u,c,p,y,d,l,m,f,b,h,v,_,w,g,x,A,T){"use strict";a=a&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a,r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,i=i&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i,s=s&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s,o=o&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o,u=u&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u,c=c&&Object.prototype.hasOwnProperty.call(c,"default")?c.default:c,p=p&&Object.prototype.hasOwnProperty.call(p,"default")?p.default:p;var k="default"in y?y.default:y;function S(t,e,n,a,r,i,s){try{var o=t[i](s),u=o.value}catch(t){return void n(t)}o.done?e(u):Promise.resolve(u).then(a,r)}function M(t){return function(){var e=this,n=arguments;return new Promise((function(a,r){var i=t.apply(e,n);function s(t){S(i,a,r,s,o,"next",t)}function o(t){S(i,a,r,s,o,"throw",t)}s(void 0)}))}}function E(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}function C(t,e,n){return e&&E(t.prototype,e),n&&E(t,n),t}function O(){return(O=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t}).apply(this,arguments)}function P(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,R(t,e)}function I(t){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function R(t,e){return(R=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function B(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function L(t,e,n){return(L=B()?Reflect.construct:function(t,e,n){var a=[null];a.push.apply(a,e);var r=new(Function.bind.apply(t,a));return n&&R(r,n.prototype),r}).apply(null,arguments)}function F(t){var e="function"==typeof Map?new Map:void 0;return(F=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return L(t,arguments,I(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),R(n,t)})(t)}function j(t,e){if(null==t)return{};var n,a,r={},i=Object.keys(t);for(a=0;a<i.length;a++)e.indexOf(n=i[a])>=0||(r[n]=t[n]);return r}function D(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function N(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n<e;n++)a[n]=t[n];return a}function U(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(n)return(n=n.call(t)).next.bind(n);if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return N(t,void 0);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?N(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var a=0;return function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function W(t,e){return t(e={exports:{}},e.exports),e.exports}d=d&&Object.prototype.hasOwnProperty.call(d,"default")?d.default:d,l=l&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l,v=v&&Object.prototype.hasOwnProperty.call(v,"default")?v.default:v,_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_.default:_,T=T&&Object.prototype.hasOwnProperty.call(T,"default")?T.default:T;var G=W((function(t){var e=function(t){var e=Object.prototype,n=e.hasOwnProperty,a="function"==typeof Symbol?Symbol:{},r=a.iterator||"@@iterator",i=a.asyncIterator||"@@asyncIterator",s=a.toStringTag||"@@toStringTag";function o(t,e,n,a){var r=Object.create((e&&e.prototype instanceof p?e:p).prototype),i=new x(a||[]);return r._invoke=function(t,e,n){var a="suspendedStart";return function(r,i){if("executing"===a)throw new Error("Generator is already running");if("completed"===a){if("throw"===r)throw i;return{value:void 0,done:!0}}for(n.method=r,n.arg=i;;){var s=n.delegate;if(s){var o=_(s,n);if(o){if(o===c)continue;return o}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===a)throw a="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a="executing";var p=u(t,e,n);if("normal"===p.type){if(a=n.done?"completed":"suspendedYield",p.arg===c)continue;return{value:p.arg,done:n.done}}"throw"===p.type&&(a="completed",n.method="throw",n.arg=p.arg)}}}(t,n,i),r}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=o;var c={};function p(){}function y(){}function d(){}var l={};l[r]=function(){return this};var m=Object.getPrototypeOf,f=m&&m(m(A([])));f&&f!==e&&n.call(f,r)&&(l=f);var b=d.prototype=p.prototype=Object.create(l);function h(t){["next","throw","return"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function v(t,e){var a;this._invoke=function(r,i){function s(){return new e((function(a,s){!function a(r,i,s,o){var c=u(t[r],t,i);if("throw"!==c.type){var p=c.arg,y=p.value;return y&&"object"==typeof y&&n.call(y,"__await")?e.resolve(y.__await).then((function(t){a("next",t,s,o)}),(function(t){a("throw",t,s,o)})):e.resolve(y).then((function(t){p.value=t,s(p)}),(function(t){return a("throw",t,s,o)}))}o(c.arg)}(r,i,a,s)}))}return a=a?a.then(s,s):s()}}function _(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,_(t,e),"throw"===e.method))return c;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return c}var a=u(n,t.iterator,e.arg);if("throw"===a.type)return e.method="throw",e.arg=a.arg,e.delegate=null,c;var r=a.arg;return r?r.done?(e[t.resultName]=r.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,c):r:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,c)}function w(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function g(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(w,this),this.reset(!0)}function A(t){if(t){var e=t[r];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function e(){for(;++a<t.length;)if(n.call(t,a))return e.value=t[a],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:T}}function T(){return{value:void 0,done:!0}}return y.prototype=b.constructor=d,d.constructor=y,d[s]=y.displayName="GeneratorFunction",t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===y||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,s in t||(t[s]="GeneratorFunction")),t.prototype=Object.create(b),t},t.awrap=function(t){return{__await:t}},h(v.prototype),v.prototype[i]=function(){return this},t.AsyncIterator=v,t.async=function(e,n,a,r,i){void 0===i&&(i=Promise);var s=new v(o(e,n,a,r),i);return t.isGeneratorFunction(n)?s:s.next().then((function(t){return t.done?t.value:s.next()}))},h(b),b[s]="Generator",b[r]=function(){return this},b.toString=function(){return"[object Generator]"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var a=e.pop();if(a in t)return n.value=a,n.done=!1,n}return n.done=!0,n}},t.values=A,x.prototype={constructor:x,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(g),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function a(n,a){return s.type="throw",s.arg=t,e.next=n,a&&(e.method="next",e.arg=void 0),!!a}for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var o=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(o&&u){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(o){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(t,e){for(var a=this.tryEntries.length-1;a>=0;--a){var r=this.tryEntries[a];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var s=i?i.completion:{};return s.type=t,s.arg=e,i?(this.method="next",this.next=i.finallyLoc,c):this.complete(s)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),c},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),g(n),c}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var a=n.completion;if("throw"===a.type){var r=a.arg;g(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:A(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),c}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}}));function H(t){return Y.apply(this,arguments)}function Y(){return(Y=M(G.mark((function t(e){var n,a,r,i,y,d,l;return G.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:a=(n=e.web3).provider,r=new s({pollingInterval:n.pollingInterval||4e3}),i={engine:r},y=function(){var t=X(a),e=new c;return e.on("data",(function(t,e){return r.emit("data",t,e)})),r.addProvider(e),new u({rpcUrl:t})},d=function(){var t=X(a),e=new c;return e.on("data",(function(t,e){return r.emit("data",t,e)})),r.addProvider(e),new o({rpcUrl:t})},l=function(){if(!a.inject)throw new Error("'inject' must be supplied with ProviderType.INJECT");return new p(a.inject)},t.t0=a.type,t.next="BROWSER"===t.t0?9:"WEBSOCKET"===t.t0?13:"HTTP"===t.t0?15:"INFURA"===t.t0?17:"INJECT"===t.t0?19:21;break;case 9:return t.next=11,z();case 11:return i.provider=t.sent,t.abrupt("break",22);case 13:return i.provider=d(),t.abrupt("break",22);case 15:return i.provider=y(),t.abrupt("break",22);case 17:return i.provider="wss"===a.protocol?d():y(),t.abrupt("break",22);case 19:return i.provider=l(),t.abrupt("break",22);case 21:throw new Error("provider type must be defined");case 22:return r.addProvider(i.provider),t.abrupt("return",i);case 24:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function z(){return K.apply(this,arguments)}function K(){return(K=M(G.mark((function t(){var e;return G.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("undefined"!=typeof window){t.next=2;break}throw new Error("Cannot use ProviderType.BROWSER because window is undefined");case 2:if(e=function(t){var e=new p(t);return e.isWindowProvider=!0,e},!window.ethereum){t.next=9;break}return t.next=6,window.ethereum.enable();case 6:return t.abrupt("return",e(window.ethereum));case 9:if(!window.web3){t.next=11;break}return t.abrupt("return",e(window.web3.currentProvider));case 11:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function X(t){var e=t.network,n=t.protocol,a=t.infuraProjectId,r=t.type,i=t.url;switch(r){case"HTTP":case"WEBSOCKET":return i;case"INFURA":return function(t,e,n){if(void 0===t&&(t="https"),!n)throw new Error("Cannot use infura without a project ID");var a=t+"://"+e+".infura.io";return(a+="wss"===t?"/ws":"")+"/v3/"+n}(n,e,a);default:throw new Error("Invalid web3 provider type: "+r)}}function q(t){var e=t.key;if("string"!=typeof e||!e.match(/^(0x)?[0-9a-fA-F]{64}$/))throw new Error("Invalid private key format");var n=e.startsWith("0x")?[e,e.replace(/^0x/,"")]:["0x"+e,e],a=n[1],s=r.fromPrivate(n[0]),o=Buffer.from(a,"hex");return{subprovider:new i({getAddressString:function(){return s.address.toLowerCase()},getPrivateKey:function(){return o}},{}),address:s.address}}function V(t,e){return J.apply(this,arguments)}function J(){return(J=M(G.mark((function t(e,n){var a,r,i,s;return G.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return s=(a=void 0===n?{}:n).address,k(!((i=void 0===(r=a.offset)?0:r)&&s),"Cannot set both address and offset"),t.abrupt("return",new Promise((function(t,n){return e.handleRequest({method:"eth_accounts",params:[],id:1},null,(function(e,a){if(e)return n(e);if(s){var r=a.find((function(t){return t.toLowerCase()===s.toLowerCase()}));k(r,"No matching address found in provider."),t(r.toLowerCase())}else t("string"==typeof a[i]?a[i].toLowerCase():a[i])}))})));case 3:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Q(t,e){return $.apply(this,arguments)}function $(){return($=M(G.mark((function t(e,n){var a,r,i;return G.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=e.offset,r=e.address,i=new Proxy(n,{}),t.t0=i,t.next=5,V(i,{offset:a,address:r});case 5:return t.t1=t.sent,t.abrupt("return",{subprovider:t.t0,address:t.t1});case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Z(){return tt.apply(this,arguments)}function tt(){return(tt=M(G.mark((function t(){var e;return G.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,z();case 2:return t.t0=e=t.sent,t.next=6,V(e);case 6:return t.t1=t.sent,t.abrupt("return",{subprovider:t.t0,address:t.t1});case 8:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var et="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",nt=["type","autoSwitch"],at=l("dai:AccountsService"),rt=n.pick(["name","type","address"]),it=function(t){function e(e){var n;return void 0===e&&(e="accounts"),(n=t.call(this,e,["event"])||this)._accounts={},n._accountFactories={privateKey:q,provider:Q,browser:Z},n}P(e,t);var r=e.prototype;return r.initialize=function(){var t=M(G.mark((function t(e){var a;return G.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return void 0===e&&(e={}),this._settings=n.omit("web3",e),t.next=4,H(e);case 4:this._engine=(a=t.sent).engine,this._provider=a.provider;case 7:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),r.connect=function(){var t=M(G.mark((function t(){var e,n,a,r;return G.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=Object.keys(this._settings),n=0,a=e;case 2:if(!(n<a.length)){t.next=9;break}return r=a[n],t.next=6,this.addAccount(r,this._settings[r]);case 6:n++,t.next=2;break;case 9:if(0!==e.length){t.next=12;break}return t.next=12,this.addAccount("default",{type:"provider"});case 12:this._engine.start();case 13:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}(),r.getProvider=function(){return this._engine},r.addAccountType=function(t,e){this._accountFactories[t]&&a(!1),this._accountFactories[t]=e},r.addAccount=function(){var t=M(G.mark((function t(e,n){var r,i,s,o,u,c,p;return G.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(void 0===n&&(n={}),e&&"string"!=typeof e&&(n=e,e=null),i=(r=n).type,s=r.autoSwitch,o=j(r,nt),this._engine||a(!1),!e||!this._accounts[e]){t.next=6;break}throw new Error("An account with this name already exists.");case 6:return(u=this._accountFactories[i])||a(!1),t.next=10,u(o,this._provider);case 10:if((c=t.sent).address){t.next=14;break}return at('Not adding account "'+e+'" (no address found)'),t.abrupt("return");case 14:if(c.address=c.address.toLowerCase(),!this._getAccountWithAddress(c.address)){t.next=17;break}throw new Error("An account with this address already exists.");case 17:return e||(e=c.address),p=O({name:e,type:i,autoSwitch:s||!1},c),this._accounts[e]=p,this._currentAccount&&"default"!==e||this.useAccount(e),this.hasAccount()&&this.get("event").emit("accounts/ADD",{account:rt(p)}),t.abrupt("return",p);case 23:case"end":return t.stop()}}),t,this)})));return function(e,n){return t.apply(this,arguments)}}(),r.listAccounts=function(){return n.map(rt,this._accounts)},r.useAccount=function(t){var e,n,r=this._accounts[t];r||a(!1),this._autoSwitchCheckHandle&&clearInterval(this._autoSwitchCheckHandle),"browser"===r.type&&(k((e=r.address,!(n=st())||n.toLowerCase()===e),"cannot use a browser account that is not currently selected"),r.autoSwitch&&(this._autoSwitchCheckHandle=setInterval(this._autoSwitchCheckAccountChange(r.address),500))),this._currentAccount&&(this._engine.stop(),this._engine.removeProvider(this.currentWallet())),this._currentAccount=t,this._engine.addProvider(this.currentWallet(),0),this._engine.start(),this.hasAccount()&&this.get("event").emit("accounts/CHANGE",{account:this.currentAccount()})},r._autoSwitchCheckAccountChange=function(t){var e=this;return M(G.mark((function n(){var a;return G.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if((a=st().toLowerCase())===t){n.next=6;break}if(e._getAccountWithAddress(a)){n.next=5;break}return n.next=5,e.addAccount({type:"browser",autoSwitch:!0});case 5:e.useAccountWithAddress(a);case 6:case"end":return n.stop()}}),n)})))},r._getAccountWithAddress=function(t){return Object.values(this._accounts).find((function(e){return e.address.toUpperCase()===t.toUpperCase()}))},r.useAccountWithAddress=function(t){var e=this._getAccountWithAddress(t);if(!e)throw new Error("No account found with address "+t);this.useAccount(e.name)},r.hasAccount=function(){return!!this._currentAccount},r.hasNonProviderAccount=function(){return this.hasAccount()&&"provider"!=this.currentAccount().type},r.currentAccount=function(){return this.hasAccount()||a(!1),rt(this._accounts[this._currentAccount])},r.currentAddress=function(){return this.hasAccount()||a(!1),this._accounts[this._currentAccount].address},r.currentWallet=function(){return this._accounts[this._currentAccount].subprovider},e}(e.PublicService);function st(){return void 0!==window.ethereum?window.ethereum.selectedAddress:window.web3.eth.defaultAccount}var ot=ut({});function ut(t){var e=t.numArguments;return function(t,n,a){var r=a.value,i=e||r.length;return a.value=function(){for(var t=this,e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];var s,o=n[n.length-1];"object"==typeof o&&null!==o&&o.constructor===Object?(n=n.slice(0,n.length-1),s=o):s={};var u=M(G.mark((function e(){var a;return G.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,0;case 2:return s.promise||(s.promise=u),a=[].concat(n,f.times(i-1-n.length,(function(){})),[s]),e.abrupt("return",r.apply(t,a));case 5:case"end":return e.stop()}}),e)})))();return u},a}}var ct=new d(et).shiftedBy(-18),pt=function(t){function e(e){var n;return void 0===e&&(e="allowance"),(n=t.call(this,e,["token","event"])||this)._shouldMinimizeAllowance=!1,n}P(e,t);var n=e.prototype;return n.initialize=function(t){t&&t.useMinimizeAllowancePolicy&&(this._shouldMinimizeAllowance=!0)},n.requireAllowance=function(){var t=M(G.mark((function t(e,n,a){var r,i,s,o,u,c,p,y;return G.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=void 0===(r=a.estimate)?ct:r,s=a.promise,o=this.get("token").getToken(e),u=this.get("token").get("web3").currentAddress(),t.next=5,o.allowance(u,n);case 5:if(!(c=t.sent).lt(ct.div(2))||this._shouldMinimizeAllowance){t.next=12;break}return t.next=9,o.approveUnlimited(n,{promise:s});case 9:return p=t.sent,this.get("event").emit("allowance/APPROVE",{transaction:p}),t.abrupt("return",p);case 12:if(!c.lt(i)||!this._shouldMinimizeAllowance){t.next=17;break}return t.next=15,o.approve(n,i,{promise:s});case 15:y=t.sent,this.get("event").emit("allowance/APPROVE",{transaction:y});case 17:case"end":return t.stop()}}),t,this)})));return function(e,n,a){return t.apply(this,arguments)}}(),n.removeAllowance=function(){var t=M(G.mark((function t(e,n,a){var r,i;return G.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=a.promise,i=this.get("token").getToken(e),t.next=4,i.allowance(this.get("token").get("web3").currentAddress(),n);case 4:if(0==parseInt(t.sent)){t.next=7;break}return t.abrupt("return",i.approve(n,"0",{promise:r}));case 7:case"end":return t.stop()}}),t,this)})));return function(e,n,a){return t.apply(this,arguments)}}(),e}(e.PrivateService);m.__decorate([ot,m.__metadata("design:type",Function),m.__metadata("design:paramtypes",[Object,Object,Object]),m.__metadata("design:returntype",Promise)],pt.prototype,"requireAllowance",null),m.__decorate([ot,m.__metadata("design:type",Function),m.__metadata("design:paramtypes",[Object,Object,Object]),m.__metadata("design:returntype",Promise)],pt.prototype,"removeAllowance",null);var yt=function(t){function e(e){return void 0===e&&(e="cache"),t.call(this,e)||this}P(e,t);var n=e.prototype;return n.initialize=function(t){void 0===t&&(t={}),t.storage&&(this._storage=t.storage)},n.isEnabled=function(){return!!this._storage},n.has=function(t){return!!this._storage&&t in this._storage},n.fetch=function(t){return this._storage?this._storage[t]:void 0},n.store=function(t,e){this._storage&&(this._storage[t]=e)},e}(e.LocalService),dt=[{constant:!1,inputs:[{name:"guy",type:"address"},{name:"wad",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],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:"src",type:"address"},{name:"dst",type:"address"},{name:"wad",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"guy",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"dst",type:"address"},{name:"wad",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"src",type:"address"},{name:"guy",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!0,name:"guy",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Transfer",type:"event"}],lt={daiV1:{tub:[{constant:!1,inputs:[{name:"wad",type:"uint256"}],name:"join",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"sin",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"skr",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"gov",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"owner_",type:"address"}],name:"setOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"era",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"cup",type:"bytes32"}],name:"ink",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"rho",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"air",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[],name:"rhi",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[],name:"flow",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"cap",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"cup",type:"bytes32"}],name:"bite",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"cup",type:"bytes32"},{name:"wad",type:"uint256"}],name:"draw",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"wad",type:"uint256"}],name:"bid",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"cupi",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"axe",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"tag",outputs:[{name:"wad",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"off",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"vox",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"gap",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"cup",type:"bytes32"}],name:"rap",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"cup",type:"bytes32"},{name:"wad",type:"uint256"}],name:"wipe",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"authority_",type:"address"}],name:"setAuthority",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"gem",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"tap_",type:"address"}],name:"turn",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"per",outputs:[{name:"ray",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"wad",type:"uint256"}],name:"exit",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"pip_",type:"address"}],name:"setPip",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"pie",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"fit_",type:"uint256"},{name:"jam",type:"uint256"}],name:"cage",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"rum",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"owner",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"sai",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"param",type:"bytes32"},{name:"val",type:"uint256"}],name:"mold",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"tax",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[],name:"drip",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"cup",type:"bytes32"},{name:"wad",type:"uint256"}],name:"free",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"mat",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"pep",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"out",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"cup",type:"bytes32"},{name:"wad",type:"uint256"}],name:"lock",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"cup",type:"bytes32"}],name:"shut",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"cup",type:"bytes32"},{name:"guy",type:"address"}],name:"give",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"authority",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"fit",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[],name:"chi",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"vox_",type:"address"}],name:"setVox",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"pip",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"pep_",type:"address"}],name:"setPep",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"fee",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"cup",type:"bytes32"}],name:"lad",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[],name:"din",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"wad",type:"uint256"}],name:"ask",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"cup",type:"bytes32"}],name:"safe",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"pit",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"cup",type:"bytes32"}],name:"tab",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[],name:"open",outputs:[{name:"cup",type:"bytes32"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"tap",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"",type:"bytes32"}],name:"cups",outputs:[{name:"lad",type:"address"},{name:"ink",type:"uint256"},{name:"art",type:"uint256"},{name:"ire",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{name:"sai_",type:"address"},{name:"sin_",type:"address"},{name:"skr_",type:"address"},{name:"gem_",type:"address"},{name:"gov_",type:"address"},{name:"pip_",type:"address"},{name:"pep_",type:"address"},{name:"vox_",type:"address"},{name:"pit_",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,name:"lad",type:"address"},{indexed:!1,name:"cup",type:"bytes32"}],name:"LogNewCup",type:"event"},{anonymous:!0,inputs:[{indexed:!0,name:"sig",type:"bytes4"},{indexed:!0,name:"guy",type:"address"},{indexed:!0,name:"foo",type:"bytes32"},{indexed:!0,name:"bar",type:"bytes32"},{indexed:!1,name:"wad",type:"uint256"},{indexed:!1,name:"fax",type:"bytes"}],name:"LogNote",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"authority",type:"address"}],name:"LogSetAuthority",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"}],name:"LogSetOwner",type:"event"}]},dappHub:{dsValue:[{constant:!1,inputs:[{name:"owner_",type:"address"}],name:"setOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"wut",type:"bytes32"}],name:"poke",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"read",outputs:[{name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"peek",outputs:[{name:"",type:"bytes32"},{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"authority_",type:"address"}],name:"setAuthority",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"owner",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[],name:"void",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"authority",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{anonymous:!0,inputs:[{indexed:!0,name:"sig",type:"bytes4"},{indexed:!0,name:"guy",type:"address"},{indexed:!0,name:"foo",type:"bytes32"},{indexed:!0,name:"bar",type:"bytes32"},{indexed:!1,name:"wad",type:"uint256"},{indexed:!1,name:"fax",type:"bytes"}],name:"LogNote",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"authority",type:"address"}],name:"LogSetAuthority",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"}],name:"LogSetOwner",type:"event"}],dsEthToken:[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"guy",type:"address"},{name:"wad",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],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:"src",type:"address"},{name:"dst",type:"address"},{name:"wad",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"wad",type:"uint256"}],name:"withdraw",outputs:[],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:"",type:"address"}],name:"balanceOf",outputs:[{name:"",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:"dst",type:"address"},{name:"wad",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[],name:"deposit",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!0,inputs:[{name:"",type:"address"},{name:"",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:"src",type:"address"},{indexed:!0,name:"guy",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Withdrawal",type:"event"}],dsGuard:[{constant:!1,inputs:[{name:"owner_",type:"address"}],name:"setOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"src",type:"address"},{name:"dst",type:"address"},{name:"sig",type:"bytes32"}],name:"forbid",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"src",type:"bytes32"},{name:"dst",type:"bytes32"},{name:"sig",type:"bytes32"}],name:"forbid",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"authority_",type:"address"}],name:"setAuthority",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"owner",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"ANY",outputs:[{name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"src_",type:"address"},{name:"dst_",type:"address"},{name:"sig",type:"bytes4"}],name:"canCall",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"authority",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"src",type:"address"},{name:"dst",type:"address"},{name:"sig",type:"bytes32"}],name:"permit",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"src",type:"bytes32"},{name:"dst",type:"bytes32"},{name:"sig",type:"bytes32"}],name:"permit",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"bytes32"},{indexed:!0,name:"dst",type:"bytes32"},{indexed:!0,name:"sig",type:"bytes32"}],name:"LogPermit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"bytes32"},{indexed:!0,name:"dst",type:"bytes32"},{indexed:!0,name:"sig",type:"bytes32"}],name:"LogForbid",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"authority",type:"address"}],name:"LogSetAuthority",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"}],name:"LogSetOwner",type:"event"}],dsChief:[{constant:!0,inputs:[],name:"IOU",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"who",type:"address"}],name:"getUserRoles",outputs:[{name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"owner_",type:"address"}],name:"setOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"GOV",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"code",type:"address"},{name:"sig",type:"bytes4"}],name:"getCapabilityRoles",outputs:[{name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"code",type:"address"},{name:"sig",type:"bytes4"}],name:"isCapabilityPublic",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"MAX_YAYS",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"whom",type:"address"}],name:"lift",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"yays",type:"address[]"}],name:"etch",outputs:[{name:"slate",type:"bytes32"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"",type:"address"}],name:"approvals",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"who",type:"address"},{name:"role",type:"uint8"},{name:"enabled",type:"bool"}],name:"setUserRole",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"authority_",type:"address"}],name:"setAuthority",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"role",type:"uint8"},{name:"code",type:"address"},{name:"sig",type:"bytes4"},{name:"enabled",type:"bool"}],name:"setRoleCapability",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"owner",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"who",type:"address"},{name:"role",type:"uint8"}],name:"hasUserRole",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"slate",type:"bytes32"}],name:"vote",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"caller",type:"address"},{name:"code",type:"address"},{name:"sig",type:"bytes4"}],name:"canCall",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"authority",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"",type:"bytes32"},{name:"",type:"uint256"}],name:"slates",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"code",type:"address"},{name:"sig",type:"bytes4"},{name:"enabled",type:"bool"}],name:"setPublicCapability",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"who",type:"address"},{name:"enabled",type:"bool"}],name:"setRootUser",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"",type:"address"}],name:"votes",outputs:[{name:"",type:"bytes32"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"wad",type:"uint256"}],name:"free",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"wad",type:"uint256"}],name:"lock",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"yays",type:"address[]"}],name:"vote",outputs:[{name:"",type:"bytes32"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"who",type:"address"}],name:"isUserRoot",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"",type:"address"}],name:"deposits",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"hat",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{name:"GOV",type:"address"},{name:"IOU",type:"address"},{name:"MAX_YAYS",type:"uint256"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,name:"slate",type:"bytes32"}],name:"Etch",type:"event"},{anonymous:!0,inputs:[{indexed:!0,name:"sig",type:"bytes4"},{indexed:!0,name:"guy",type:"address"},{indexed:!0,name:"foo",type:"bytes32"},{indexed:!0,name:"bar",type:"bytes32"},{indexed:!1,name:"wad",type:"uint256"},{indexed:!1,name:"fax",type:"bytes"}],name:"LogNote",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"authority",type:"address"}],name:"LogSetAuthority",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"}],name:"LogSetOwner",type:"event"}],dsSpell:[{constant:!0,inputs:[],name:"data",outputs:[{name:"",type:"bytes"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[],name:"cast",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"done",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"mana",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"whom",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{name:"whom_",type:"address"},{name:"mana_",type:"uint256"},{name:"data_",type:"bytes"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},{anonymous:!0,inputs:[{indexed:!0,name:"sig",type:"bytes4"},{indexed:!0,name:"guy",type:"address"},{indexed:!0,name:"foo",type:"bytes32"},{indexed:!0,name:"bar",type:"bytes32"},{indexed:!1,name:"wad",type:"uint256"},{indexed:!1,name:"fax",type:"bytes"}],name:"LogNote",type:"event"}],dsSpellBook:[{constant:!1,inputs:[{name:"whom",type:"address"},{name:"mana",type:"uint256"},{name:"data",type:"bytes"}],name:"make",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"function"}],dsProxy:[{constant:!1,inputs:[{name:"owner_",type:"address"}],name:"setOwner",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"_target",type:"address"},{name:"_data",type:"bytes"}],name:"execute",outputs:[{name:"response",type:"bytes"}],payable:!0,stateMutability:"payable",type:"function"},{constant:!1,inputs:[{name:"_code",type:"bytes"},{name:"_data",type:"bytes"}],name:"execute",outputs:[{name:"target",type:"address"},{name:"response",type:"bytes"}],payable:!0,stateMutability:"payable",type:"function"},{constant:!0,inputs:[],name:"cache",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"authority_",type:"address"}],name:"setAuthority",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"owner",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_cacheAddr",type:"address"}],name:"setCache",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"authority",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{name:"_cacheAddr",type:"address"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!0,inputs:[{indexed:!0,name:"sig",type:"bytes4"},{indexed:!0,name:"guy",type:"address"},{indexed:!0,name:"foo",type:"bytes32"},{indexed:!0,name:"bar",type:"bytes32"},{indexed:!1,name:"wad",type:"uint256"},{indexed:!1,name:"fax",type:"bytes"}],name:"LogNote",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"authority",type:"address"}],name:"LogSetAuthority",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"}],name:"LogSetOwner",type:"event"}]},exchangesV1:{makerOtc:[{inputs:[{internalType:"uint64",name:"close_time",type:"uint64"}],payable:!1,stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"pair",type:"bytes32"},{indexed:!0,internalType:"address",name:"maker",type:"address"},{indexed:!1,internalType:"contract ERC20",name:"pay_gem",type:"address"},{indexed:!1,internalType:"contract ERC20",name:"buy_gem",type:"address"},{indexed:!1,internalType:"uint128",name:"pay_amt",type:"uint128"},{indexed:!1,internalType:"uint128",name:"buy_amt",type:"uint128"},{indexed:!1,internalType:"uint64",name:"timestamp",type:"uint64"}],name:"LogBump",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"isEnabled",type:"bool"}],name:"LogBuyEnabled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"keeper",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"}],name:"LogDelete",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"keeper",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"}],name:"LogInsert",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"}],name:"LogItemUpdate",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"id",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"pair",type:"bytes32"},{indexed:!0,internalType:"address",name:"maker",type:"address"},{indexed:!1,internalType:"contract ERC20",name:"pay_gem",type:"add