@dcl/linker-dapp 0.1.0-1270068311.commit-11df5ec → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/asset-manifest.json +12 -12
- package/index.html +1 -1
- package/package.json +2 -2
- package/static/js/2.1a7724d7.chunk.js +3 -0
- package/static/js/{2.2ea27645.chunk.js.LICENSE.txt → 2.1a7724d7.chunk.js.LICENSE.txt} +0 -0
- package/static/js/{2.2ea27645.chunk.js.map → 2.1a7724d7.chunk.js.map} +1 -1
- package/static/js/3.44685914.chunk.js +2 -0
- package/static/js/{3.374d1052.chunk.js.map → 3.44685914.chunk.js.map} +1 -1
- package/static/js/main.0e435c2c.chunk.js +2 -0
- package/static/js/main.0e435c2c.chunk.js.map +1 -0
- package/static/js/{runtime-main.18b66c39.js → runtime-main.378dad2a.js} +2 -2
- package/static/js/{runtime-main.18b66c39.js.map → runtime-main.378dad2a.js.map} +1 -1
- package/static/js/2.2ea27645.chunk.js +0 -3
- package/static/js/3.374d1052.chunk.js +0 -2
- package/static/js/main.5154ebde.chunk.js +0 -2
- package/static/js/main.5154ebde.chunk.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(this["webpackJsonp@dcl/linker-app"]=this["webpackJsonp@dcl/linker-app"]||[]).push([[3],{1277:function(e,t){e.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=3)}([function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,r){"use strict";function n(){return Math.floor(9e4*Math.random())+1e4}Object.defineProperty(t,"__esModule",{value:!0}),t.sendAsyncWrapper=function(e,t){var r=this;return new Promise((function(o,a){r.sendAsync({jsonrpc:"2.0",id:n(),method:e,params:t||[]},(function(e,t){e?a(e):o(t.result)}))}))},t.sendFortmaticAsyncWrapper=function(e){var t=this;return new Promise((function(r,n){t.getProvider().sendFortmaticAsync(e,(function(e,t){e?n(e):r(t?t.result:{})}))}))},t.randomId=n,t.findExistingResponse=function(e,t){for(var r=0;r<e.length;r++)if(e[r].id===t)return e[r];return null}},function(e,t,r){e.exports=r(4)},function(e,t,r){"use strict";var n=r(0),o=n(r(1)),a=n(r(5)),i=r(2),s="fm_configure",c={};e.exports=function e(t,r,n){var l=this;if((0,o.default)(this,e),this.fortmaticClient="https://x2.fortmatic.com",!t)throw new Error("Please provide a Fortmatic API key that you acquired from the developer dashboard.");this.apiKey=t,this.options=n,this.ethNetwork=r,this.queryParams=btoa(JSON.stringify({API_KEY:t,ETH_NETWORK:r})),this.transactions={send:function(e,t){var r=new u("fm_composeSend",{to:e.to,value:e.amount});l.getProvider().sendFortmaticAsync(r,t)}},this.getProvider=function(){return c["fortmatic-".concat(l.queryParams)]||(c["fortmatic-".concat(l.queryParams)]=new a.default(l.fortmaticClient,{API_KEY:t,ETH_NETWORK:r})),c["fortmatic-".concat(l.queryParams)]},this.user={login:function(){return l.getProvider().enable()},logout:function(){l.getProvider().account=null,l.getProvider().network=null;var e=new u("fm_logout");return i.sendFortmaticAsyncWrapper.call(l,e)},getUser:function(){var e=new u("fm_get_user");return i.sendFortmaticAsyncWrapper.call(l,e)},getBalances:function(){var e=new u("fm_get_balances");return i.sendFortmaticAsyncWrapper.call(l,e)},getTransactions:function(){var e=new u("fm_get_transactions");return i.sendFortmaticAsyncWrapper.call(l,e)},isLoggedIn:function(){var e=new u("fm_is_logged_in");return i.sendFortmaticAsyncWrapper.call(l,e)},settings:function(){var e=new u("fm_accountSettings");return i.sendFortmaticAsyncWrapper.call(l,e)},deposit:function(e){var t=new u("fm_deposit",e);return i.sendFortmaticAsyncWrapper.call(l,t)}},this.configure=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new u(s);return t.params=[e],i.sendFortmaticAsyncWrapper.call(l,t)}};var u=function e(t,r){(0,o.default)(this,e),this.id=(0,i.randomId)(),this.method=t,this.params=r?[r]:[{}]}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(r(6)),a=n(r(9)),i=n(r(1)),s=n(r(10)),c=r(11),u=n(r(12)),l=r(2),f=function(){function e(t,r){if((0,i.default)(this,e),this.fortmaticClient=t,this.requests={},this.queue=[],this.account=null,this.network=null,this.isFortmatic=!0,this.overlayReady=!1,this.isLoggedIn=!1,this.postMessages={FORTMATIC_HANDLE_BATCH_REQUEST:"FORTMATIC_HANDLE_BATCH_REQUEST",FORTMATIC_HANDLE_REQUEST:"FORTMATIC_HANDLE_REQUEST",FORTMATIC_HANDLE_FORTMATIC_REQUEST:"FORTMATIC_HANDLE_FORTMATIC_REQUEST",FORTMATIC_HANDLE_RESPONSE:"FORTMATIC_HANDLE_RESPONSE",FORTMATIC_OVERLAY_READY:"FORTMATIC_OVERLAY_READY",FORTMATIC_SHOW_OVERLAY:"FORTMATIC_SHOW_OVERLAY",FORTMATIC_HIDE_OVERLAY:"FORTMATIC_HIDE_OVERLAY",FORTMATIC_USER_DENIED:"FORTMATIC_USER_DENIED",FORTMATIC_USER_LOGOUT:"FORTMATIC_USER_LOGOUT",FORTMATIC_UNAUTHORIZED_API_KEY:"FORTMATIC_UNAUTHORIZED_API_KEY"},!r.API_KEY)throw new Error("Please provide a Fortmatic API key that you acquired from the developer dashboard.");this.options={API_KEY:r.API_KEY,ETH_NETWORK:r.ETH_NETWORK,DOMAIN_ORIGIN:window.location?window.location.origin:"",version:c.version},this.queryParams=btoa(JSON.stringify(this.options)),this.constructPostMessage(),this.overlay=this.createOverlay(),this.listenMessage()}return(0,s.default)(e,[{key:"constructPostMessage",value:function(){var e=this;Object.keys(this.postMessages).map((function(t){e.postMessages[t]+="-".concat(e.queryParams)}))}},{key:"createOverlay",value:function(){var e=this;return new Promise((function(t,r){var n=function(){if(function(){var t=!0,r=!1,n=void 0;try{for(var o,a=document.getElementsByClassName("fortmatic-iframe")[Symbol.iterator]();!(t=(o=a.next()).done);t=!0)if(o.value.src.includes(e.queryParams))return!1}catch(e){r=!0,n=e}finally{try{t||null==a.return||a.return()}finally{if(r)throw n}}return!0}()){var r=document.createElement("style");r.innerHTML=u.default.css,r.type="text/css",document.head.appendChild(r);var n=document.createElement("iframe");n.className="fortmatic-iframe",n.src="".concat(e.fortmaticClient,"/send?params=").concat(e.queryParams),document.body.appendChild(n);var o=document.createElement("img");o.src="https://static.fortmatic.com/assets/trans.gif",document.body.appendChild(o),t({iframe:n})}else console.error("Fortmatic: Duplicate instances found.")};["loaded","interactive","complete"].indexOf(document.readyState)>-1?n():window.addEventListener("load",n.bind(e),!1)}))}},{key:"showOverlay",value:function(){var e=(0,a.default)(o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.overlay;case 2:e.sent.iframe.style.display="block";case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"hideOverlay",value:function(){var e=(0,a.default)(o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.overlay;case 2:e.sent.iframe.style.display="none";case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"sendAsync",value:function(e,t){e.length>0?this.enqueue({payload:{id:(0,l.randomId)(),batch:e.map((function(e){return e.id=(0,l.randomId)(),e})),method:"eth_batchRequest"},cb:t}):this.enqueue({payload:e,cb:t})}},{key:"sendFortmaticAsync",value:function(e,t){this.enqueue({payload:e,cb:t,isNative:!0})}},{key:"send",value:function(e,t){if("string"==typeof e)return l.sendAsyncWrapper.call(this,e,t);if(!t){console.warn("Non-async web3 methods will be deprecated in web3 > 1.0, and are not supported by the Fortmatic provider. An async method to be used instead."),this.sendAsync(e,(function(){}));var r={};switch(e.method){case"eth_accounts":r=this.account?[this.account]:[];break;case"eth_coinbase":r=this.account;break;case"net_version":r=this.network||(this.options.API_KEY.startsWith("pk_live")?1:4);break;case"eth_uninstallFilter":r=!0;break;default:r={}}return{id:e.id,jsonrpc:e.jsonrpc,result:r}}this.sendAsync(e,t)}},{key:"enqueue",value:function(e){this.queue.push(e),this.overlayReady&&this.dequeue()}},{key:"dequeue",value:function(){var e=(0,a.default)(o.default.mark((function e(){var t,r,n,a=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==this.queue.length){e.next=2;break}return e.abrupt("return");case 2:if(!(t=this.queue.shift())){e.next=11;break}return r=t.payload,n=t.cb,r.id=(0,l.randomId)(),e.next=9,this.postMessage(t.isNative?this.postMessages.FORTMATIC_HANDLE_FORTMATIC_REQUEST:this.postMessages.FORTMATIC_HANDLE_REQUEST,t.payload);case 9:r.batch&&r.batch.length>0?(r.batch.forEach((function(e){a.requests[e.id]={parentId:r.id,payload:e,cb:function(e,t){var n=a.requests[r.id].batchResponse;if(e&&e.response&&!(0,l.findExistingResponse)(n,e.response.id))throw n.push({jsonrpc:"2.0",id:e.response.id,error:{code:e.response.code,message:e.response.message}}),a.requests[r.id].cb(null,n),e.response;if(t&&t.result&&!(0,l.findExistingResponse)(n,t.id))return n.push(t);throw new Error("Fortmatic: unexpected callback behavior")}}})),this.requests[r.id]={payload:r,cb:n,batchResponse:[]}):this.requests[r.id]={payload:r,cb:n},this.dequeue();case 11:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"postMessage",value:function(){var e=(0,a.default)(o.default.mark((function e(t,r){var n;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.overlay;case 2:if(!(n=e.sent).iframe.contentWindow){e.next=7;break}n.iframe.contentWindow.postMessage({msgType:t,payload:r},"*"),e.next=8;break;case 7:throw new Error("Fortmatic: Modal is not ready.");case 8:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}()},{key:"enable",value:function(){return l.sendAsyncWrapper.call(this,"eth_accounts")}},{key:"listenMessage",value:function(){var e=this;window.addEventListener("message",(function(t){if(t.origin===e.fortmaticClient){var r=t.data.response?t.data.response.id:null;switch(t.data.msgType){case e.postMessages.FORTMATIC_OVERLAY_READY:e.overlayReady=!0,e.dequeue();break;case e.postMessages.FORTMATIC_HANDLE_RESPONSE:try{e.requests[r].cb(null,t.data.response);var n=e.requests[r].parentId;n&&e.requests[n].payload.batch.length===e.requests[n].batchResponse.length&&e.requests[n].cb(null,e.requests[n].batchResponse),"eth_accounts"===e.requests[r].payload.method?e.account=t.data.response.result[0]:"eth_coinbase"===e.requests[r].payload.method?e.account=t.data.response.result:"net_version"===e.requests[r].payload.method&&(e.network=t.data.response.result)}catch(e){}e.isLoggedIn=!0,e.dequeue();break;case e.postMessages.FORTMATIC_HIDE_OVERLAY:e.hideOverlay();break;case e.postMessages.FORTMATIC_SHOW_OVERLAY:e.showOverlay();break;case e.postMessages.FORTMATIC_USER_LOGOUT:e.account=null,e.network=null,e.isLoggedIn=!1;break;case e.postMessages.FORTMATIC_UNAUTHORIZED_API_KEY:throw e.overlayReady=!1,new Error("Given API key is not authorized to access the resource.");case e.postMessages.FORTMATIC_USER_DENIED:if(r){var o=t.data.response&&t.data.response.message?t.data.response.message:"Fortmatic: Modal was closed without executing action!",a=t.data.response&&t.data.response.code?t.data.response.code:1;e.requests[r].cb({message:o,code:a,response:t.data.response})}else e.queue.forEach((function(e){return e.cb({message:"Fortmatic: Modal was closed without executing action!",code:1})}));e.dequeue()}}}))}}]),e}();t.default=f},function(e,t,r){e.exports=r(7)},function(e,t,r){var n=function(){return this||"object"==typeof self&&self}()||Function("return this")(),o=n.regeneratorRuntime&&Object.getOwnPropertyNames(n).indexOf("regeneratorRuntime")>=0,a=o&&n.regeneratorRuntime;if(n.regeneratorRuntime=void 0,e.exports=r(8),o)n.regeneratorRuntime=a;else try{delete n.regeneratorRuntime}catch(e){n.regeneratorRuntime=void 0}},function(e,t){!function(t){"use strict";var r,n=Object.prototype,o=n.hasOwnProperty,a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag",u="object"==typeof e,l=t.regeneratorRuntime;if(l)u&&(e.exports=l);else{(l=t.regeneratorRuntime=u?e.exports:{}).wrap=_;var f="suspendedStart",d="suspendedYield",p="executing",h="completed",m={},y={};y[i]=function(){return this};var v=Object.getPrototypeOf,g=v&&v(v(F([])));g&&g!==n&&o.call(g,i)&&(y=g);var b=A.prototype=w.prototype=Object.create(y);T.prototype=b.constructor=A,A.constructor=T,A[c]=T.displayName="GeneratorFunction",l.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===T||"GeneratorFunction"===(t.displayName||t.name))},l.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,A):(e.__proto__=A,c in e||(e[c]="GeneratorFunction")),e.prototype=Object.create(b),e},l.awrap=function(e){return{__await:e}},O(R.prototype),R.prototype[s]=function(){return this},l.AsyncIterator=R,l.async=function(e,t,r,n){var o=new R(_(e,t,r,n));return l.isGeneratorFunction(t)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},O(b),b[c]="Generator",b[i]=function(){return this},b.toString=function(){return"[object Generator]"},l.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},l.values=F,k.prototype={constructor:k,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=r,this.done=!1,this.delegate=null,this.method="next",this.arg=r,this.tryEntries.forEach(M),!e)for(var t in this)"t"===t.charAt(0)&&o.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=r)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,o){return s.type="throw",s.arg=e,t.next=n,o&&(t.method="next",t.arg=r),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],s=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=o.call(i,"catchLoc"),u=o.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var a=n;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,m):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),M(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;M(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:F(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=r),m}}}function _(e,t,r,n){var o=t&&t.prototype instanceof w?t:w,a=Object.create(o.prototype),i=new k(n||[]);return a._invoke=function(e,t,r){var n=f;return function(o,a){if(n===p)throw new Error("Generator is already running");if(n===h){if("throw"===o)throw a;return L()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=I(i,r);if(s){if(s===m)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===f)throw n=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=p;var c=E(e,t,r);if("normal"===c.type){if(n=r.done?h:d,c.arg===m)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n=h,r.method="throw",r.arg=c.arg)}}}(e,r,i),a}function E(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}function w(){}function T(){}function A(){}function O(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function R(e){var t;this._invoke=function(r,n){function a(){return new Promise((function(t,a){!function t(r,n,a,i){var s=E(e[r],e,n);if("throw"!==s.type){var c=s.arg,u=c.value;return u&&"object"==typeof u&&o.call(u,"__await")?Promise.resolve(u.__await).then((function(e){t("next",e,a,i)}),(function(e){t("throw",e,a,i)})):Promise.resolve(u).then((function(e){c.value=e,a(c)}),(function(e){return t("throw",e,a,i)}))}i(s.arg)}(r,n,t,a)}))}return t=t?t.then(a,a):a()}}function I(e,t){var n=e.iterator[t.method];if(n===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=r,I(e,t),"throw"===t.method))return m;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var o=E(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,m;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=r),t.delegate=null,m):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function x(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function M(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function F(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n<e.length;)if(o.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=r,t.done=!0,t};return a.next=a}}return{next:L}}function L(){return{value:r,done:!0}}}(function(){return this||"object"==typeof self&&self}()||Function("return this")())},function(e,t){function r(e,t,r,n,o,a,i){try{var s=e[a](i),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,o)}e.exports=function(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var i=e.apply(t,n);function s(e){r(i,o,a,s,c,"next",e)}function c(e){r(i,o,a,s,c,"throw",e)}s(void 0)}))}}},function(e,t){function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}},function(e){e.exports={name:"fortmatic",version:"1.1.3",description:"Fortmatic Javascript SDK",main:"lib/fortmatic.js",scripts:{build:"WEBPACK_ENV=production webpack","build:dev":"WEBPACK_ENV=development BABEL_ENV=development webpack --progress --colors --watch",test:"nyc --reporter=lcov --reporter=text-summary ava"},author:"Fortmatic <team@fortmatic.com> (https://fortmatic.com/)",license:"MIT",repository:{type:"git",url:"https://github.com/fortmatic/fortmatic-js"},keywords:["Auth","Login","Web3","Crypto","Ethereum","MetaMask","Wallet","Blockchain","Dapp"],homepage:"https://www.fortmatic.com",ava:{require:["@babel/register"],files:["test/**/*.spec.js"],babel:{testOptions:{presets:["@babel/env"],plugins:["@babel/plugin-proposal-function-bind","@babel/plugin-transform-runtime"]}},verbose:!0},nyc:{all:!1,"check-coverage":!0,"per-file":!0,lines:80,statements:80,functions:80,branches:80,include:["src/**/*.js"],exclude:["*/style.js"],require:[],reporter:["html","lcov"]},dependencies:{"@babel/runtime":"7.3.4"},devDependencies:{"@babel/core":"7.3.4","@babel/plugin-proposal-function-bind":"7.2.0","@babel/plugin-transform-modules-commonjs":"7.2.0","@babel/plugin-transform-runtime":"7.3.4","@babel/preset-env":"7.3.4","@babel/register":"7.0.0",ava:"2.2.0","babel-eslint":"10.0.1","babel-loader":"8.0.5",eslint:"5.9.0",lodash:"4.17.11",nyc:"13.1.0",sinon:"7.1.1",webpack:"4.26.1","webpack-cli":"3.1.2"}}},function(e,t,r){"use strict";t.css="\n .fortmatic-iframe {\n display: none;\n position: fixed;\n top: 0;\n right: 0;\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 0;\n z-index: 2147483647;\n }\n"}])}}]);
|
|
2
|
-
//# sourceMappingURL=3.374d1052.chunk.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(this["webpackJsonp@dcl/linker-app"]=this["webpackJsonp@dcl/linker-app"]||[]).push([[0],{1273:function(e,t,n){"use strict";n.r(t);var a,s=n(2),r=n.n(s),i=n(14),u=n(107),p=n.n(u),o=n(555),d=n.n(o),y=n(191),c=n(121),l=n(582),m=n(569),f=n(570),b=n(571),v=n(572),x=n(573),g=n(60),O=n(78),w=n(72),j="[Request] Fetch LAND",h="[Success] Fetch LAND",M="[Failure] Fetch LAND",_=function(e){return Object(w.action)(h,{land:e})},I={data:{},loading:[],error:null},k="[Request] Sign Content",A="[Success] Sign Content",E="[Failure] Sign Content",C=function(e){return Object(w.action)(E,{error:e})},L={data:"",loading:[],error:null},D="[Request] Fetch LAND Authorizations",T="[Success] Fetch LAND Authorizations",R="[Failure] Fetch LAND Authorizations",U=function(e){return Object(w.action)(T,{authorizations:e})},N={data:[],loading:[],error:null},S=Object(c.b)({wallet:v.walletReducer,transaction:x.transactionReducer,land:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case j:return Object(g.a)(Object(g.a)({},e),{},{loading:Object(O.loadingReducer)(e.loading,t)});case h:return{loading:Object(O.loadingReducer)(e.loading,t),data:t.payload.land,error:null};case M:return Object(g.a)(Object(g.a)({},e),{},{loading:Object(O.loadingReducer)(e.loading,t),error:t.payload.error});default:return e}},signature:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:L,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case k:return Object(g.a)(Object(g.a)({},e),{},{loading:Object(O.loadingReducer)(e.loading,t)});case A:return{loading:Object(O.loadingReducer)(e.loading,t),data:t.payload.signature,error:null};case E:return Object(g.a)(Object(g.a)({},e),{},{loading:Object(O.loadingReducer)(e.loading,t),error:t.payload.error});default:return e}},authorization:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:N,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case D:return Object(g.a)(Object(g.a)({},e),{},{loading:Object(O.loadingReducer)(e.loading,t)});case T:return{loading:Object(O.loadingReducer)(e.loading,t),data:t.payload.authorizations,error:null};case R:return Object(g.a)(Object(g.a)({},e),{},{loading:Object(O.loadingReducer)(e.loading,t),error:t.payload.error});default:return e}}}),z=n(23),F=n(246),P=n(66),W=n(574),H=n(65);function B(e){return e?("string"===typeof e?[e]:e).map((function(e){var t=e.split(","),n=Object(F.a)(t,2),a=n[0],s=n[1];return{x:parseInt(a,10),y:parseInt(s,10)}})):[{x:0,y:0}]}function J(){!function(){var e,t,n=new URLSearchParams(window.location.search);a={baseParcel:B(n.get("baseParcel"))[0],parcels:B(n.getAll("parcels")),rootCID:n.get("rootCID")||"QmPjpPyibbryTCi75zzcdeuPUBcujtEqj43shwKBAdMojy",debug:"true"===n.get("debug"),estateRegistry:n.get("estateRegistry"),landRegistry:n.get("landRegistry"),chainId:"0x1"===(null===(e=window)||void 0===e||null===(t=e.ethereum)||void 0===t?void 0:t.chainId)?H.ChainId.ETHEREUM_MAINNET:H.ChainId.ETHEREUM_ROPSTEN}}()}function q(){var e;return!!(null===(e=a)||void 0===e?void 0:e.debug)}function K(e){return a[e]}var G=n(137),Y=n(108),Q=n(336),X=n(575),V=n(576),Z={};function $(){return Object(Y.getConnectedProviderChainId)()===H.ChainId.ETHEREUM_ROPSTEN}function ee(){return te.apply(this,arguments)}function te(){return(te=Object(i.a)(r.a.mark((function e(){var t,n,a;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Z.land){e.next=5;break}return e.next=3,Object(Y.getConnectedProvider)();case 3:(t=e.sent)&&(n=K("landRegistry"),a=n||($()?"0x7a73483784ab79257bb11b96fd62a2c3ae4fb75b":"0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d"),Z.land=new G.b(a,V.a,new Q.a(t).getSigner()));case 5:return e.abrupt("return",Z.land);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ne(){return ae.apply(this,arguments)}function ae(){return(ae=Object(i.a)(r.a.mark((function e(){var t,n,a;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Z.estate){e.next=5;break}return e.next=3,Object(Y.getConnectedProvider)();case 3:(t=e.sent)&&(n=K("landRegistry"),a=n||($()?"0x124bf28a423b2ca80b3846c3aa0eb944fe7ebb95":"0x959e104e1a4db6317fa58f8295f586e1a978c297"),Z.estate=new G.b(a,X.a,new Q.a(t).getSigner()));case 5:return e.abrupt("return",Z.estate);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function se(e){var t=e.x,n=e.y;return"".concat(t,",").concat(n)}var re=r.a.mark(pe),ie=r.a.mark(oe),ue=r.a.mark(de);function pe(){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(z.takeEvery)(j,oe);case 2:return e.next=4,Object(z.takeEvery)(P.CONNECT_WALLET_SUCCESS,de);case 4:case"end":return e.stop()}}),re)}function oe(e){var t,n,a,s,i,u;return r.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,Object(z.call)((function(){return ee()}));case 2:return t=r.sent,r.prev=3,n=e.payload,a=n.x,s=n.y,r.next=7,Object(z.call)((function(){return t.landData(a,s)}));case 7:if(!(i=r.sent)){r.next=14;break}return r.next=11,Object(z.call)((function(){return ye(i)}));case 11:r.t0=r.sent,r.next=15;break;case 14:r.t0={version:0,name:"",description:""};case 15:return u=r.t0,r.next=18,Object(z.put)(_(u));case 18:r.next=24;break;case 20:return r.prev=20,r.t1=r.catch(3),r.next=24,Object(z.put)((p=r.t1.message,Object(w.action)(M,{error:p})));case 24:case"end":return r.stop()}var p}),ie,null,[[3,20]])}function de(){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(z.put)((t=K("baseParcel"),Object(w.action)(j,t)));case 2:case"end":return e.stop()}var t}),ue)}function ye(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.charAt(0);if("0"===t){var n=Object(F.a)(W.parse(e,{cellDelimiter:","})[0],4),a=n[0],s=n[1],r=n[2],i=n[3];return{version:a,name:s||"",description:r||"",ipns:i||""}}throw new Error('Unknown version when trying to decode land data: "'.concat(e,'"'))}var ce=n(577),le=r.a.mark(be),me=r.a.mark(ve),fe=r.a.mark(xe);function be(){var e;return r.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=Object(ce.createWalletSaga)({CHAIN_ID:K("chainId")}),t.next=3,Object(z.all)([e(),ve()]);case 3:case"end":return t.stop()}}),le)}function ve(){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(z.takeEvery)(P.CHANGE_ACCOUNT,xe);case 2:return e.next=4,Object(z.takeEvery)(P.CHANGE_NETWORK,xe);case 4:return e.next=6,Object(z.takeEvery)(P.SWITCH_NETWORK_REQUEST,xe);case 6:return e.next=8,Object(z.takeEvery)(P.FETCH_WALLET_FAILURE,xe);case 8:case"end":return e.stop()}}),me)}function xe(){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(z.put)(Object(P.disconnectWallet)());case 2:case"end":return e.stop()}}),fe)}var ge=n(84),Oe=n(74),we=n(3);function je(e,t){return he.apply(this,arguments)}function he(){return(he=Object(i.a)(r.a.mark((function e(t,n){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("/api/close?ok=".concat(t,"&reason=").concat(JSON.stringify(n)));case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Me=r.a.mark(ke),_e=r.a.mark(Ae),Ie=r.a.mark(Ee);function ke(){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(z.takeLatest)(k,Ae);case 2:return e.next=4,Object(z.takeEvery)(A,Ee);case 4:case"end":return e.stop()}}),Me)}function Ae(e){var t,n,a,s,i,u;return r.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,t=Object(Oe.f)(e.payload),r.next=4,Object(z.call)((function(){return Object(Y.getConnectedProvider)()}));case 4:return n=r.sent,a=new Q.a(n),s=a.getSigner(),r.next=9,Object(z.call)((function(){return s.getAddress()}));case 9:return i=r.sent,r.next=12,Object(z.call)((function(){return n.send("personal_sign",[Object(we.i)(t),i.toLowerCase()])}));case 12:return u=r.sent,r.next=15,Object(z.put)((p=u,Object(w.action)(A,{signature:p})));case 15:r.next=21;break;case 17:return r.prev=17,r.t0=r.catch(0),r.next=21,Object(z.put)(C(r.t0.message));case 21:case"end":return r.stop()}var p}),_e,null,[[0,17]])}function Ee(e){var t,n,a;return r.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return s.next=2,Object(z.select)(ge.getAddress);case 2:return t=s.sent,s.next=5,Object(z.select)(ge.getNetwork);case 5:return n=s.sent,a=e.payload.signature,s.prev=7,s.next=10,Object(z.call)((function(){je(!0,{signature:a,address:t,network:n})}));case 10:s.next=16;break;case 12:return s.prev=12,s.t0=s.catch(7),s.next=16,Object(z.put)(C(s.t0.message));case 16:case"end":return s.stop()}}),Ie,null,[[7,12]])}var Ce=n(109),Le=n(339),De=r.a.mark(Ue),Te=r.a.mark(Ne),Re=r.a.mark(Se);function Ue(){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(z.takeEvery)(P.CONNECT_WALLET_SUCCESS,Se);case 2:return e.next=4,Object(z.takeEvery)(D,Ne);case 4:case"end":return e.stop()}}),De)}function Ne(){var e,t;return r.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Object(z.call)((function(){return ee()}));case 2:return e=n.sent,n.next=5,Object(z.call)((function(){return ne()}));case 5:return t=n.sent,n.prev=6,n.delegateYield(r.a.mark((function n(){var a,s,i,u,p,o,d,y,c,l,m,f,b,v,x;return r.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Object(z.select)(ge.getAddress);case 2:a=n.sent,s=new Map,i=[],u=Object(Le.a)(K("parcels"));try{for(o=function(){var t=p.value,n=t.x,r=t.y,u=new Promise((function(i,u){e.encodeTokenId(n,r).then((function(p){e.isUpdateAuthorized(a,p).then((function(e){s.set(se(t),p),i({x:n,y:r,isUpdateAuthorized:e})})).catch(u)})).catch(u)}));i.push(u)},u.s();!(p=u.n()).done;)o()}catch(r){u.e(r)}finally{u.f()}return n.next=9,Object(z.call)((function(){return Promise.all(i)}));case 9:d=n.sent,y=d.filter((function(e){return!e.isUpdateAuthorized})),c=d.filter((function(e){return e.isUpdateAuthorized})),l=[],m=Object(Le.a)(y);try{for(b=function(){var e=f.value,n=s.get(se(e)),r=new Promise((function(s,r){t.getLandEstateId(n).then((function(n){return n&&n>0?t.isUpdateAuthorized(a,n).then((function(t){s(Object(g.a)(Object(g.a)({},e),{},{isUpdateAuthorized:t}))})):s(e)})).catch(r)}));l.push(r)},m.s();!(f=m.n()).done;)b()}catch(r){m.e(r)}finally{m.f()}return n.next=17,Object(z.call)((function(){return Promise.all(l)}));case 17:return v=n.sent,x=[].concat(Object(Ce.a)(c),Object(Ce.a)(v)),n.next=21,Object(z.put)(U(x));case 21:case"end":return n.stop()}}),n)}))(),"t0",8);case 8:n.next=14;break;case 10:return n.prev=10,n.t1=n.catch(6),n.next=14,Object(z.put)((a=n.t1.message,Object(w.action)(R,{error:a})));case 14:case"end":return n.stop()}var a}),Te,null,[[6,10]])}function Se(){var e;return r.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Object(z.call)((function(){return ge.getAddress}));case 2:return e=t.sent,t.next=5,Object(z.put)((n=e,Object(w.action)(D,{owner:n})));case 5:case"end":return t.stop()}var n}),Re)}function ze(){var e=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||c.c,t=Object(b.createStorageMiddleware)({storageKey:"decentraland-linker"}),n=t.storageMiddleware,a=t.loadStorageMiddleware,s=Object(l.a)(),i=Object(f.createTransactionMiddleware)(),u=Object(m.createLogger)({collapsed:function(){return!0},predicate:function(e,t){return!1}}),p=e(Object(c.a)(s,u,n,i)),o=Object(c.d)(S,p);return s.run(r.a.mark((function e(){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(z.all)([be(),pe(),ke(),Ue()]);case 2:case"end":return e.stop()}}),e)}))),a(o),o}var Fe=n(187),Pe=n(86),We=function(e){return e.land},He=Object(Pe.a)(We,(function(e){return e.data})),Be=Object(Pe.a)(We,(function(e){return e.loading.length>0})),Je=Object(Pe.a)(We,(function(e){return e.error})),qe=function(e){return e.signature},Ke=Object(Pe.a)(qe,(function(e){return e.data})),Ge=(Object(Pe.a)(qe,(function(e){return e.loading.length>0})),Object(Pe.a)(qe,(function(e){return e.error})),function(e){return e.authorization}),Ye=Object(Pe.a)(Ge,(function(e){return e.data})),Qe=Object(Pe.a)(Ge,(function(e){return e.loading.length>0})),Xe=(Object(Pe.a)(Ge,(function(e){return e.error})),Object(Pe.a)(Ye,(function(e){if(e)return e.every((function(e){return e.isUpdateAuthorized}))}))),Ve=n(8),Ze=n(9),$e=n(12),et=n(11),tt=n(0),nt=n.n(tt),at=n(141),st=n(33),rt=nt.a.memo((function(e){var t=e.children;return Object(st.jsxs)("p",{style:{color:"var(--primary)"},children:[" Error: ",t]})})),it=function(e){Object($e.a)(n,e);var t=Object(et.a)(n);function n(){var e;Object(Ve.a)(this,n);for(var a=arguments.length,s=new Array(a),r=0;r<a;r++)s[r]=arguments[r];return(e=t.call.apply(t,[this].concat(s))).handleSignature=function(t){t.preventDefault(),(0,e.props.onSignContent)(K("rootCID"))},e}return Object(Ze.a)(n,[{key:"getLANDname",value:function(){var e=this.props.base;return e.name?'"'.concat(e.name,'"'):"LAND without name"}},{key:"getFormattedUnauthorized",value:function(){return this.props.authorizations.filter((function(e){return!e.isUpdateAuthorized})).map((function(e){return'"'.concat(se(e),'"')})).join(", ")}},{key:"renderWalletData",value:function(){var e=this.props,t=e.isConnected,n=e.wallet,a=e.authorizations,s=e.isUpdateAuthorized,r=e.isConnecting,i=e.onConnectWallet;return t&&n.address?Object(st.jsxs)(nt.a.Fragment,{children:[Object(st.jsxs)("p",{children:["Using address: \xa0",Object(st.jsx)(at.Blockie,{scale:3,seed:n.address,children:Object(st.jsx)(at.Address,{tooltip:!0,strong:!0,value:n.address})})]}),a&&!s?Object(st.jsx)(rt,{children:"You don't have permissions to update The following LANDs that are part of the scene: ".concat(this.getFormattedUnauthorized())}):null]}):Object(st.jsxs)(nt.a.Fragment,{children:[r?null:Object(st.jsx)("p",{children:"Could not find any wallet"}),Object(st.jsx)("p",{children:Object(st.jsxs)(at.Button,{primary:!0,onClick:i,loading:r,disabled:r,children:["Reconnect"," "]})})]})}},{key:"renderLANDinfo",value:function(){var e=this.props,t=e.error,n=e.isLandLoading,a=e.isConnected,s=K("baseParcel"),r=s.x,i=s.y;if(!t&&a&&!n)return Object(st.jsxs)("p",{children:["Updating ",Object(st.jsx)("b",{children:this.getLANDname()})," at coordinates"," ",Object(st.jsxs)("b",{children:[r,", ",i]})]})}},{key:"render",value:function(){var e=this.props,t=e.error,n=e.isConnected,a=e.isUpdateAuthorized,s=e.isAuthorizationLoading,r=e.signed,i=e.wallet,u=K("baseParcel"),p=u.x,o=u.y,d=K("rootCID"),y=(null===i||void 0===i?void 0:i.chainId)===H.ChainId.ETHEREUM_ROPSTEN;return Object(st.jsxs)("div",{className:"LinkScenePage",children:[Object(st.jsx)(at.Navbar,{}),Object(st.jsx)(at.Header,{children:"Update LAND data"}),this.renderWalletData(),Object(st.jsx)("img",{className:"map",src:"https://api.decentraland.".concat(y?"zone":"org","/v1/parcels/").concat(p,"/").concat(o,"/map.png"),alt:"Base parcel ".concat(p,",").concat(o)}),this.renderLANDinfo(),Object(st.jsxs)("p",{children:["Project CID: ",Object(st.jsx)("b",{children:d})]}),Object(st.jsx)("form",{children:Object(st.jsx)("div",{children:Object(st.jsx)(at.Button,{primary:!0,onClick:this.handleSignature,disabled:!n||!!t||s||!a,children:"Sign and Deploy"})})}),n&&r&&Object(st.jsx)("p",{children:"Content was succesfully signed and it's being uploaded. You can close this page and check the CLI for more info."}),t?q()?Object(st.jsx)(rt,{children:t}):Object(st.jsx)(rt,{children:"There was an unexpected error."}):null,Object(st.jsx)("style",{children:"\n .LinkScenePage {\n text-align: center;\n }\n .map {\n padding: 15px;\n }\n .options div input {\n color: white;\n }\n "}),y?Object(st.jsx)("style",{children:"\n body:before {\n content: 'Using Ropsten test network';\n background: var(--primary);\n color: white;\n text-align: center;\n text-transform: uppercase;\n height: 24px;\n width: 100%;\n position: fixed;\n padding-top: 2px;\n }\n .LinkScenePage {\n padding-top: 24px;\n }\n "}):null]})}}]),n}(nt.a.PureComponent),ut=Object(y.connect)((function(e){return{base:He(e),wallet:Object(ge.getData)(e),isLandLoading:Be(e),isConnected:Object(ge.isConnected)(e),isConnecting:Object(ge.isConnecting)(e),error:Je(e),signed:!!Ke(e),isUpdateAuthorized:Xe(e),authorizations:Ye(e),isAuthorizationLoading:Qe(e)}}),(function(e){return{onConnectWallet:function(){return e(Object(P.enableWalletRequest)(Fe.ProviderType.INJECTED))},onSignContent:function(t){return e(function(e){return Object(w.action)(k,e)}(t))}}}))(it);n(1270),n(1271);Object(i.a)(r.a.mark((function e(){return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:J(),p.a.render(Object(st.jsx)(y.Provider,{store:ze(),children:Object(st.jsx)(d.a,{children:Object(st.jsx)(ut,{})})}),document.getElementById("root"));case 2:case"end":return e.stop()}}),e)})))()},575:function(e){e.exports=JSON.parse('{"a":[{"constant":true,"inputs":[{"name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"updateManager","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"landIdEstate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"estateLandIds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"exists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"registry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"updateOperator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"estateLandIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"contractName","type":"string"},{"name":"migrationId","type":"string"}],"name":"isMigrated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_estateId","type":"uint256"},{"indexed":false,"name":"_data","type":"string"}],"name":"CreateEstate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_estateId","type":"uint256"},{"indexed":true,"name":"_landId","type":"uint256"}],"name":"AddLand","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_estateId","type":"uint256"},{"indexed":true,"name":"_landId","type":"uint256"},{"indexed":true,"name":"_destinatary","type":"address"}],"name":"RemoveLand","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_assetId","type":"uint256"},{"indexed":true,"name":"_holder","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":false,"name":"_data","type":"string"}],"name":"Update","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_estateId","type":"uint256"},{"indexed":true,"name":"_operator","type":"address"}],"name":"UpdateOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":true,"name":"_caller","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"UpdateManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_registry","type":"address"}],"name":"SetLANDRegistry","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"contractName","type":"string"},{"indexed":false,"name":"migrationId","type":"string"}],"name":"Migrated","type":"event"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"metadata","type":"string"}],"name":"mint","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"landId","type":"uint256"},{"name":"destinatary","type":"address"}],"name":"transferLand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"landIds","type":"uint256[]"},{"name":"destinatary","type":"address"}],"name":"transferManyLands","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"landId","type":"uint256"}],"name":"getLandEstateId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_registry","type":"address"}],"name":"setLANDRegistry","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"ping","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"estateId","type":"uint256"}],"name":"getEstateSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"metadata","type":"string"}],"name":"updateMetadata","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"estateId","type":"uint256"}],"name":"getMetadata","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"operator","type":"address"},{"name":"estateId","type":"uint256"}],"name":"isUpdateAuthorized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"},{"name":"_approved","type":"bool"}],"name":"setUpdateManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"operator","type":"address"}],"name":"setUpdateOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"landId","type":"uint256"},{"name":"operator","type":"address"}],"name":"setLandUpdateOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_registry","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"},{"name":"_from","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"onERC721Received","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"estateId","type":"uint256"}],"name":"getFingerprint","outputs":[{"name":"result","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"estateId","type":"uint256"},{"name":"fingerprint","type":"bytes"}],"name":"verifyFingerprint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"estateIds","type":"uint256[]"}],"name":"safeTransferManyFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"estateIds","type":"uint256[]"},{"name":"data","type":"bytes"}],"name":"safeTransferManyFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"landId","type":"uint256"},{"name":"data","type":"string"}],"name":"updateLandData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"landIds","type":"uint256[]"},{"name":"data","type":"string"}],"name":"updateManyLandData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]}')},576:function(e){e.exports=JSON.parse('{"a":[{"constant":true,"inputs":[{"name":"_interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proxyOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"updateManager","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"operator","type":"address"},{"name":"assetId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"latestPing","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"operator","type":"address"},{"name":"assetId","type":"uint256"}],"name":"isAuthorized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"authorizedDeploy","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"assetId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"assetId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"tokensOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"GET_METADATA","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"description","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"updateOperator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"operator","type":"address"},{"name":"authorized","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"assetId","type":"uint256"},{"name":"userData","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"estateRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetHolder","type":"address"},{"name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetId","type":"uint256"}],"name":"getApprovedAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"registry","type":"address"}],"name":"EstateRegistrySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"assetId","type":"uint256"},{"indexed":true,"name":"holder","type":"address"},{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"data","type":"string"}],"name":"Update","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"assetId","type":"uint256"},{"indexed":true,"name":"operator","type":"address"}],"name":"UpdateOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":true,"name":"_caller","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"UpdateManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_caller","type":"address"},{"indexed":true,"name":"_deployer","type":"address"}],"name":"DeployAuthorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_caller","type":"address"},{"indexed":true,"name":"_deployer","type":"address"}],"name":"DeployForbidden","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"assetId","type":"uint256"},{"indexed":false,"name":"operator","type":"address"},{"indexed":false,"name":"userData","type":"bytes"},{"indexed":false,"name":"operatorData","type":"bytes"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"assetId","type":"uint256"},{"indexed":false,"name":"operator","type":"address"},{"indexed":false,"name":"userData","type":"bytes"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"assetId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"authorized","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"operator","type":"address"},{"indexed":true,"name":"assetId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_prevOwner","type":"address"},{"indexed":false,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","type":"event"},{"constant":false,"inputs":[{"name":"","type":"bytes"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"operator","type":"address"},{"name":"assetId","type":"uint256"}],"name":"isUpdateAuthorized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"authorizeDeploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"forbidDeploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"},{"name":"beneficiary","type":"address"}],"name":"assignNewParcel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"beneficiary","type":"address"}],"name":"assignMultipleParcels","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"ping","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"}],"name":"setLatestToNow","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"}],"name":"encodeTokenId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"value","type":"uint256"}],"name":"decodeTokenId","outputs":[{"name":"","type":"int256"},{"name":"","type":"int256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"}],"name":"exists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetId","type":"uint256"}],"name":"exists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"}],"name":"ownerOfLand","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"}],"name":"ownerOfLandMany","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"landOf","outputs":[{"name":"","type":"int256[]"},{"name":"","type":"int256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetId","type":"uint256"}],"name":"tokenMetadata","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"}],"name":"landData","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"assetId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"},{"name":"to","type":"address"}],"name":"transferLand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"to","type":"address"}],"name":"transferManyLand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"},{"name":"estateId","type":"uint256"}],"name":"transferLandToEstate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"estateId","type":"uint256"}],"name":"transferManyLandToEstate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"assetId","type":"uint256"},{"name":"operator","type":"address"}],"name":"setUpdateOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"},{"name":"_approved","type":"bool"}],"name":"setUpdateManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"registry","type":"address"}],"name":"setEstateRegistry","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"beneficiary","type":"address"}],"name":"createEstate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"beneficiary","type":"address"},{"name":"metadata","type":"string"}],"name":"createEstateWithMetadata","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"},{"name":"data","type":"string"}],"name":"updateLandData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"data","type":"string"}],"name":"updateManyLandData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]}')},674:function(e,t){},691:function(e,t){},729:function(e,t){},731:function(e,t){},752:function(e,t){},754:function(e,t){},766:function(e,t){},787:function(e,t){},789:function(e,t){}},[[1273,1,2]]]);
|
|
2
|
-
//# sourceMappingURL=main.5154ebde.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["config.ts","modules/land/actions.ts","modules/land/reducer.ts","modules/signature/actions.ts","modules/signature/reducer.ts","modules/authorization/actions.ts","modules/authorization/reducer.ts","reducer.ts","contracts.ts","modules/land/utils.ts","modules/land/sagas.ts","modules/wallet/sagas.ts","modules/server/utils.ts","modules/signature/sagas.ts","modules/authorization/sagas.ts","store.ts","sagas.ts","modules/land/selectors.ts","modules/signature/selectors.ts","modules/authorization/selectors.ts","components/Error.tsx","components/LinkerPage/LinkerPage.tsx","components/LinkerPage/index.ts","components/LinkerPage/LinkerPage.container.tsx","index.tsx"],"names":["config","FETCH_LAND_REQUEST","FETCH_LAND_SUCCESS","FETCH_LAND_FAILURE","fetchLandSuccess","land","action","INITIAL_STATE","data","loading","error","SIGN_CONTENT_REQUEST","SIGN_CONTENT_SUCCESS","SIGN_CONTENT_FAILURE","signContentFailure","FETCH_AUTHORIZATIONS_REQUEST","FETCH_AUTHORIZATIONS_SUCCESS","FETCH_AUTHORIZATIONS_FAILURE","fetchAuthorizationsSuccess","authorizations","rootReducer","combineReducers","wallet","transaction","state","type","loadingReducer","payload","signature","authorization","parseCoords","query","map","c","split","x","y","parseInt","init","searchParams","URLSearchParams","window","location","search","baseParcel","get","parcels","getAll","rootCID","debug","estateRegistry","landRegistry","chainId","ethereum","ChainId","ETHEREUM_MAINNET","ETHEREUM_ROPSTEN","setConfig","isDevelopment","getConfig","key","contractInstances","isRopsten","getConnectedProviderChainId","getLandContract","a","getConnectedProvider","provider","address","Contract","LANDRegistry","Web3Provider","getSigner","getEstateContract","estate","EstateRegistry","coordsToString","landSaga","handleFetchLandRequest","handleConnectWalletSuccess","takeEvery","CONNECT_WALLET_SUCCESS","call","decodeLandData","version","name","description","put","message","coords","charAt","CSV","cellDelimiter","ipns","Error","walletSaga","fullWalletSaga","handleWallet","baseWalletSaga","createWalletSaga","CHAIN_ID","all","CHANGE_ACCOUNT","CHANGE_NETWORK","SWITCH_NETWORK_REQUEST","FETCH_WALLET_FAILURE","disconnectWallet","closeServer","ok","fetch","JSON","stringify","signatureSaga","handleSignContentRequest","handleSignContentSuccess","takeLatest","dataToSign","toUtf8Bytes","web3provider","signer","getAddress","addr","send","hexlify","toLowerCase","signedMessage","select","getNetwork","network","authorizationSaga","handleFetchAuthorizationsRequest","assetIds","Map","pAuthorizations","parcel","pAuthorization","Promise","resolve","reject","then","assetId","isUpdateAuthorized","set","catch","push","f","parcelAuthorizations","notAllowedAuthorizations","filter","allowedAuthorizations","pEstateAuthorizations","estateAuthorizations","owner","initStore","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStorageMiddleware","storageKey","storageMiddleware","loadStorageMiddleware","sagasMiddleware","createSagasMiddleware","transactionMiddleware","createTransactionMiddleware","loggerMiddleware","createLogger","collapsed","predicate","_","_action","enhancer","applyMiddleware","store","createStore","run","getState","getData","createSelector","isLoading","length","getError","every","React","memo","children","style","color","LinkScenePage","handleSignature","e","preventDefault","onSignContent","props","base","this","join","isConnected","isConnecting","onConnectWallet","Fragment","scale","seed","tooltip","strong","value","getFormattedUnauthorized","primary","onClick","disabled","isLandLoading","getLANDname","isAuthorizationLoading","signed","className","renderWalletData","src","alt","renderLANDinfo","PureComponent","LinkerPage","connect","getLand","getWallet","getLandError","getSignature","getAuthorizations","dispatch","enableWalletRequest","ProviderType","INJECTED","cid","signContentRequest","initConfig","ReactDOM","render","document","getElementById"],"mappings":"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","file":"static/js/main.5154ebde.chunk.js","sourcesContent":["import { ChainId } from '@dcl/schemas'\n\nimport { Coords } from './modules/land/types'\n\ntype Config = {\n baseParcel: Coords\n parcels: Coords[]\n rootCID: string\n debug: boolean\n estateRegistry?: string\n landRegistry?: string\n chainId: ChainId\n}\n\nlet config: Config | undefined\n\nfunction parseCoords(query: string | string[] | null): Coords[] {\n if (!query) return [{ x: 0, y: 0 }]\n const coords = typeof query === 'string' ? [query] : query\n return coords.map(c => {\n const [x, y] = c.split(',')\n return { x: parseInt(x, 10), y: parseInt(y, 10) }\n })\n}\n\ntype UrlFinder = {\n get: (key: keyof Config) => string | null\n getAll: (key: keyof Config) => string[] | null\n}\n\nfunction setConfig() {\n const searchParams = new URLSearchParams(window.location.search) as UrlFinder\n config = {\n baseParcel: parseCoords(searchParams.get('baseParcel'))[0],\n parcels: parseCoords(searchParams.getAll('parcels')),\n rootCID:\n searchParams.get('rootCID') ||\n 'QmPjpPyibbryTCi75zzcdeuPUBcujtEqj43shwKBAdMojy',\n debug: searchParams.get('debug') === 'true',\n estateRegistry: searchParams.get('estateRegistry') as string,\n landRegistry: searchParams.get('landRegistry') as string,\n chainId:\n (window?.ethereum as any)?.chainId === '0x1'\n ? ChainId.ETHEREUM_MAINNET\n : ChainId.ETHEREUM_ROPSTEN\n }\n}\n\nexport function init() {\n setConfig()\n}\n\nexport function isDevelopment(): boolean {\n return !!config?.debug\n}\n\nexport function getConfig<T extends keyof Config>(key: T) {\n return (config as Config)[key]\n}\n","import { action } from 'typesafe-actions'\nimport { LANDMeta, Coords } from './types'\n\nexport const FETCH_LAND_REQUEST = '[Request] Fetch LAND'\nexport const FETCH_LAND_SUCCESS = '[Success] Fetch LAND'\nexport const FETCH_LAND_FAILURE = '[Failure] Fetch LAND'\n\nexport const fetchLandRequest = (coords: Coords) =>\n action(FETCH_LAND_REQUEST, coords)\nexport const fetchLandSuccess = (land: LANDMeta) =>\n action(FETCH_LAND_SUCCESS, { land })\nexport const fetchLandFailure = (error: string) =>\n action(FETCH_LAND_FAILURE, { error })\n\nexport type FetchLandRequestAction = ReturnType<typeof fetchLandRequest>\nexport type FetchLandSuccessAction = ReturnType<typeof fetchLandSuccess>\nexport type FetchLandFailureAction = ReturnType<typeof fetchLandFailure>\n","import {\n loadingReducer,\n LoadingState\n} from 'decentraland-dapps/dist/modules/loading/reducer'\n\nimport {\n FetchLandRequestAction,\n FetchLandSuccessAction,\n FetchLandFailureAction,\n FETCH_LAND_REQUEST,\n FETCH_LAND_FAILURE,\n FETCH_LAND_SUCCESS\n} from './actions'\n\nexport type LandState = {\n data: any\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: LandState = {\n data: {},\n loading: [],\n error: null\n}\n\nexport type LandReducerAction =\n | FetchLandRequestAction\n | FetchLandSuccessAction\n | FetchLandFailureAction\n\nexport const landReducer = (\n state = INITIAL_STATE,\n action: LandReducerAction\n): LandState => {\n switch (action.type) {\n case FETCH_LAND_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_LAND_SUCCESS:\n return {\n loading: loadingReducer(state.loading, action),\n data: action.payload.land,\n error: null\n }\n case FETCH_LAND_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error\n }\n default: {\n return state\n }\n }\n}\n","import { action } from 'typesafe-actions'\n\nexport const SIGN_CONTENT_REQUEST = '[Request] Sign Content'\nexport const SIGN_CONTENT_SUCCESS = '[Success] Sign Content'\nexport const SIGN_CONTENT_FAILURE = '[Failure] Sign Content'\n\nexport const signContentRequest = (cid: string) =>\n action(SIGN_CONTENT_REQUEST, cid)\nexport const signContentSuccess = (signature: string) =>\n action(SIGN_CONTENT_SUCCESS, { signature })\nexport const signContentFailure = (error: string) =>\n action(SIGN_CONTENT_FAILURE, { error })\n\nexport type SignContentRequestAction = ReturnType<typeof signContentRequest>\nexport type SignContentSuccessAction = ReturnType<typeof signContentSuccess>\nexport type SignContentFailureAction = ReturnType<typeof signContentFailure>\n","import {\n loadingReducer,\n LoadingState\n} from 'decentraland-dapps/dist/modules/loading/reducer'\n\nimport {\n SignContentRequestAction,\n SignContentSuccessAction,\n SignContentFailureAction,\n SIGN_CONTENT_REQUEST,\n SIGN_CONTENT_SUCCESS,\n SIGN_CONTENT_FAILURE\n} from './actions'\n\nexport type SignatureState = {\n data: any\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: SignatureState = {\n data: '',\n loading: [],\n error: null\n}\n\nexport type SignatureReducerAction =\n | SignContentRequestAction\n | SignContentSuccessAction\n | SignContentFailureAction\n\nexport const signatureReducer = (\n state = INITIAL_STATE,\n action: SignatureReducerAction\n): SignatureState => {\n switch (action.type) {\n case SIGN_CONTENT_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case SIGN_CONTENT_SUCCESS:\n return {\n loading: loadingReducer(state.loading, action),\n data: action.payload.signature,\n error: null\n }\n case SIGN_CONTENT_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error\n }\n default: {\n return state\n }\n }\n}\n","import { action } from 'typesafe-actions'\nimport { Authorization } from './types'\n\nexport const FETCH_AUTHORIZATIONS_REQUEST =\n '[Request] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_SUCCESS =\n '[Success] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_FAILURE =\n '[Failure] Fetch LAND Authorizations'\n\nexport const fetchAuthorizationsRequest = (owner: string) =>\n action(FETCH_AUTHORIZATIONS_REQUEST, { owner })\n\nexport const fetchAuthorizationsSuccess = (authorizations: Authorization[]) =>\n action(FETCH_AUTHORIZATIONS_SUCCESS, { authorizations })\n\nexport const fetchAuthorizationsFailure = (error: string) =>\n action(FETCH_AUTHORIZATIONS_FAILURE, { error })\n\nexport type FetchAuthorizationsRequestAction = ReturnType<\n typeof fetchAuthorizationsRequest\n>\nexport type FetchAuthorizationsSuccessAction = ReturnType<\n typeof fetchAuthorizationsSuccess\n>\nexport type FetchAuthorizationsFailureAction = ReturnType<\n typeof fetchAuthorizationsFailure\n>\n","import {\n loadingReducer,\n LoadingState\n} from 'decentraland-dapps/dist/modules/loading/reducer'\n\nimport {\n FetchAuthorizationsRequestAction,\n FetchAuthorizationsSuccessAction,\n FetchAuthorizationsFailureAction,\n FETCH_AUTHORIZATIONS_REQUEST,\n FETCH_AUTHORIZATIONS_SUCCESS,\n FETCH_AUTHORIZATIONS_FAILURE\n} from './actions'\n\nexport type AuthorizationState = {\n data: any\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: AuthorizationState = {\n data: [],\n loading: [],\n error: null\n}\n\nexport type AuthorizationReducerAction =\n | FetchAuthorizationsRequestAction\n | FetchAuthorizationsSuccessAction\n | FetchAuthorizationsFailureAction\n\nexport const authorizationReducer = (\n state = INITIAL_STATE,\n action: AuthorizationReducerAction\n): AuthorizationState => {\n switch (action.type) {\n case FETCH_AUTHORIZATIONS_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_AUTHORIZATIONS_SUCCESS:\n return {\n loading: loadingReducer(state.loading, action),\n data: action.payload.authorizations,\n error: null\n }\n case FETCH_AUTHORIZATIONS_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error\n }\n default: {\n return state\n }\n }\n}\n","import { combineReducers } from 'redux'\nimport { walletReducer as wallet } from 'decentraland-dapps/dist/modules/wallet/reducer'\nimport { transactionReducer as transaction } from 'decentraland-dapps/dist/modules/transaction/reducer'\n\nimport { landReducer as land } from './modules/land/reducer'\nimport { signatureReducer as signature } from './modules/signature/reducer'\nimport { authorizationReducer as authorization } from './modules/authorization/reducer'\nimport { RootState } from './types'\n\nexport const rootReducer = combineReducers<RootState>({\n wallet,\n transaction,\n land,\n signature,\n authorization\n})\n","import { Contract } from '@ethersproject/contracts'\nimport {\n getConnectedProvider,\n getConnectedProviderChainId\n} from 'decentraland-dapps/dist/lib/eth'\nimport { Web3Provider } from '@ethersproject/providers'\nimport { ChainId } from '@dcl/schemas'\n\nimport * as EstateRegistry from './abis/EstateRegistry.json'\nimport * as LANDRegistry from './abis/LANDRegistry.json'\nimport { getConfig } from './config'\n\nconst contractInstances: {\n land?: Contract\n estate?: Contract\n} = {}\n\nexport function isRopsten() {\n const chainId = getConnectedProviderChainId()\n return chainId === ChainId.ETHEREUM_ROPSTEN\n}\n\nexport async function getLandContract() {\n if (!contractInstances.land) {\n const provider = await getConnectedProvider()\n if (provider) {\n const landRegistry = getConfig('landRegistry')\n const address =\n landRegistry ||\n (isRopsten()\n ? '0x7a73483784ab79257bb11b96fd62a2c3ae4fb75b'\n : '0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d')\n\n contractInstances.land = new Contract(\n address,\n LANDRegistry.abi,\n new Web3Provider(provider).getSigner()\n )\n }\n }\n\n return contractInstances.land\n}\n\nexport async function getEstateContract() {\n if (!contractInstances.estate) {\n const provider = await getConnectedProvider()\n if (provider) {\n const estateRegistry = getConfig('landRegistry')\n const address =\n estateRegistry ||\n (isRopsten()\n ? '0x124bf28a423b2ca80b3846c3aa0eb944fe7ebb95'\n : '0x959e104e1a4db6317fa58f8295f586e1a978c297')\n contractInstances.estate = new Contract(\n address,\n EstateRegistry.abi,\n new Web3Provider(provider).getSigner()\n )\n }\n }\n\n return contractInstances.estate\n}\n","import { LANDMeta, Coords } from './types'\n\nexport function getEmptyLandData(): LANDMeta {\n return {\n version: 0,\n name: '',\n description: ''\n }\n}\n\nexport function coordsToString({ x, y }: Coords): string {\n return `${x},${y}`\n}\n","import { call, put, takeEvery } from 'redux-saga/effects'\nimport { CONNECT_WALLET_SUCCESS } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport * as CSV from 'comma-separated-values'\n\nimport { getConfig } from '../../config'\nimport { getLandContract } from '../../contracts'\nimport {\n FETCH_LAND_REQUEST,\n FetchLandRequestAction,\n fetchLandSuccess,\n fetchLandFailure,\n fetchLandRequest\n} from './actions'\nimport { getEmptyLandData } from './utils'\nimport { Contract } from '@ethersproject/contracts'\nimport { LANDMeta } from './types'\n\nexport function* landSaga() {\n yield takeEvery(FETCH_LAND_REQUEST, handleFetchLandRequest)\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n}\n\nfunction* handleFetchLandRequest(action: FetchLandRequestAction) {\n const LANDRegistry: Contract = yield call(() => getLandContract())\n try {\n const { x, y } = action.payload\n const data: string = yield call(() => LANDRegistry['landData'](x, y))\n const land: LANDMeta = data\n ? yield call(() => decodeLandData(data))\n : getEmptyLandData()\n yield put(fetchLandSuccess(land))\n } catch (error) {\n yield put(fetchLandFailure((error as Error).message))\n }\n}\n\nfunction* handleConnectWalletSuccess() {\n yield put(fetchLandRequest(getConfig('baseParcel')))\n}\n\nfunction decodeLandData(data = '') {\n const version = data.charAt(0)\n switch (version) {\n case '0': {\n const [version, name, description, ipns] = CSV.parse(data, {\n cellDelimiter: ','\n })[0]\n\n return {\n version,\n // when a value is blank, csv.parse returns 0, so we fallback to empty string\n // to support stuff like `0,,,ipns:link`\n name: name || '',\n description: description || '',\n ipns: ipns || ''\n }\n }\n default:\n throw new Error(\n `Unknown version when trying to decode land data: \"${data}\"`\n )\n }\n}\n","import { takeEvery, all, put } from 'redux-saga/effects'\nimport { createWalletSaga } from 'decentraland-dapps/dist/modules/wallet/sagas'\nimport {\n CHANGE_ACCOUNT,\n SWITCH_NETWORK_REQUEST,\n CHANGE_NETWORK,\n FETCH_WALLET_FAILURE,\n disconnectWallet\n} from 'decentraland-dapps/dist/modules/wallet/actions'\n\nimport { getConfig } from '../../config'\n\nexport function* walletSaga() {\n const baseWalletSaga = createWalletSaga({\n CHAIN_ID: getConfig('chainId')\n })\n yield all([baseWalletSaga(), fullWalletSaga()])\n}\n\nfunction* fullWalletSaga() {\n yield takeEvery(CHANGE_ACCOUNT, handleWallet)\n yield takeEvery(CHANGE_NETWORK, handleWallet)\n yield takeEvery(SWITCH_NETWORK_REQUEST, handleWallet)\n yield takeEvery(FETCH_WALLET_FAILURE, handleWallet)\n}\n\nfunction* handleWallet() {\n yield put(disconnectWallet())\n}\n","import { Network } from '@dcl/schemas'\n\nexport type LinkerResponse = {\n address: string\n signature: string\n network: Network\n}\n\nexport async function closeServer(\n ok: boolean,\n message: LinkerResponse\n): Promise<void> {\n await fetch(`/api/close?ok=${ok}&reason=${JSON.stringify(message)}`)\n}\n","import { call, put, takeLatest, takeEvery, select } from 'redux-saga/effects'\nimport { getConnectedProvider } from 'decentraland-dapps/dist/lib/eth'\nimport {\n getAddress,\n getNetwork\n} from 'decentraland-dapps/dist/modules/wallet/selectors'\nimport { Web3Provider } from '@ethersproject/providers'\nimport { toUtf8Bytes } from '@ethersproject/strings'\nimport { Network } from '@dcl/schemas'\nimport { hexlify } from '@ethersproject/bytes'\n\nimport { closeServer } from '../server/utils'\nimport {\n SIGN_CONTENT_REQUEST,\n SIGN_CONTENT_SUCCESS,\n SignContentRequestAction,\n signContentSuccess,\n signContentFailure,\n SignContentSuccessAction\n} from './actions'\nimport { Provider } from 'decentraland-connect/dist'\n\nexport function* signatureSaga() {\n yield takeLatest(SIGN_CONTENT_REQUEST, handleSignContentRequest)\n yield takeEvery(SIGN_CONTENT_SUCCESS, handleSignContentSuccess)\n}\n\nfunction* handleSignContentRequest(action: SignContentRequestAction) {\n try {\n const dataToSign = toUtf8Bytes(action.payload)\n\n const provider: Provider = yield call(() => getConnectedProvider())\n const web3provider = new Web3Provider(provider)\n const signer = web3provider.getSigner()\n\n const addr: string = yield call(() => signer.getAddress())\n\n const signedMessage: string = yield call(() =>\n provider.send('personal_sign', [hexlify(dataToSign), addr.toLowerCase()])\n )\n yield put(signContentSuccess(signedMessage))\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n\nfunction* handleSignContentSuccess(action: SignContentSuccessAction) {\n const address: string = yield select(getAddress)\n const network: Network = yield select(getNetwork)\n const { signature } = action.payload\n\n try {\n yield call(() => {\n // tslint:disable-next-line: no-floating-promises\n closeServer(true, { signature, address, network })\n })\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n","import { call, put, takeEvery, select } from 'redux-saga/effects'\nimport { CONNECT_WALLET_SUCCESS } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport { getAddress } from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport { getLandContract, getEstateContract } from '../../contracts'\nimport { getConfig } from '../../config'\nimport { coordsToString } from '../land/utils'\nimport {\n FETCH_AUTHORIZATIONS_REQUEST,\n fetchAuthorizationsRequest,\n fetchAuthorizationsFailure,\n fetchAuthorizationsSuccess\n} from './actions'\nimport { Authorization } from './types'\nimport { Contract } from '@ethersproject/contracts'\n\nexport function* authorizationSaga() {\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n yield takeEvery(\n FETCH_AUTHORIZATIONS_REQUEST,\n handleFetchAuthorizationsRequest\n )\n}\n\nfunction* handleFetchAuthorizationsRequest() {\n const LANDRegistry: Contract = yield call(() => getLandContract())\n const EstateRegistry: Contract = yield call(() => getEstateContract())\n\n try {\n const address: string = yield select(getAddress)\n const assetIds = new Map<string, string>()\n\n const pAuthorizations: Promise<unknown>[] = []\n for (const parcel of getConfig('parcels')) {\n const { x, y } = parcel\n const pAuthorization = new Promise((resolve, reject) => {\n LANDRegistry['encodeTokenId'](x, y)\n .then((assetId: any) => {\n LANDRegistry['isUpdateAuthorized'](address, assetId)\n .then((isUpdateAuthorized: any) => {\n assetIds.set(coordsToString(parcel), assetId)\n resolve({ x, y, isUpdateAuthorized })\n })\n .catch(reject)\n })\n .catch(reject)\n })\n pAuthorizations.push(pAuthorization)\n }\n\n const parcelAuthorizations: Authorization[] = yield call(() =>\n Promise.all(pAuthorizations)\n )\n\n // If not authorized check permissions on estate\n const notAllowedAuthorizations = parcelAuthorizations.filter(\n a => !a.isUpdateAuthorized\n )\n const allowedAuthorizations = parcelAuthorizations.filter(\n a => a.isUpdateAuthorized\n )\n\n const pEstateAuthorizations: unknown[] = []\n for (const a of notAllowedAuthorizations) {\n const assetId = assetIds.get(coordsToString(a))\n const pAuthorization = new Promise((resolve, reject) => {\n EstateRegistry['getLandEstateId'](assetId)\n .then((estate: any) => {\n if (estate && estate > 0) {\n return EstateRegistry['isUpdateAuthorized'](address, estate).then(\n (isUpdateAuthorized: any) => {\n resolve({ ...a, isUpdateAuthorized })\n }\n )\n } else {\n return resolve(a) // If no estate leave authorization in false\n }\n })\n .catch(reject)\n })\n pEstateAuthorizations.push(pAuthorization)\n }\n\n const estateAuthorizations: Authorization[] = yield call(() =>\n Promise.all(pEstateAuthorizations)\n )\n\n const authorizations = [...allowedAuthorizations, ...estateAuthorizations]\n yield put(fetchAuthorizationsSuccess(authorizations))\n } catch (error) {\n yield put(fetchAuthorizationsFailure((error as Error).message))\n }\n}\n\nfunction* handleConnectWalletSuccess(): any {\n const address = yield call(() => getAddress)\n yield put(fetchAuthorizationsRequest(address))\n}\n","import { applyMiddleware, compose, createStore } from 'redux'\nimport createSagasMiddleware from 'redux-saga'\nimport { createLogger } from 'redux-logger'\nimport { createTransactionMiddleware } from 'decentraland-dapps/dist/modules/transaction/middleware'\nimport { createStorageMiddleware } from 'decentraland-dapps/dist/modules/storage/middleware'\n\nimport { rootReducer } from './reducer'\nimport { rootSaga } from './sagas'\n\nexport function initStore() {\n const composeEnhancers =\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\n\n const { storageMiddleware, loadStorageMiddleware } = createStorageMiddleware({\n storageKey: 'decentraland-linker'\n })\n const sagasMiddleware = createSagasMiddleware()\n const transactionMiddleware = createTransactionMiddleware()\n const loggerMiddleware = createLogger({\n collapsed: () => true,\n predicate: (_, _action) => false // isDevelopment() || action.type.includes('Failure')\n })\n\n const middleware = applyMiddleware(\n sagasMiddleware,\n loggerMiddleware,\n storageMiddleware,\n transactionMiddleware\n )\n\n const enhancer = composeEnhancers(middleware)\n const store = createStore(rootReducer, enhancer)\n\n sagasMiddleware.run(rootSaga())\n loadStorageMiddleware(store)\n\n return store\n}\n","import { all } from 'redux-saga/effects'\n\nimport { landSaga } from './modules/land/sagas'\nimport { walletSaga } from './modules/wallet/sagas'\nimport { signatureSaga } from './modules/signature/sagas'\nimport { authorizationSaga } from './modules/authorization/sagas'\n\nexport function rootSaga() {\n return function*() {\n yield all([walletSaga(), landSaga(), signatureSaga(), authorizationSaga()])\n }\n}\n","import { createSelector } from 'reselect'\n\nimport { RootState } from '../../types'\n\nexport const getState = (state: RootState) => state.land\n\nexport const getData = createSelector(getState, state => state.data)\n\nexport const isLoading = createSelector(\n getState,\n state => state.loading.length > 0\n)\n\nexport const getError = createSelector(getState, state => state.error)\n","import { createSelector } from 'reselect'\nimport { RootState } from '../../types'\n\nexport const getState = (state: RootState) => state.signature\nexport const getData = createSelector(getState, state => state.data)\nexport const isLoading = createSelector(\n getState,\n state => state.loading.length > 0\n)\nexport const getError = createSelector(getState, state => state.error)\n","import { createSelector } from 'reselect'\n\nimport { RootState } from '../../types'\nimport { Authorization } from './types'\n\nexport const getState = (state: RootState) => state.authorization\n\nexport const getData = createSelector(getState, state => state.data)\n\nexport const isLoading = createSelector(\n getState,\n state => state.loading.length > 0\n)\n\nexport const getError = createSelector(getState, state => state.error)\n\nexport const isUpdateAuthorized = createSelector(getData, authorizations => {\n if (!authorizations) {\n return\n }\n\n return authorizations.every((a: Authorization) => a.isUpdateAuthorized)\n})\n","import React from 'react'\n\nexport default React.memo(({ children }: { children: string }) => (\n <p style={{ color: 'var(--primary)' }}> Error: {children}</p>\n))\n","import React from 'react'\nimport { Address, Blockie, Header, Button, Navbar } from 'decentraland-ui'\n// import Navbar from 'decentraland-dapps/dist/containers/Navbar'\nimport { ChainId } from '@dcl/schemas'\n\nimport { getConfig, isDevelopment } from '../../config'\nimport { coordsToString } from '../../modules/land/utils'\nimport Error from '../Error'\nimport { Props } from './types'\n\nexport default class LinkScenePage extends React.PureComponent<Props> {\n handleSignature = (e: any) => {\n e.preventDefault()\n const { onSignContent } = this.props\n onSignContent(getConfig('rootCID'))\n }\n\n getLANDname() {\n const { base } = this.props\n return base.name ? `\"${base.name}\"` : `LAND without name`\n }\n\n getFormattedUnauthorized() {\n const { authorizations } = this.props\n return authorizations\n .filter(a => !a.isUpdateAuthorized)\n .map(a => `\"${coordsToString(a)}\"`)\n .join(', ')\n }\n\n renderWalletData() {\n const {\n isConnected,\n wallet,\n authorizations,\n isUpdateAuthorized,\n isConnecting,\n onConnectWallet\n } = this.props\n if (isConnected && wallet.address) {\n return (\n <React.Fragment>\n <p>\n Using address: \n <Blockie scale={3} seed={wallet.address}>\n <Address tooltip strong value={wallet.address} />\n </Blockie>\n </p>\n {authorizations && !isUpdateAuthorized ? (\n <Error>\n {`You don't have permissions to update The following LANDs that are part of the scene: ${this.getFormattedUnauthorized()}`}\n </Error>\n ) : null}\n </React.Fragment>\n )\n }\n\n return (\n <React.Fragment>\n {isConnecting ? null : <p>Could not find any wallet</p>}\n <p>\n <Button\n primary\n onClick={onConnectWallet}\n loading={isConnecting}\n disabled={isConnecting}\n >\n Reconnect{' '}\n </Button>\n </p>\n </React.Fragment>\n )\n }\n\n renderLANDinfo() {\n const { error, isLandLoading, isConnected } = this.props\n const { x, y } = getConfig('baseParcel')\n\n if (error || !isConnected || isLandLoading) {\n return\n }\n\n return (\n <p>\n Updating <b>{this.getLANDname()}</b> at coordinates{' '}\n <b>\n {x}, {y}\n </b>\n </p>\n )\n }\n\n render() {\n const {\n error,\n isConnected,\n isUpdateAuthorized,\n isAuthorizationLoading,\n signed,\n wallet\n } = this.props\n const { x, y } = getConfig('baseParcel')\n const rootCID = getConfig('rootCID')\n const isRopsten = wallet?.chainId === ChainId.ETHEREUM_ROPSTEN\n\n return (\n <div className=\"LinkScenePage\">\n <Navbar />\n <Header>Update LAND data</Header>\n {this.renderWalletData()}\n <img\n className=\"map\"\n src={`https://api.decentraland.${\n isRopsten ? 'zone' : 'org'\n }/v1/parcels/${x}/${y}/map.png`}\n alt={`Base parcel ${x},${y}`}\n />\n {this.renderLANDinfo()}\n <p>\n Project CID: <b>{rootCID}</b>\n </p>\n <form>\n <div>\n <Button\n primary\n onClick={this.handleSignature}\n disabled={\n !isConnected ||\n !!error ||\n isAuthorizationLoading ||\n !isUpdateAuthorized\n }\n >\n Sign and Deploy\n </Button>\n </div>\n </form>\n {isConnected && signed && (\n <p>\n Content was succesfully signed and it's being uploaded. You can\n close this page and check the CLI for more info.\n </p>\n )}\n {error ? (\n isDevelopment() ? (\n <Error>{error}</Error>\n ) : (\n <Error>There was an unexpected error.</Error>\n )\n ) : null}\n <style>{`\n .LinkScenePage {\n text-align: center;\n }\n .map {\n padding: 15px;\n }\n .options div input {\n color: white;\n }\n `}</style>\n {isRopsten ? (\n <style>{`\n body:before {\n content: 'Using Ropsten test network';\n background: var(--primary);\n color: white;\n text-align: center;\n text-transform: uppercase;\n height: 24px;\n width: 100%;\n position: fixed;\n padding-top: 2px;\n }\n .LinkScenePage {\n padding-top: 24px;\n }\n `}</style>\n ) : null}\n </div>\n )\n }\n}\n","import LinkerPage from './LinkerPage.container'\nexport default LinkerPage\n","import { AnyAction, Dispatch } from 'redux'\nimport { connect } from 'react-redux'\nimport { ProviderType } from 'decentraland-connect'\nimport { enableWalletRequest } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport {\n getData as getWallet,\n isConnected,\n isConnecting\n} from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport {\n isLoading as isLandLoading,\n getData as getLand,\n getError as getLandError\n} from '../../modules/land/selectors'\nimport { getData as getSignature } from '../../modules/signature/selectors'\nimport {\n getData as getAuthorizations,\n isUpdateAuthorized,\n isLoading as isAuthorizationLoading\n} from '../../modules/authorization/selectors'\nimport { signContentRequest } from '../../modules/signature/actions'\nimport { RootState } from '../../types'\nimport { MapStateProps, MapDispatchProps } from './types'\n\nimport LinkerPage from './LinkerPage'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n base: getLand(state),\n wallet: getWallet(state)!,\n isLandLoading: isLandLoading(state),\n isConnected: isConnected(state),\n isConnecting: isConnecting(state),\n error: getLandError(state)!,\n signed: !!getSignature(state),\n isUpdateAuthorized: isUpdateAuthorized(state),\n authorizations: getAuthorizations(state),\n isAuthorizationLoading: isAuthorizationLoading(state)\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: () => dispatch(enableWalletRequest(ProviderType.INJECTED)),\n onSignContent: (cid: string) => dispatch(signContentRequest(cid))\n})\n\nexport default connect(mapState, mapDispatch)(LinkerPage)\n","import ReactDOM from 'react-dom'\nimport WalletProvider from 'decentraland-dapps/dist/providers/WalletProvider'\nimport { Provider } from 'react-redux'\n\nimport { initStore } from './store'\nimport LinkerPage from './components/LinkerPage'\nimport { init as initConfig } from './config'\n\nimport 'decentraland-ui/lib/styles.css'\nimport 'decentraland-ui/lib/dark-theme.css'\n\n// tslint:disable-next-line: no-floating-promises\n;(async () => {\n initConfig()\n ReactDOM.render(\n <Provider store={initStore()}>\n <WalletProvider>\n <LinkerPage />\n </WalletProvider>\n </Provider>,\n document.getElementById('root')\n )\n})()\n"],"sourceRoot":""}
|