@dcl/linker-dapp 0.3.1-2875578761.commit-1f41149 → 0.3.1-3060563892.commit-56b624a
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
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
3
|
"main.css": "/static/css/main.71d9f91e.chunk.css",
|
|
4
|
-
"main.js": "/static/js/main.
|
|
5
|
-
"main.js.map": "/static/js/main.
|
|
4
|
+
"main.js": "/static/js/main.9ce0f832.chunk.js",
|
|
5
|
+
"main.js.map": "/static/js/main.9ce0f832.chunk.js.map",
|
|
6
6
|
"runtime-main.js": "/static/js/runtime-main.d04e7014.js",
|
|
7
7
|
"runtime-main.js.map": "/static/js/runtime-main.d04e7014.js.map",
|
|
8
8
|
"static/css/2.007b9c1f.chunk.css": "/static/css/2.007b9c1f.chunk.css",
|
|
@@ -22,6 +22,6 @@
|
|
|
22
22
|
"static/css/2.007b9c1f.chunk.css",
|
|
23
23
|
"static/js/2.92d95143.chunk.js",
|
|
24
24
|
"static/css/main.71d9f91e.chunk.css",
|
|
25
|
-
"static/js/main.
|
|
25
|
+
"static/js/main.9ce0f832.chunk.js"
|
|
26
26
|
]
|
|
27
27
|
}
|
package/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="CLI Linker for deployments"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Linker App</title><link href="/static/css/2.007b9c1f.chunk.css" rel="stylesheet"><link href="/static/css/main.71d9f91e.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,a=r[0],c=r[1],l=r[2],f=0,s=[];f<a.length;f++)i=a[f],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var c=t[a];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"b760610c"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){a.onerror=a.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/",i.oe=function(e){throw console.error(e),e};var a=this["webpackJsonp@dcl/linker-dapp"]=this["webpackJsonp@dcl/linker-dapp"]||[],c=a.push.bind(a);a.push=r,a=a.slice();for(var l=0;l<a.length;l++)r(a[l]);var p=c;t()}([])</script><script src="/static/js/2.92d95143.chunk.js"></script><script src="/static/js/main.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="CLI Linker for deployments"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Linker App</title><link href="/static/css/2.007b9c1f.chunk.css" rel="stylesheet"><link href="/static/css/main.71d9f91e.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,a=r[0],c=r[1],l=r[2],f=0,s=[];f<a.length;f++)i=a[f],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var c=t[a];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"b760610c"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){a.onerror=a.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/",i.oe=function(e){throw console.error(e),e};var a=this["webpackJsonp@dcl/linker-dapp"]=this["webpackJsonp@dcl/linker-dapp"]||[],c=a.push.bind(a);a.push=r,a=a.slice();for(var l=0;l<a.length;l++)r(a[l]);var p=c;t()}([])</script><script src="/static/js/2.92d95143.chunk.js"></script><script src="/static/js/main.9ce0f832.chunk.js"></script></body></html>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/linker-dapp",
|
|
3
|
-
"version": "0.3.1-
|
|
3
|
+
"version": "0.3.1-3060563892.commit-56b624a",
|
|
4
4
|
"description": "The website for decentraland's linker ",
|
|
5
5
|
"main": "website.js",
|
|
6
6
|
"scripts": {
|
|
@@ -16,5 +16,5 @@
|
|
|
16
16
|
"url": "https://github.com/decentraland/linker-dapp/issues"
|
|
17
17
|
},
|
|
18
18
|
"homepage": "",
|
|
19
|
-
"commit": "
|
|
19
|
+
"commit": "56b624a56092a86436275451698a1b2f3c1e1f84"
|
|
20
20
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(this["webpackJsonp@dcl/linker-dapp"]=this["webpackJsonp@dcl/linker-dapp"]||[]).push([[0],{1e3:function(e,t){},1021:function(e,t){},1023:function(e,t){},1035:function(e,t){},1056:function(e,t){},1058:function(e,t){},1404:function(e,t){},1424:function(e,t){},1425:function(e,t){},1732:function(e,t,n){},1978:function(e,t,n){},1979:function(e,t,n){},1980:function(e,t,n){},1981:function(e,t,n){},1985:function(e,t,n){"use strict";n.r(t);var a=n(158),s=n.n(a),r=n(818),i=n.n(r),u=n(132),o=n(176),c=n(850),p=n(832),l=n(833),d=n(834),y=n(835),b=n(836),f=n(36),m=n(65),j=n(62),O="[Request] Fetch LAND",x="[Success] Fetch LAND",v="[Failure] Fetch LAND",h=function(e){return Object(j.action)(x,{land:e})},g={data:{},loading:[],error:null},w="[Request] Sign Content",M="[Success] Sign Content",I="[Failure] Sign Content",C=function(e){return Object(j.action)(I,{error:e})},_="[Request] Create Identity",k="[Success] Create Identity",T="[Failure] Create Identity",A=function(e){return Object(j.action)(k,{identity:e})},E={data:"",loading:[],identity:null,error:null},S="[Request] Fetch LAND Authorizations",R="[Success] Fetch LAND Authorizations",F="[Failure] Fetch LAND Authorizations",z=function(e){return Object(j.action)(R,{authorizations:e})},L=function(e){return Object(j.action)(F,{error:e})},D={data:[],loading:[],error:null},N=n(175),U="[Request] Fetch Files",P="[Success] Fetch Files",H="[Failure] Fetch Files",B="[Request] Fetch info",W="[Success] Fetch info",q="[Failure] Fetch info",G="[Request] Fetch catalyst",J="[Success] Fetch catalyst",Y="[Failure] Fetch catalyst",K=function(e){return Object(j.action)(P,{files:e})},V=function(e){return Object(j.action)(W,{info:e})},X=function(e){return Object(j.action)(q,{error:e})},Q=function(){return Object(j.action)(G)},Z={info:void 0,files:[],loading:[],error:null,catalyst:void 0};function $(e){return e?("string"===typeof e?[e]:e).map((function(e){var t=e.split(","),n=Object(N.a)(t,2),a=n[0],s=n[1];return{x:parseInt(a,10),y:parseInt(s,10)}})):[{x:0,y:0}]}var ee=Object(o.b)({wallet:y.walletReducer,transaction:b.transactionReducer,land:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case O:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t)});case x:return{loading:Object(m.loadingReducer)(e.loading,t),data:t.payload.land,error:null};case v:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error});default:return e}},signature:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:E,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case w:case _:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t)});case M:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),data:t.payload.signature,error:null});case I:case T:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error});case k:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),identity:t.payload.identity,error:null});default:return e}},authorization:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:D,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case S:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t)});case R:return{loading:Object(m.loadingReducer)(e.loading,t),data:t.payload.authorizations,error:null};case F:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error});default:return e}},api:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Z,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case U:case G:case B:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t)});case P:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),files:t.payload.files,error:null});case H:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error,files:[]});case J:return t.payload.catalysts.length?Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),catalyst:t.payload,error:null}):e;case Y:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error,catalyst:void 0});case W:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),info:Object(f.a)(Object(f.a)({},t.payload.info),{},{baseParcel:$(t.payload.info.baseParcel)[0],parcels:$(t.payload.info.parcels),rootCID:t.payload.info.rootCID||"QmPjpPyibbryTCi75zzcdeuPUBcujtEqj43shwKBAdMojy"}),error:null});case q:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error,info:void 0});default:return e}}}),te=n(1),ne=n.n(te),ae=n(26),se=n(99),re=n(837),ie=n(24),ue=n(195),oe=n(159),ce=n(484),pe=n(838),le=n(839),de=n(266);function ye(){var e,t;return"0x1"!==(null===(e=window)||void 0===e||null===(t=e.ethereum)||void 0===t?void 0:t.chainId)}function be(){var e,t;return"0x1"===(null===(e=window)||void 0===e||null===(t=e.ethereum)||void 0===t?void 0:t.chainId)?de.ChainId.ETHEREUM_MAINNET:de.ChainId.ETHEREUM_GOERLI}var fe={};function me(e){return je.apply(this,arguments)}function je(){return(je=Object(ie.a)(ne.a.mark((function e(t){var n,a;return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(fe.land){e.next=5;break}return e.next=3,Object(oe.getConnectedProvider)();case 3:(n=e.sent)&&(a=t||(ye()?"0x25b6B4bac4aDB582a0ABd475439dA6730777Fbf7":"0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d"),fe.land=new ue.b(a,le.a,new ce.a(n).getSigner()));case 5:return e.abrupt("return",fe.land);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Oe(e){return xe.apply(this,arguments)}function xe(){return(xe=Object(ie.a)(ne.a.mark((function e(t){var n,a;return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(fe.estate){e.next=5;break}return e.next=3,Object(oe.getConnectedProvider)();case 3:(n=e.sent)&&(a=t||(ye()?"0xC9A46712E6913c24d15b46fF12221a79c4e251DC":"0x959e104e1a4db6317fa58f8295f586e1a978c297"),fe.estate=new ue.b(a,pe.a,new ce.a(n).getSigner()));case 5:return e.abrupt("return",fe.estate);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ve(e){var t=e.x,n=e.y;return"".concat(t,",").concat(n)}var he=function(e){return e.api.files},ge=function(e){return e.api.info},we=ne.a.mark(Ce),Me=ne.a.mark(_e),Ie=ne.a.mark(ke);function Ce(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.takeEvery)(O,_e);case 2:return e.next=4,Object(ae.takeEvery)(se.CONNECT_WALLET_SUCCESS,ke);case 4:case"end":return e.stop()}}),we)}function _e(){var e,t,n,a,s,r,i;return ne.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,Object(ae.select)(ge);case 2:return e=u.sent,u.next=5,Object(ae.call)((function(){return me(e.landRegistry)}));case 5:return t=u.sent,u.prev=6,n=e.baseParcel,a=n.x,s=n.y,u.next=10,Object(ae.call)((function(){return t.landData(a,s)}));case 10:if(!(r=u.sent)){u.next=17;break}return u.next=14,Object(ae.call)((function(){return Te(r)}));case 14:u.t0=u.sent,u.next=18;break;case 17:u.t0={version:0,name:"",description:""};case 18:return i=u.t0,u.next=21,Object(ae.put)(h(i));case 21:u.next=27;break;case 23:return u.prev=23,u.t1=u.catch(6),u.next=27,Object(ae.put)((o=u.t1.message,Object(j.action)(v,{error:o})));case 27:case"end":return u.stop()}var o}),Me,null,[[6,23]])}function ke(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.put)(Object(j.action)(O));case 2:case"end":return e.stop()}}),Ie)}function Te(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.charAt(0);if("0"===t){var n=Object(N.a)(re.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 Ae=n(840),Ee=ne.a.mark(Fe),Se=ne.a.mark(ze),Re=ne.a.mark(Le);function Fe(){var e;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=Object(Ae.createWalletSaga)({CHAIN_ID:be()}),t.next=3,Object(ae.all)([e(),ze()]);case 3:case"end":return t.stop()}}),Ee)}function ze(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.takeEvery)(se.CHANGE_NETWORK,Le);case 2:return e.next=4,Object(ae.takeEvery)(se.CHANGE_ACCOUNT,Le);case 4:case"end":return e.stop()}}),Se)}function Le(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.call)((function(){return window.location.reload()}));case 2:case"end":return e.stop()}}),Re)}var De=n(81),Ne=n(76),Ue=n(3);function Pe(e,t){return He.apply(this,arguments)}function He(){return(He=Object(ie.a)(ne.a.mark((function e(t,n){return ne.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)}function Be(e){return We.apply(this,arguments)}function We(){return(We=Object(ie.a)(ne.a.mark((function e(t){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("/api/deploy",{method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function qe(){return Ge.apply(this,arguments)}function Ge(){return(Ge=Object(ie.a)(ne.a.mark((function e(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("/api/files");case 2:return e.abrupt("return",e.sent.json());case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Je(){return Ye.apply(this,arguments)}function Ye(){return(Ye=Object(ie.a)(ne.a.mark((function e(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("/api/info");case 2:return e.abrupt("return",e.sent.json());case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ke(){return Ve.apply(this,arguments)}function Ve(){return(Ve=Object(ie.a)(ne.a.mark((function e(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("/api/catalyst-pointers");case 2:return e.abrupt("return",e.sent.json());case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Xe=n(841),Qe=ne.a.mark(nt),Ze=ne.a.mark(at),$e=ne.a.mark(st),et=ne.a.mark(rt),tt=ne.a.mark(it);function nt(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.takeLatest)(w,at);case 2:return e.next=4,Object(ae.takeEvery)(M,st);case 4:return e.next=6,Object(ae.takeLatest)(_,rt);case 6:return e.next=8,Object(ae.takeLatest)(k,it);case 8:case"end":return e.stop()}}),Qe)}function at(e){var t,n,a,s,r,i;return ne.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return u.prev=0,t=Object(Ne.f)(e.payload),u.next=4,Object(ae.call)((function(){return Object(oe.getConnectedProvider)()}));case 4:return n=u.sent,a=new ce.a(n),s=a.getSigner(),u.next=9,Object(ae.call)((function(){return s.getAddress()}));case 9:return r=u.sent,u.next=12,Object(ae.call)((function(){return n.send("personal_sign",[Object(Ue.i)(t),r.toLowerCase()])}));case 12:return i=u.sent,u.next=15,Object(ae.put)((o=i,Object(j.action)(M,{signature:o})));case 15:u.next=21;break;case 17:return u.prev=17,u.t0=u.catch(0),u.next=21,Object(ae.put)(C(u.t0.message));case 21:case"end":return u.stop()}var o}),Ze,null,[[0,17]])}function st(e){var t,n,a;return ne.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return s.next=2,Object(ae.select)(De.getAddress);case 2:return t=s.sent,s.next=5,Object(ae.select)(De.getChainId);case 5:return n=s.sent,a=e.payload.signature,s.prev=7,s.next=10,Object(ae.call)(Be,{signature:a,address:t,chainId:n});case 10:s.next=16;break;case 12:return s.prev=12,s.t0=s.catch(7),s.next=16,Object(ae.put)(C(s.t0.message));case 16:case"end":return s.stop()}}),$e,null,[[7,12]])}function rt(e){var t,n,a,s;return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Object(ae.call)((function(){return Object(oe.getConnectedProvider)()}));case 3:return t=e.sent,n=new ce.a(t),a=n.getSigner(),e.next=8,Object(ae.call)((function(){return Object(Xe.createIdentity)(a,1e3)}));case 8:return s=e.sent,e.next=11,Object(ae.put)(A(s));case 11:return e.next=13,Object(ae.put)(Q());case 13:e.next=19;break;case 15:return e.prev=15,e.t0=e.catch(0),e.next=19,Object(ae.put)((r=e.t0.message,Object(j.action)(T,{error:r})));case 19:case"end":return e.stop()}var r}),et,null,[[0,15]])}function it(e){var t,n,a;return ne.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return t=e.payload.identity,s.next=3,Object(ae.select)(De.getAddress);case 3:return n=s.sent,s.next=6,Object(ae.select)(De.getChainId);case 6:return a=s.sent,s.prev=7,s.next=10,Object(ae.call)(Pe,!0,{responseType:"identity",payload:{identity:t,address:n,chainId:a}});case 10:s.next=16;break;case 12:return s.prev=12,s.t0=s.catch(7),s.next=16,Object(ae.put)(C(s.t0.message));case 16:case"end":return s.stop()}}),tt,null,[[7,12]])}var ut=n(125),ot=n(493),ct=ne.a.mark(dt),pt=ne.a.mark(yt),lt=ne.a.mark(bt);function dt(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.takeEvery)(se.CONNECT_WALLET_SUCCESS,bt);case 2:return e.next=4,Object(ae.takeEvery)(S,yt);case 4:case"end":return e.stop()}}),ct)}function yt(){var e,t,n;return ne.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,Object(ae.select)(ge);case 2:if(e=a.sent){a.next=6;break}return a.next=6,Object(ae.take)(W);case 6:if(t=new URLSearchParams(document.location.search),"true"!==t.get("skipValidations")){a.next=21;break}return a.prev=9,n=e.parcels,a.next=13,Object(ae.put)(z(n.map((function(e){return{x:e.x,y:e.y,isUpdateAuthorized:!0}}))));case 13:a.next=19;break;case 15:return a.prev=15,a.t0=a.catch(9),a.next=19,Object(ae.put)(L(a.t0.message));case 19:a.next=22;break;case 21:return a.delegateYield(ne.a.mark((function t(){var n,a,s,r,i;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.parcels,a=e.landRegistry,s=e.estateRegistry,t.next=3,Object(ae.call)((function(){return me(a)}));case 3:return r=t.sent,t.next=6,Object(ae.call)((function(){return Oe(s)}));case 6:return i=t.sent,t.prev=7,t.delegateYield(ne.a.mark((function e(){var t,a,s,u,o,c,p,l,d,y,b,m,j,O,x;return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.select)(De.getAddress);case 2:t=e.sent,a=new Map,s=[],u=Object(ot.a)(n);try{for(c=function(){var e=o.value,n=e.x,i=e.y,u=new Promise((function(s,u){r.encodeTokenId(n,i).then((function(o){r.isUpdateAuthorized(t,o).then((function(t){a.set(ve(e),o),s({x:n,y:i,isUpdateAuthorized:t})})).catch(u)})).catch(u)}));s.push(u)},u.s();!(o=u.n()).done;)c()}catch(v){u.e(v)}finally{u.f()}return e.next=9,Object(ae.call)((function(){return Promise.all(s)}));case 9:p=e.sent,l=p.filter((function(e){return!e.isUpdateAuthorized})),d=p.filter((function(e){return e.isUpdateAuthorized})),y=[],b=Object(ot.a)(l);try{for(j=function(){var e=m.value,n=a.get(ve(e)),s=new Promise((function(a,s){i.getLandEstateId(n).then((function(n){return n&&n>0?i.isUpdateAuthorized(t,n).then((function(t){a(Object(f.a)(Object(f.a)({},e),{},{isUpdateAuthorized:t}))})):a(e)})).catch(s)}));y.push(s)},b.s();!(m=b.n()).done;)j()}catch(v){b.e(v)}finally{b.f()}return e.next=17,Object(ae.call)((function(){return Promise.all(y)}));case 17:return O=e.sent,x=[].concat(Object(ut.a)(d),Object(ut.a)(O)),e.next=21,Object(ae.put)(z(x));case 21:case"end":return e.stop()}}),e)}))(),"t0",9);case 9:t.next=15;break;case 11:return t.prev=11,t.t1=t.catch(7),t.next=15,Object(ae.put)(L(t.t1.message));case 15:case"end":return t.stop()}}),t,null,[[7,11]])}))(),"t1",22);case 22:case"end":return a.stop()}}),pt,null,[[9,15]])}function bt(){var e;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Object(ae.call)((function(){return De.getAddress}));case 2:return e=t.sent,t.next=5,Object(ae.put)((n=e,Object(j.action)(S,{owner:n})));case 5:case"end":return t.stop()}var n}),lt)}var ft=ne.a.mark(xt),mt=ne.a.mark(vt),jt=ne.a.mark(ht),Ot=ne.a.mark(gt);function xt(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.takeEvery)(U,vt);case 2:return e.next=4,Object(ae.takeEvery)(B,ht);case 4:return e.next=6,Object(ae.takeEvery)(G,gt);case 6:case"end":return e.stop()}}),ft)}function vt(){var e;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,Object(ae.call)(qe);case 3:return e=t.sent,t.next=6,Object(ae.put)(K(e));case 6:t.next=12;break;case 8:return t.prev=8,t.t0=t.catch(0),t.next=12,Object(ae.put)((n=t.t0.message,Object(j.action)(H,{error:n})));case 12:case"end":return t.stop()}var n}),mt,null,[[0,8]])}function ht(){var e;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,Object(ae.call)(Je);case 3:return e=t.sent,t.next=6,Object(ae.put)(V(e));case 6:t.next=12;break;case 8:return t.prev=8,t.t0=t.catch(0),t.next=12,Object(ae.put)(X(t.t0.message));case 12:case"end":return t.stop()}}),jt,null,[[0,8]])}function gt(){var e;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,Object(ae.call)(Ke);case 3:return e=t.sent,t.next=6,Object(ae.put)((n=e,Object(j.action)(J,n)));case 6:t.next=12;break;case 8:return t.prev=8,t.t0=t.catch(0),t.next=12,Object(ae.put)(X(t.t0.message));case 12:case"end":return t.stop()}var n}),Ot,null,[[0,8]])}var wt=n(194),Mt=n(114),It=function(e){return e.signature},Ct=Object(Mt.a)(It,(function(e){return e.data})),_t=Object(Mt.a)(It,(function(e){return e.loading.length>0})),kt=(Object(Mt.a)(It,(function(e){return e.error})),n(1732),n(22)),Tt=n(0),At=n.n(Tt),Et=n(17),St=At.a.memo((function(e){var t=e.children;return Object(Et.jsxs)("p",{style:{color:"var(--primary)"},children:[" Error: ",t]})}));function Rt(e){var t=e.isConnected,n=e.isConnecting,a=e.wallet,s=e.authorizations,r=e.isUpdateAuthorized,i=e.onConnectWallet;return t&&a.address?Object(Et.jsxs)(Et.Fragment,{children:[Object(Et.jsxs)("p",{children:["Using address: \xa0",Object(Et.jsx)(kt.Blockie,{scale:3,seed:a.address,children:Object(Et.jsx)(kt.Address,{tooltip:!0,strong:!0,value:a.address})})]}),(null===s||void 0===s?void 0:s.length)&&!r?Object(Et.jsx)(St,{children:"You don't have permissions to update The following LANDs that are part of the scene: ".concat((s||[]).filter((function(e){return!e.isUpdateAuthorized})).map((function(e){return'"'.concat(ve(e),'"')})).join(", "))}):null]}):Object(Et.jsxs)(Et.Fragment,{children:[n?null:Object(Et.jsx)("p",{children:"Could not find any wallet"}),Object(Et.jsx)("p",{children:Object(Et.jsx)(kt.Button,{primary:!0,onClick:i,loading:n,disabled:n,children:"Reconnect\xa0"})})]})}var Ft,zt=Object(u.connect)((function(e){return{wallet:Object(De.getData)(e),isConnected:Object(De.isConnected)(e),isConnecting:Object(De.isConnecting)(e),signed:!!Ct(e),isSigning:_t(e)}}),(function(e){return{onConnectWallet:function(){return e(Object(se.enableWalletRequest)(wt.ProviderType.INJECTED))},onRequestIdentity:function(){return e(Object(j.action)(_,{}))}}}))((function(e){var t=e.isConnected,n=e.wallet,a=e.isConnecting,s=e.onConnectWallet,r=e.isSigning,i=e.onRequestIdentity;return Object(Et.jsxs)("div",{className:"LinkScenePage",children:[ye()&&Object(Et.jsx)("div",{className:"warning",children:"Using Goerli test network"}),Object(Et.jsx)(kt.Navbar,{}),Object(Et.jsx)(kt.Header,{children:"Create an identity to sign deployments "}),Object(Et.jsx)(Rt,{isUpdateAuthorized:!0,isConnected:t,isConnecting:a,wallet:n,onConnectWallet:s}),Object(Et.jsx)("form",{children:Object(Et.jsx)("div",{children:Object(Et.jsx)(kt.Button,{primary:!0,onClick:function(e){e.preventDefault(),i()},disabled:!t,loading:r,children:"Sign ephemeral wallet"})})})]})})),Lt=function(e){return e.land},Dt=Object(Mt.a)(Lt,(function(e){return e.data})),Nt=Object(Mt.a)(Lt,(function(e){return e.loading.length>0})),Ut=Object(Mt.a)(Lt,(function(e){return e.error})),Pt=function(e){return e.authorization},Ht=Object(Mt.a)(Pt,(function(e){return e.data})),Bt=Object(Mt.a)(Pt,(function(e){return e.loading.length>0})),Wt=(Object(Mt.a)(Pt,(function(e){return e.error})),Object(Mt.a)(Ht,(function(e){if(null===e||void 0===e?void 0:e.length)return e.every((function(e){return e.isUpdateAuthorized}))})));n(1978);!function(e){e.Size="Size",e.Name="Name"}(Ft||(Ft={}));var qt=Object(u.connect)((function(e){return{files:he(e)}}))((function(e){var t=e.files,n=Object(Tt.useState)(Ft.Size),a=Object(N.a)(n,2),s=a[0],r=a[1],i=Object(Tt.useMemo)((function(){return t.sort((function(e,t){return s===Ft.Size?t.size<e.size?-1:1:e.name<t.name?-1:1}))}),[t,s]);return Object(Et.jsx)(kt.Container,{children:Object(Et.jsxs)(kt.Table,{basic:"very",children:[Object(Et.jsx)(kt.Table.Header,{children:Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsx)(kt.Table.HeaderCell,{children:"File Name"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:"Size"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:Object(Et.jsx)(kt.Dropdown,{text:s,direction:"right",children:Object(Et.jsx)(kt.Dropdown.Menu,{children:Object.values(Ft).map((function(e){return Object(Et.jsx)(kt.Dropdown.Item,{onClick:function(){return r(e)},text:e},e)}))})})})]})}),Object(Et.jsx)(kt.Table.Body,{children:i.map((function(e,t){var n=e.name,a=e.size;return Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsx)(kt.Table.Cell,{children:n}),Object(Et.jsxs)(kt.Table.Cell,{children:[(1e-6*Number(a)).toFixed(2)," MB "]}),Object(Et.jsx)(kt.Table.Cell,{})]},t)}))})]})})}));n(1979);function Gt(e){var t=e.authorizations,n=e.parcels,a=e.baseParcel,s=function(e){return function(t,n){return e.find((function(e){return e.x===t&&e.y===n}))}};return Object(Et.jsxs)(kt.Container,{children:[!!n.length&&Object(Et.jsx)(kt.Section,{size:"large",className:"map-table",children:Object(Et.jsxs)(kt.Table,{basic:"very",children:[Object(Et.jsx)(kt.Table.Header,{children:Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsx)(kt.Table.HeaderCell,{children:"Name"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:"Coordinates"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:"Permissions"})]})}),Object(Et.jsx)(kt.Table.Body,{children:n.map((function(e,n){var a,r=!!(null===(a=s(t||[])(e.x,e.y))||void 0===a?void 0:a.isUpdateAuthorized);return Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsxs)(kt.Table.Cell,{children:["Parcel ",n]}),Object(Et.jsxs)(kt.Table.Cell,{children:[e.x,", ",e.y]}),Object(Et.jsx)(kt.Table.Cell,{className:r?"":"permission-not-granted",children:t.length?r?"Granted":"Not granted":""})]},n)}))})]})}),Object(Et.jsx)(kt.Container,{children:Object(Et.jsx)(kt.Section,{size:"large",className:"map-canvas",children:Object(Et.jsx)(kt.Atlas,{height:300,x:a.x,y:a.y,isDraggable:!1,layers:[function(e,t){return s(n)(e,t)?{color:"#ff0044",scale:1.4}:null},function(e,t){return s(n)(e,t)?{color:"#ff99",scale:1.2}:null}]})})})]})}n(1980);var Jt=n(131);n(1981);var Yt,Kt=Object(u.connect)((function(e){var t,n;return{status:null===(t=e.api.catalyst)||void 0===t?void 0:t.status,catalysts:(null===(n=e.api.catalyst)||void 0===n?void 0:n.catalysts)||[]}}),(function(e){return{onFetchCatalyst:function(){return e(Q())}}}))((function(e){var t=e.onFetchCatalyst,n=e.catalysts,a=void 0===n?[]:n,s=e.status,r=new Set(a.map((function(e){return e.entityId}))),i="success"===s&&1===r.size;return Object(Tt.useEffect)((function(){if(!i){var e=setInterval((function(){t()}),5e3);return function(){return clearInterval(e)}}}),[t,i]),Object(Et.jsxs)(kt.Container,{children:[Object(Et.jsx)(kt.HeaderMenu,{children:Object(Et.jsx)(kt.Badge,{color:i?"#20913e":kt.Color.SUNISH,children:i?"Deployed successfully to Catalyst servers":"Deploying.."})}),Object(Et.jsxs)(kt.Table,{basic:"very",children:[Object(Et.jsx)(kt.Table.Header,{children:Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsx)(kt.Table.HeaderCell,{children:"Catalyst Server"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:"Time"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:"Entity Id"})]})}),Object(Et.jsx)(kt.Table.Body,{children:(a||[]).map((function(e){var t=e.url,n=e.timestamp,a=e.entityId;return Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsx)(kt.Table.Cell,{children:t}),Object(Et.jsx)(kt.Table.Cell,{children:new Date(n).toLocaleString()}),Object(Et.jsx)(kt.Table.Cell,{children:a})]},t)}))})]})]})}));!function(e){e.Map="Map",e.Files="Files"}(Yt||(Yt={}));var Vt=Object(u.connect)((function(e){return{base:Dt(e),wallet:Object(De.getData)(e),isLandLoading:Nt(e),isConnected:Object(De.isConnected)(e),isConnecting:Object(De.isConnecting)(e),error:Ut(e),signed:!!Ct(e),isUpdateAuthorized:Wt(e),authorizations:Ht(e),isAuthorizationLoading:Bt(e),isSigning:_t(e),info:ge(e)}}),(function(e){return{onConnectWallet:function(){return e(Object(se.enableWalletRequest)(wt.ProviderType.INJECTED))},onSignContent:function(t){return e(function(e){return Object(j.action)(w,e)}(t))},onFetchFiles:function(){return e(Object(j.action)(U))},onFetchInfo:function(){return e(Object(j.action)(B))}}}))((function(e){var t=Object(Tt.useState)(Yt.Map),n=Object(N.a)(t,2),a=n[0],s=n[1],r=e.isConnected,i=e.wallet,u=e.authorizations,o=e.isUpdateAuthorized,c=e.isConnecting,p=e.onConnectWallet,l=e.onSignContent,d=e.onFetchFiles,y=e.onFetchInfo,b=e.isSigning,f=e.error,m=e.isAuthorizationLoading,j=e.signed,O=e.info,x=(null===O||void 0===O?void 0:O.baseParcel)||{x:0,y:0},v=x.x,h=x.y,g=(null===i||void 0===i?void 0:i.chainId)===Jt.ChainId.ETHEREUM_GOERLI,w="https://play.decentraland.".concat(g?"zone":"org","/?position=").concat(v,",").concat(h);return Object(Tt.useEffect)((function(){y(),d()}),[d,y]),Object(Et.jsxs)("div",{className:"Page-story-container",children:[Object(Et.jsx)(kt.Navbar,{leftMenu:Object(Et.jsx)(Et.Fragment,{}),isConnected:r,isConnecting:c,address:null===i||void 0===i?void 0:i.address}),Object(Et.jsxs)(kt.Page,{children:[Object(Et.jsxs)(kt.Container,{children:[Object(Et.jsx)(kt.HeaderMenu,{children:Object(Et.jsx)(kt.HeaderMenu.Left,{children:Object(Et.jsxs)(kt.Container,{textAlign:"center",children:[Object(Et.jsxs)(kt.Header,{size:"large",children:["Deploying ",(null===O||void 0===O?void 0:O.title)||"Untitled Scene"]}),(null===O||void 0===O?void 0:O.description)&&Object(Et.jsx)(kt.Header,{size:"medium",children:(null===O||void 0===O?void 0:O.description)||"Some description"})]})})}),Object(Et.jsxs)(kt.HeaderMenu,{children:[Object(Et.jsxs)(kt.HeaderMenu.Left,{children:[Object(Et.jsx)("div",{className:"address-header url",onClick:function(){var e;return w&&(null===(e=window.open(w,"_blank"))||void 0===e?void 0:e.focus())},children:Object(Et.jsxs)(kt.Badge,{color:kt.Color.SUMMER_RED,children:[Object(Et.jsx)(kt.Icon,{name:"point"}),v,", ",h]})}),!!r&&Object(Et.jsx)("div",{className:"address-header",children:Object(Et.jsx)(kt.Badge,{color:kt.Color.SHADOWS,children:g?"Goerli":"Mainnet"})}),Object(Et.jsx)("div",{className:"address-header",children:!!(null===i||void 0===i?void 0:i.address)&&Object(Et.jsx)(kt.Blockie,{scale:3,seed:i.address,children:Object(Et.jsx)(kt.Address,{tooltip:!0,strong:!0,value:i.address})})})]}),!j&&Object(Et.jsx)(kt.HeaderMenu.Right,{children:Object(Et.jsx)(kt.Button,{primary:!0,size:"medium",loading:c||b||r&&m,disabled:!!f||r&&!o,onClick:r?function(){return l(O.rootCID)}:p,children:r?"Sign & Deploy":"Connect Wallet"})})]})]}),!(!(null===u||void 0===u?void 0:u.length)||o)&&Object(Et.jsx)(kt.Toast,{type:kt.ToastType.ERROR,title:"Check LAND permissions",body:"You dont have permissions to update some of the coords"}),!j&&Object(Et.jsx)(kt.Tabs,{isFullscreen:!0,children:Object.values(Yt).map((function(e){return Object(Et.jsx)(kt.Tabs.Tab,{onClick:function(){return s(e)},active:a===e,children:e},e)}))}),!O&&Object(Et.jsx)(kt.Loader,{}),j&&Object(Et.jsx)(Kt,{}),!j&&a===Yt.Files&&Object(Et.jsx)(qt,{}),!j&&O&&a===Yt.Map&&Object(Et.jsx)(Gt,{authorizations:u,parcels:O.parcels,baseParcel:O.baseParcel})]}),Object(Et.jsx)(kt.Footer,{})]})})),Xt=function(e){return new URLSearchParams(document.location.search).has("wearableId")?Object(Et.jsx)(zt,Object(f.a)({},e)):Object(Et.jsx)(Vt,Object(f.a)({},e))};n(1982),n(1983);s.a.render(Object(Et.jsx)(u.Provider,{store:function(){var e=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||o.c,t=Object(d.createStorageMiddleware)({storageKey:"decentraland-linker"}),n=t.storageMiddleware,a=t.loadStorageMiddleware,s=Object(c.a)(),r=Object(l.createTransactionMiddleware)(),i=Object(p.createLogger)({collapsed:function(){return!0},predicate:function(e,t){return!1}}),u=e(Object(o.a)(s,i,n,r)),y=Object(o.d)(ee,u);return s.run(ne.a.mark((function e(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.all)([Fe(),Ce(),nt(),dt(),xt()]);case 2:case"end":return e.stop()}}),e)}))),a(y),y}(),children:Object(Et.jsx)(i.a,{children:Object(Et.jsx)(Xt,{})})}),document.getElementById("root"))},838: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"}]}')},839: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"}]}')},944:function(e,t){},961:function(e,t){},998:function(e,t){}},[[1985,1,2]]]);
|
|
2
|
+
//# sourceMappingURL=main.9ce0f832.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["modules/land/actions.ts","modules/land/reducer.ts","modules/signature/actions.ts","modules/signature/reducer.ts","modules/authorization/actions.ts","modules/authorization/reducer.ts","modules/server/actions.ts","modules/server/reducer.ts","reducer.ts","config.ts","contracts.ts","modules/land/utils.ts","modules/server/selectors.ts","modules/land/sagas.ts","modules/wallet/sagas.ts","modules/server/utils.ts","modules/signature/sagas.ts","modules/authorization/sagas.ts","modules/server/sagas.ts","modules/signature/selectors.ts","components/Error.tsx","components/RenderWalletData/RenderWalletData.tsx","components/IdentityPage/IdentityPage.container.tsx","components/Files/Files.tsx","components/IdentityPage/index.ts","components/IdentityPage/IdentityPage.tsx","modules/land/selectors.ts","modules/authorization/selectors.ts","components/Files/Files.container.tsx","components/Files/index.ts","components/Map/index.tsx","components/DeploySuccess/DeploySuccess.container.tsx","components/LinkerPage/LinkerPage.tsx","components/DeploySuccess/DeploySuccess.tsx","components/LinkerPage/LinkerPage.container.tsx","components/LinkerPage/index.ts","components/Root.tsx","index.tsx","store.ts","sagas.ts"],"names":["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","CREATE_IDENTITY_REQUEST","CREATE_IDENTITY_SUCCESS","CREATE_IDENTITY_FAILURE","createIdentitySuccess","identity","FETCH_AUTHORIZATIONS_REQUEST","FETCH_AUTHORIZATIONS_SUCCESS","FETCH_AUTHORIZATIONS_FAILURE","fetchAuthorizationsSuccess","authorizations","fetchAuthorizationsFailure","FETCH_FILES_REQUEST","FETCH_FILES_SUCCESS","FETCH_FILES_FAILURE","FETCH_INFO_REQUEST","FETCH_INFO_SUCCESS","FETCH_INFO_FAILURE","FETCH_CATALYST_REQUEST","FETCH_CATALYST_SUCCESS","FETCH_CATALYST_FAILURE","fetchFilesSuccess","files","fetchInfoSuccess","info","fetchInfoFailure","fetchCatalystRequest","undefined","catalyst","parseCoords","query","map","c","split","x","y","parseInt","rootReducer","combineReducers","wallet","transaction","state","type","loadingReducer","payload","signature","authorization","api","catalysts","length","baseParcel","parcels","rootCID","isTestnet","window","ethereum","chainId","getChainId","ChainId","ETHEREUM_MAINNET","ETHEREUM_GOERLI","contractInstances","getLandContract","landRegistry","a","getConnectedProvider","provider","address","Contract","LANDRegistry","Web3Provider","getSigner","getEstateContract","estateRegistry","estate","EstateRegistry","coordsToString","getFiles","getInfo","landSaga","handleFetchLandRequest","handleConnectWalletSuccess","takeEvery","CONNECT_WALLET_SUCCESS","select","call","decodeLandData","version","name","description","put","message","charAt","CSV","cellDelimiter","ipns","Error","walletSaga","fullWalletSaga","handleWallet","baseWalletSaga","createWalletSaga","CHAIN_ID","all","CHANGE_NETWORK","CHANGE_ACCOUNT","location","reload","closeServer","ok","fetch","JSON","stringify","postDeploy","method","headers","body","getFilesRequest","json","getInfoRequest","getCatalystsPointer","signatureSaga","handleSignContentRequest","handleSignContentSuccess","handleCreateIdentityRequest","handleCreateIdentitySuccess","takeLatest","dataToSign","toUtf8Bytes","web3provider","signer","getAddress","addr","send","hexlify","toLowerCase","signedMessage","_action","createIdentity","responseType","authorizationSaga","handleFetchAuthorizationsRequest","take","qs","URLSearchParams","document","search","get","isUpdateAuthorized","assetIds","Map","pAuthorizations","parcel","pAuthorization","Promise","resolve","reject","then","assetId","set","catch","push","f","parcelAuthorizations","notAllowedAuthorizations","filter","allowedAuthorizations","pEstateAuthorizations","estateAuthorizations","owner","apiSaga","handleFetchFilesRequest","handleFetchInfoRequest","handleFetchCatalystRequest","value","getState","getData","createSelector","isLoading","React","memo","children","style","color","RenderWalletData","isConnected","isConnecting","onConnectWallet","scale","seed","tooltip","strong","join","primary","onClick","disabled","Filter","IdentityPage","connect","getWallet","signed","getSignature","isSigning","isSigningTx","dispatch","enableWalletRequest","ProviderType","INJECTED","onRequestIdentity","props","className","e","preventDefault","getError","every","Files","useState","Size","setFilter","useMemo","sort","b","size","basic","Header","Row","HeaderCell","text","direction","Menu","Object","values","Item","Body","index","Cell","Number","toFixed","LinkScenePage","find","coords","s","isAuthorized","height","isDraggable","layers","Tab","status","onFetchCatalyst","entityIds","Set","entityId","deployedToAll","useEffect","interval","setInterval","clearInterval","Color","SUNISH","url","timestamp","Date","toLocaleString","LinkerPage","base","getLand","isLandLoading","getLandError","getAuthorizations","isAuthorizationLoading","onSignContent","cid","signContentRequest","onFetchFiles","onFetchInfo","tab","setTab","isTestNet","deployUrl","leftMenu","Left","textAlign","title","open","focus","SUMMER_RED","SHADOWS","Right","ToastType","ERROR","isFullscreen","t","active","Root","has","ReactDOM","render","store","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStorageMiddleware","storageKey","storageMiddleware","loadStorageMiddleware","sagasMiddleware","createSagasMiddleware","transactionMiddleware","createTransactionMiddleware","loggerMiddleware","createLogger","collapsed","predicate","_","enhancer","applyMiddleware","createStore","run","initStore","getElementById"],"mappings":"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","file":"static/js/main.9ce0f832.chunk.js","sourcesContent":["import { action } from 'typesafe-actions'\nimport { LANDMeta } 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 = () => action(FETCH_LAND_REQUEST)\nexport const fetchLandSuccess = (land: LANDMeta) => action(FETCH_LAND_SUCCESS, { land })\nexport const fetchLandFailure = (error: string) => 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 { loadingReducer, LoadingState } 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 = FetchLandRequestAction | FetchLandSuccessAction | FetchLandFailureAction\n\nexport const landReducer = (state = INITIAL_STATE, action: LandReducerAction): 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 { AuthIdentity } from 'dcl-crypto'\nimport { 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) => action(SIGN_CONTENT_REQUEST, cid)\nexport const signContentSuccess = (signature: string) => action(SIGN_CONTENT_SUCCESS, { signature })\nexport const signContentFailure = (error: string) => 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\nexport const CREATE_IDENTITY_REQUEST = '[Request] Create Identity'\nexport const CREATE_IDENTITY_SUCCESS = '[Success] Create Identity'\nexport const CREATE_IDENTITY_FAILURE = '[Failure] Create Identity'\n\nexport const createIdentityRequest = () => action(CREATE_IDENTITY_REQUEST, {})\nexport const createIdentitySuccess = (identity: AuthIdentity) => action(CREATE_IDENTITY_SUCCESS, { identity })\nexport const createIdentityFailure = (error: string) => action(CREATE_IDENTITY_FAILURE, { error })\n\nexport type CreateIdentityRequestAction = ReturnType<typeof createIdentityRequest>\nexport type CreateIdentitySuccessAction = ReturnType<typeof createIdentitySuccess>\nexport type CreateIdentityFailureAction = ReturnType<typeof createIdentityFailure>\n","import { AuthIdentity } from 'dcl-crypto'\nimport { loadingReducer, LoadingState } 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 CreateIdentityRequestAction,\n CreateIdentitySuccessAction,\n CreateIdentityFailureAction,\n CREATE_IDENTITY_REQUEST,\n CREATE_IDENTITY_SUCCESS,\n CREATE_IDENTITY_FAILURE\n} from './actions'\n\nexport type SignatureState = {\n data: any\n identity: AuthIdentity | null\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: SignatureState = {\n data: '',\n loading: [],\n identity: null,\n error: null\n}\n\nexport type SignatureReducerAction =\n | SignContentRequestAction\n | SignContentSuccessAction\n | SignContentFailureAction\n | CreateIdentityRequestAction\n | CreateIdentitySuccessAction\n | CreateIdentityFailureAction\n\nexport const signatureReducer = (state = INITIAL_STATE, action: SignatureReducerAction): 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 ...state,\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 case CREATE_IDENTITY_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case CREATE_IDENTITY_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n identity: action.payload.identity,\n error: null\n }\n case CREATE_IDENTITY_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 = '[Request] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_SUCCESS = '[Success] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_FAILURE = '[Failure] Fetch LAND Authorizations'\n\nexport const fetchAuthorizationsRequest = (owner: string) => action(FETCH_AUTHORIZATIONS_REQUEST, { owner })\n\nexport const fetchAuthorizationsSuccess = (authorizations: Authorization[]) =>\n action(FETCH_AUTHORIZATIONS_SUCCESS, { authorizations })\n\nexport const fetchAuthorizationsFailure = (error: string) => action(FETCH_AUTHORIZATIONS_FAILURE, { error })\n\nexport type FetchAuthorizationsRequestAction = ReturnType<typeof fetchAuthorizationsRequest>\nexport type FetchAuthorizationsSuccessAction = ReturnType<typeof fetchAuthorizationsSuccess>\nexport type FetchAuthorizationsFailureAction = ReturnType<typeof fetchAuthorizationsFailure>\n","import { loadingReducer, LoadingState } 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 = (state = INITIAL_STATE, action: AuthorizationReducerAction): 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 { action } from 'typesafe-actions'\nimport { CatalystResponse, FileSize, Info } from './reducer'\n\nexport const FETCH_FILES_REQUEST = '[Request] Fetch Files'\nexport const FETCH_FILES_SUCCESS = '[Success] Fetch Files'\nexport const FETCH_FILES_FAILURE = '[Failure] Fetch Files'\n\nexport const FETCH_INFO_REQUEST = '[Request] Fetch info'\nexport const FETCH_INFO_SUCCESS = '[Success] Fetch info'\nexport const FETCH_INFO_FAILURE = '[Failure] Fetch info'\n\nexport const FETCH_CATALYST_REQUEST = '[Request] Fetch catalyst'\nexport const FETCH_CATALYST_SUCCESS = '[Success] Fetch catalyst'\nexport const FETCH_CATALYST_FAILURE = '[Failure] Fetch catalyst'\n\nexport const fetchFilesRequest = () => action(FETCH_FILES_REQUEST)\nexport const fetchFilesSuccess = (files: FileSize[]) => action(FETCH_FILES_SUCCESS, { files })\nexport const fetchFilesFailure = (error: string) => action(FETCH_FILES_FAILURE, { error })\n\nexport const fetchInfoRequest = () => action(FETCH_INFO_REQUEST)\nexport const fetchInfoSuccess = (info: Info) => action(FETCH_INFO_SUCCESS, { info })\nexport const fetchInfoFailure = (error: string) => action(FETCH_INFO_FAILURE, { error })\n\nexport const fetchCatalystRequest = () => action(FETCH_CATALYST_REQUEST)\nexport const fetchCatalystSuccess = (payload: CatalystResponse) => action(FETCH_CATALYST_SUCCESS, payload)\nexport const fetchCatalystFailure = (error: string) => action(FETCH_CATALYST_FAILURE, { error })\n\nexport type FetchFilesRequestAction = ReturnType<typeof fetchFilesRequest>\nexport type FetchFilesSuccessAction = ReturnType<typeof fetchFilesSuccess>\nexport type FetchFilesFailureAction = ReturnType<typeof fetchFilesFailure>\n\nexport type FetchInfoRequestAction = ReturnType<typeof fetchInfoRequest>\nexport type FetchInfoSuccessAction = ReturnType<typeof fetchInfoSuccess>\nexport type FetchInfoFailureAction = ReturnType<typeof fetchInfoFailure>\n\nexport type FetchCatalystRequest = ReturnType<typeof fetchCatalystRequest>\nexport type FetchCatalystSuccess = ReturnType<typeof fetchCatalystSuccess>\nexport type FetchCatalystFailure = ReturnType<typeof fetchCatalystFailure>\n","import { loadingReducer, LoadingState } from 'decentraland-dapps/dist/modules/loading/reducer'\nimport { Coords } from '../land/types'\n\nimport {\n FetchFilesRequestAction,\n FetchFilesSuccessAction,\n FetchFilesFailureAction,\n FETCH_FILES_REQUEST,\n FETCH_FILES_SUCCESS,\n FETCH_FILES_FAILURE,\n FETCH_INFO_REQUEST,\n FETCH_INFO_FAILURE,\n FETCH_INFO_SUCCESS,\n FetchInfoRequestAction,\n FetchInfoSuccessAction,\n FetchInfoFailureAction,\n FetchCatalystFailure,\n FetchCatalystRequest,\n FetchCatalystSuccess,\n FETCH_CATALYST_REQUEST,\n FETCH_CATALYST_SUCCESS,\n FETCH_CATALYST_FAILURE\n} from './actions'\n\nexport type Info = {\n baseParcel: Coords\n parcels: Coords[]\n rootCID: string\n debug: boolean\n estateRegistry?: string\n landRegistry?: string\n title?: string\n description?: string\n}\n\nexport type FileSize = {\n name: string\n size: string\n}\n\nexport type CatalystResponse = {\n catalysts: {\n url: string\n timestamp: number\n entityId: string\n }[]\n status: 'deploying' | 'success' | 'closed'\n}\n\nexport type ApiState = {\n files: FileSize[]\n loading: LoadingState\n error: string | null\n catalyst: CatalystResponse | undefined\n info: Info | undefined\n}\n\nconst INITIAL_STATE: ApiState = {\n info: undefined,\n files: [],\n loading: [],\n error: null,\n catalyst: undefined\n}\n\nexport type ApiReducerAction =\n | FetchFilesRequestAction\n | FetchFilesSuccessAction\n | FetchFilesFailureAction\n | FetchInfoRequestAction\n | FetchInfoSuccessAction\n | FetchInfoFailureAction\n | FetchCatalystFailure\n | FetchCatalystRequest\n | FetchCatalystSuccess\n\nexport const apiReducer = (state = INITIAL_STATE, action: ApiReducerAction): ApiState => {\n switch (action.type) {\n case FETCH_FILES_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_FILES_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n files: action.payload.files,\n error: null\n }\n case FETCH_FILES_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error,\n files: []\n }\n case FETCH_CATALYST_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_CATALYST_SUCCESS:\n if (!action.payload.catalysts.length) {\n return state\n }\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n catalyst: action.payload,\n error: null\n }\n case FETCH_CATALYST_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error,\n catalyst: undefined\n }\n case FETCH_INFO_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_INFO_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n info: {\n ...action.payload.info,\n baseParcel: parseCoords((action.payload.info.baseParcel as any) as string)[0],\n parcels: parseCoords((action.payload.info.parcels as any) as string),\n rootCID: action.payload.info.rootCID || 'QmPjpPyibbryTCi75zzcdeuPUBcujtEqj43shwKBAdMojy'\n },\n error: null\n }\n case FETCH_INFO_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error,\n info: undefined\n }\n default: {\n return state\n }\n }\n}\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","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 { apiReducer as api } from './modules/server/reducer'\nimport { RootState } from './types'\n\nexport const rootReducer = combineReducers<RootState>({\n wallet,\n transaction,\n land,\n signature,\n authorization,\n api\n})\n","import { ChainId } from '@dcl/builder-client/node_modules/@dcl/schemas'\n\nexport function isTestnet() {\n return (window?.ethereum as any)?.chainId !== '0x1'\n}\n\nexport function getChainId() {\n return (window?.ethereum as any)?.chainId === '0x1' ? ChainId.ETHEREUM_MAINNET : ChainId.ETHEREUM_GOERLI\n}\n\nexport function isDevelopment(): boolean {\n return false\n}\n","import { Contract } from '@ethersproject/contracts'\nimport { getConnectedProvider } from 'decentraland-dapps/dist/lib/eth'\nimport { Web3Provider } from '@ethersproject/providers'\n\nimport * as EstateRegistry from './abis/EstateRegistry.json'\nimport * as LANDRegistry from './abis/LANDRegistry.json'\nimport { isTestnet } from './config'\n\nconst contractInstances: {\n land?: Contract\n estate?: Contract\n} = {}\n\nexport async function getLandContract(landRegistry?: string) {\n if (!contractInstances.land) {\n const provider = await getConnectedProvider()\n if (provider) {\n const address =\n landRegistry ||\n (isTestnet() ? '0x25b6B4bac4aDB582a0ABd475439dA6730777Fbf7' : '0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d')\n contractInstances.land = new Contract(address, LANDRegistry.abi, new Web3Provider(provider).getSigner())\n }\n }\n\n return contractInstances.land\n}\n\nexport async function getEstateContract(estateRegistry?: string) {\n if (!contractInstances.estate) {\n const provider = await getConnectedProvider()\n if (provider) {\n const address =\n estateRegistry ||\n (isTestnet() ? '0xC9A46712E6913c24d15b46fF12221a79c4e251DC' : '0x959e104e1a4db6317fa58f8295f586e1a978c297')\n contractInstances.estate = new Contract(address, EstateRegistry.abi, new Web3Provider(provider).getSigner())\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 { RootState } from '../../types'\n\nexport const getFiles = (state: RootState) => state.api.files\nexport const isLoading = (state: RootState) => !!state.api.loading.length\nexport const getError = (state: RootState) => state.api.error\nexport const getInfo = (state: RootState) => state.api.info\n","import { call, put, select, 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 { getLandContract } from '../../contracts'\nimport { FETCH_LAND_REQUEST, fetchLandSuccess, fetchLandFailure, fetchLandRequest } from './actions'\nimport { getEmptyLandData } from './utils'\nimport { Contract } from '@ethersproject/contracts'\nimport { LANDMeta } from './types'\nimport { Info } from '../server/reducer'\nimport { getInfo } from '../server/selectors'\n\nexport function* landSaga() {\n yield takeEvery(FETCH_LAND_REQUEST, handleFetchLandRequest)\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n}\n\nfunction* handleFetchLandRequest() {\n const info: Info = yield select(getInfo)\n const LANDRegistry: Contract = yield call(() => getLandContract(info.landRegistry))\n try {\n const { x, y } = info.baseParcel\n const data: string = yield call(() => LANDRegistry['landData'](x, y))\n const land: LANDMeta = data ? yield call(() => decodeLandData(data)) : 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())\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(`Unknown version when trying to decode land data: \"${data}\"`)\n }\n}\n","import { takeEvery, all, call } from 'redux-saga/effects'\nimport { createWalletSaga } from 'decentraland-dapps/dist/modules/wallet/sagas'\nimport { CHANGE_NETWORK, CHANGE_ACCOUNT } from 'decentraland-dapps/dist/modules/wallet/actions'\n\nimport { getChainId } from '../../config'\n\nexport function* walletSaga() {\n const baseWalletSaga = createWalletSaga({\n CHAIN_ID: getChainId()\n })\n yield all([baseWalletSaga(), fullWalletSaga()])\n}\n\nfunction* fullWalletSaga() {\n yield takeEvery(CHANGE_NETWORK, handleWallet)\n yield takeEvery(CHANGE_ACCOUNT, handleWallet)\n}\n\nfunction* handleWallet() {\n yield call(() => window.location.reload())\n}\n","import { ChainId } from '@dcl/schemas'\nimport { AuthIdentity } from 'dcl-crypto'\n\nexport type DeployScene =\n | {\n address: string\n signature: string\n chainId: ChainId\n }\n | Record<string, never>\n\nexport type LinkerResponseIdentity = {\n responseType: 'identity'\n payload: {\n address: string\n chainId: ChainId\n identity: AuthIdentity\n }\n}\n\nexport async function closeServer(ok: boolean, message: LinkerResponseIdentity): Promise<void> {\n await fetch(`/api/close?ok=${ok}&reason=${JSON.stringify(message)}`)\n}\n\nexport async function postDeploy(payload: DeployScene): Promise<void> {\n await fetch('/api/deploy', {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload)\n })\n}\n\nexport async function getFilesRequest(): Promise<void> {\n return (await fetch('/api/files')).json()\n}\n\nexport async function getInfoRequest(): Promise<void> {\n return (await fetch('/api/info')).json()\n}\n\nexport async function getCatalystsPointer(): Promise<void> {\n return (await fetch('/api/catalyst-pointers')).json()\n}\n","import { call, put, takeLatest, takeEvery, select } from 'redux-saga/effects'\nimport { getConnectedProvider } from 'decentraland-dapps/dist/lib/eth'\nimport { getAddress, getChainId } from 'decentraland-dapps/dist/modules/wallet/selectors'\nimport { Web3Provider } from '@ethersproject/providers'\nimport { toUtf8Bytes } from '@ethersproject/strings'\nimport { ChainId } from '@dcl/schemas'\nimport { hexlify } from '@ethersproject/bytes'\nimport { closeServer, postDeploy } from '../server/utils'\nimport {\n SIGN_CONTENT_REQUEST,\n SIGN_CONTENT_SUCCESS,\n SignContentRequestAction,\n signContentSuccess,\n signContentFailure,\n SignContentSuccessAction,\n CREATE_IDENTITY_REQUEST,\n createIdentitySuccess,\n createIdentityFailure,\n CREATE_IDENTITY_SUCCESS,\n CreateIdentitySuccessAction\n} from './actions'\nimport { Provider } from 'decentraland-connect/dist'\nimport { AuthIdentity } from 'dcl-crypto'\nimport { createIdentity } from '@dcl/builder-client'\nimport { fetchCatalystRequest } from '../server/actions'\n\nexport function* signatureSaga() {\n yield takeLatest(SIGN_CONTENT_REQUEST, handleSignContentRequest)\n yield takeEvery(SIGN_CONTENT_SUCCESS, handleSignContentSuccess)\n\n yield takeLatest(CREATE_IDENTITY_REQUEST, handleCreateIdentityRequest)\n yield takeLatest(CREATE_IDENTITY_SUCCESS, handleCreateIdentitySuccess)\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 chainId: ChainId = yield select(getChainId)\n const { signature } = action.payload\n\n try {\n yield call(postDeploy, { signature, address, chainId })\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n\nfunction* handleCreateIdentityRequest(_action: SignContentRequestAction) {\n try {\n const provider: Provider = yield call(() => getConnectedProvider())\n const web3provider = new Web3Provider(provider)\n const signer = web3provider.getSigner()\n const identity: AuthIdentity = yield call(() => createIdentity(signer, 1000))\n yield put(createIdentitySuccess(identity))\n yield put(fetchCatalystRequest())\n } catch (error) {\n yield put(createIdentityFailure((error as Error).message))\n }\n}\n\nfunction* handleCreateIdentitySuccess(action: CreateIdentitySuccessAction) {\n const { identity } = action.payload\n const address: string = yield select(getAddress)\n const chainId: ChainId = yield select(getChainId)\n\n try {\n yield call(closeServer, true, {\n responseType: 'identity',\n payload: { identity, address, chainId }\n })\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n","import { call, put, takeEvery, select, take } 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 { 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'\nimport { Info } from '../server/reducer'\nimport { FETCH_INFO_SUCCESS } from '../server/actions'\nimport { getInfo } from '../server/selectors'\n\nexport function* authorizationSaga() {\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n yield takeEvery(FETCH_AUTHORIZATIONS_REQUEST, handleFetchAuthorizationsRequest)\n}\n\nfunction* handleFetchAuthorizationsRequest() {\n const info: Info = yield select(getInfo)\n\n if (!info) {\n yield take(FETCH_INFO_SUCCESS)\n }\n\n const qs = new URLSearchParams(document.location.search)\n\n const skipValidations = qs.get('skipValidations')\n if (skipValidations === 'true') {\n try {\n const { parcels } = info\n yield put(\n fetchAuthorizationsSuccess(\n parcels.map(({ x, y }) => ({\n x,\n y,\n isUpdateAuthorized: true\n }))\n )\n )\n } catch (error) {\n yield put(fetchAuthorizationsFailure((error as Error).message))\n }\n } else {\n const { parcels, landRegistry, estateRegistry } = info\n const LANDRegistry: Contract = yield call(() => getLandContract(landRegistry))\n const EstateRegistry: Contract = yield call(() => getEstateContract(estateRegistry))\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 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(() => Promise.all(pAuthorizations))\n\n // If not authorized check permissions on estate\n const notAllowedAuthorizations = parcelAuthorizations.filter(a => !a.isUpdateAuthorized)\n const allowedAuthorizations = parcelAuthorizations.filter(a => a.isUpdateAuthorized)\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((isUpdateAuthorized: any) => {\n resolve({ ...a, isUpdateAuthorized })\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(() => Promise.all(pEstateAuthorizations))\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}\n\nfunction* handleConnectWalletSuccess(): any {\n const address = yield call(() => getAddress)\n yield put(fetchAuthorizationsRequest(address))\n}\n","import { takeEvery, call, put } from 'redux-saga/effects'\n\nimport {\n fetchCatalystSuccess,\n fetchFilesFailure,\n fetchFilesSuccess,\n fetchInfoFailure,\n fetchInfoSuccess,\n FETCH_CATALYST_REQUEST,\n FETCH_FILES_REQUEST,\n FETCH_INFO_REQUEST\n} from './actions'\nimport { CatalystResponse, FileSize, Info } from './reducer'\nimport { getCatalystsPointer, getFilesRequest, getInfoRequest } from './utils'\n\nexport function* apiSaga() {\n yield takeEvery(FETCH_FILES_REQUEST, handleFetchFilesRequest)\n yield takeEvery(FETCH_INFO_REQUEST, handleFetchInfoRequest)\n yield takeEvery(FETCH_CATALYST_REQUEST, handleFetchCatalystRequest)\n}\n\nfunction* handleFetchFilesRequest() {\n try {\n const files: FileSize[] = yield call(getFilesRequest)\n yield put(fetchFilesSuccess(files))\n } catch (e) {\n yield put(fetchFilesFailure((e as any).message))\n }\n}\n\nfunction* handleFetchInfoRequest() {\n try {\n const info: Info = yield call(getInfoRequest)\n yield put(fetchInfoSuccess(info))\n } catch (e) {\n yield put(fetchInfoFailure((e as any).message))\n }\n}\n\nfunction* handleFetchCatalystRequest() {\n try {\n const value: CatalystResponse = yield call(getCatalystsPointer)\n yield put(fetchCatalystSuccess(value))\n } catch (e) {\n yield put(fetchInfoFailure((e as any).message))\n }\n}\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(getState, state => state.loading.length > 0)\nexport const getError = createSelector(getState, state => state.error)\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 { Props } from './types'\nimport { Blockie, Address, Button } from 'decentraland-ui'\nimport { coordsToString } from '../../modules/land/utils'\nimport Error from '../Error'\n\nexport default function RenderWalletData({\n isConnected,\n isConnecting,\n wallet,\n authorizations,\n isUpdateAuthorized,\n onConnectWallet\n}: Props) {\n function getFormattedUnauthorized() {\n return (authorizations || [])\n .filter(a => !a.isUpdateAuthorized)\n .map(a => `\"${coordsToString(a)}\"`)\n .join(', ')\n }\n\n if (isConnected && wallet.address) {\n return (\n <>\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?.length && !isUpdateAuthorized ? (\n <Error>\n {`You don't have permissions to update The following LANDs that are part of the scene: ${getFormattedUnauthorized()}`}\n </Error>\n ) : null}\n </>\n )\n }\n\n return (\n <>\n {isConnecting ? null : <p>Could not find any wallet</p>}\n <p>\n <Button primary onClick={onConnectWallet} loading={isConnecting} disabled={isConnecting}>\n Reconnect \n </Button>\n </p>\n </>\n )\n}\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 { getData as getWallet, isConnected, isConnecting } from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport { getData as getSignature, isLoading as isSigningTx } from '../../modules/signature/selectors'\n\nimport { createIdentityRequest } from '../../modules/signature/actions'\nimport { RootState } from '../../types'\nimport { MapStateProps, MapDispatchProps } from './types'\n\nimport IdentityPage from './IdentityPage'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n wallet: getWallet(state)!,\n isConnected: isConnected(state),\n isConnecting: isConnecting(state),\n signed: !!getSignature(state),\n isSigning: isSigningTx(state)\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: () => dispatch(enableWalletRequest(ProviderType.INJECTED)),\n onRequestIdentity: () => dispatch(createIdentityRequest())\n})\n\nexport default connect(mapState, mapDispatch)(IdentityPage)\n","import './style.css'\nimport { Container, Dropdown, Table } from 'decentraland-ui'\nimport { Props } from './types'\nimport { useMemo, useState } from 'react'\nimport { FileSize } from '../../modules/server/reducer'\n\nenum Filter {\n Size = 'Size',\n Name = 'Name'\n}\n\nexport default function FilesPage({ files }: Props) {\n const [filter, setFilter] = useState<Filter>(Filter.Size)\n const value = useMemo<FileSize[]>(\n () =>\n files.sort((a, b) => {\n if (filter === Filter.Size) {\n return b.size < a.size ? -1 : 1\n }\n return a.name < b.name ? -1 : 1\n }),\n [files, filter]\n )\n\n return (\n <Container>\n <Table basic=\"very\">\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>File Name</Table.HeaderCell>\n <Table.HeaderCell>Size</Table.HeaderCell>\n <Table.HeaderCell>\n <Dropdown text={filter} direction=\"right\">\n <Dropdown.Menu>\n {Object.values(Filter).map(f => (\n <Dropdown.Item key={f} onClick={() => setFilter(f)} text={f} />\n ))}\n </Dropdown.Menu>\n </Dropdown>\n </Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {value.map(({ name, size }, index) => (\n <Table.Row key={index}>\n <Table.Cell>{name}</Table.Cell>\n <Table.Cell>{(Number(size) * 1e-6).toFixed(2)} MB </Table.Cell>\n <Table.Cell />\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </Container>\n )\n}\n","import IdentityPage from './IdentityPage.container'\nexport default IdentityPage\n","import { SyntheticEvent } from 'react'\nimport './style.css'\nimport { Header, Button, Navbar } from 'decentraland-ui'\nimport { Props } from './types'\nimport RenderWalletData from '../RenderWalletData/RenderWalletData'\nimport { isTestnet } from '../../config'\n\nexport default function IdentityPage(props: Props) {\n const { isConnected, wallet, isConnecting, onConnectWallet, isSigning, onRequestIdentity } = props\n\n const handleSignature = (e: SyntheticEvent) => {\n e.preventDefault()\n onRequestIdentity()\n }\n\n return (\n <div className=\"LinkScenePage\">\n {isTestnet() && <div className=\"warning\">Using Goerli test network</div>}\n <Navbar />\n <Header>Create an identity to sign deployments </Header>\n <RenderWalletData\n isUpdateAuthorized={true}\n isConnected={isConnected}\n isConnecting={isConnecting}\n wallet={wallet}\n onConnectWallet={onConnectWallet}\n />\n <form>\n <div>\n <Button primary onClick={handleSignature} disabled={!isConnected} loading={isSigning}>\n Sign ephemeral wallet\n </Button>\n </div>\n </form>\n </div>\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(getState, 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(getState, state => state.loading.length > 0)\n\nexport const getError = createSelector(getState, state => state.error)\n\nexport const isUpdateAuthorized = createSelector(getData, authorizations => {\n if (!authorizations?.length) {\n return\n }\n\n return authorizations.every((a: Authorization) => a.isUpdateAuthorized)\n})\n","import { connect } from 'react-redux'\nimport { RootState } from '../../types'\nimport { MapStateProps } from './types'\n\nimport FilesPage from './Files'\nimport { getFiles } from '../../modules/server/selectors'\n\nconst mapState = (state: RootState): MapStateProps => {\n return { files: getFiles(state) }\n}\n\nexport default connect(mapState)(FilesPage)\n","import Files from './Files.container'\nexport default Files\n","import './style.css'\nimport { Atlas, Container, Coord, Layer, Section, Table } from 'decentraland-ui'\nimport { Props } from './types'\n\nexport default function LinkScenePage({ authorizations, parcels, baseParcel }: Props) {\n const find = <T extends Coord>(coords: T[]) => (x: number, y: number): T | undefined =>\n coords.find(s => s.x === x && s.y === y)\n\n const selectedFillLayer: Layer = (x: number, y: number) => {\n return find(parcels)(x, y) ? { color: '#ff99', scale: 1.2 } : null\n }\n\n const selectedStroke: Layer = (x: number, y: number) => {\n return find(parcels)(x, y) ? { color: '#ff0044', scale: 1.4 } : null\n }\n\n return (\n <Container>\n {!!parcels.length && (\n <Section size=\"large\" className=\"map-table\">\n <Table basic=\"very\">\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>Name</Table.HeaderCell>\n <Table.HeaderCell>Coordinates</Table.HeaderCell>\n <Table.HeaderCell>Permissions</Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {parcels.map((coords, index) => {\n const isAuthorized = !!find(authorizations || [])(coords.x, coords.y)?.isUpdateAuthorized\n return (\n <Table.Row key={index}>\n <Table.Cell>Parcel {index}</Table.Cell>\n <Table.Cell>\n {coords.x}, {coords.y}\n </Table.Cell>\n <Table.Cell className={!isAuthorized ? 'permission-not-granted' : ''}>\n {authorizations.length ? (isAuthorized ? 'Granted' : 'Not granted') : ''}\n </Table.Cell>\n </Table.Row>\n )\n })}\n </Table.Body>\n </Table>\n </Section>\n )}\n <Container>\n <Section size=\"large\" className=\"map-canvas\">\n <Atlas\n height={300}\n x={baseParcel.x}\n y={baseParcel.y}\n isDraggable={false}\n layers={[selectedStroke, selectedFillLayer]}\n />\n </Section>\n </Container>\n </Container>\n )\n}\n","import { AnyAction, Dispatch } from 'redux'\nimport { connect } from 'react-redux'\nimport { RootState } from '../../types'\nimport { MapStateProps, MapDispatchProps } from './types'\n\nimport DeploySuccess from './DeploySuccess'\nimport { fetchCatalystRequest } from '../../modules/server/actions'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n status: state.api.catalyst?.status,\n catalysts: state.api.catalyst?.catalysts || []\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => {\n return {\n onFetchCatalyst: () => dispatch(fetchCatalystRequest())\n }\n}\n\nexport default connect(mapState, mapDispatch)(DeploySuccess)\n","import {\n Navbar,\n Tabs,\n Footer,\n Page,\n Header,\n Icon,\n Button,\n Container,\n HeaderMenu,\n Color,\n Badge,\n Address,\n Blockie,\n Toast,\n ToastType,\n Loader\n} from 'decentraland-ui'\nimport { Props } from './types'\nimport { useEffect, useState } from 'react'\nimport Files from '../Files'\nimport Map from '../Map'\n\nimport './style.css'\nimport { ChainId } from '@dcl/schemas'\nimport DeploySuccess from '../DeploySuccess/DeploySuccess.container'\n\nenum Tab {\n Map = 'Map',\n Files = 'Files'\n}\n\nexport default function LinkScenePage(props: Props) {\n const [tab, setTab] = useState<Tab>(Tab.Map)\n const {\n isConnected,\n wallet,\n authorizations,\n isUpdateAuthorized,\n isConnecting,\n onConnectWallet,\n onSignContent,\n onFetchFiles,\n onFetchInfo,\n isSigning,\n error,\n isAuthorizationLoading,\n signed,\n info\n } = props\n\n const { x, y } = info?.baseParcel || { x: 0, y: 0 }\n const isTestNet = wallet?.chainId === ChainId.ETHEREUM_GOERLI\n const networkName = isTestNet ? 'zone' : 'org'\n const deployUrl = `https://play.decentraland.${networkName}/?position=${x},${y}`\n\n useEffect(() => {\n onFetchInfo()\n onFetchFiles()\n }, [onFetchFiles, onFetchInfo])\n\n return (\n <div className=\"Page-story-container\">\n <Navbar leftMenu={<></>} isConnected={isConnected} isConnecting={isConnecting} address={wallet?.address} />\n <Page>\n <Container>\n <HeaderMenu>\n <HeaderMenu.Left>\n <Container textAlign=\"center\">\n <Header size=\"large\">Deploying {info?.title || 'Untitled Scene'}</Header>\n {info?.description && <Header size=\"medium\">{info?.description || 'Some description'}</Header>}\n </Container>\n </HeaderMenu.Left>\n </HeaderMenu>\n <HeaderMenu>\n <HeaderMenu.Left>\n <div\n className=\"address-header url\"\n onClick={() => deployUrl && window.open(deployUrl!, '_blank')?.focus()}\n >\n <Badge color={Color.SUMMER_RED}>\n <Icon name=\"point\" />\n {x}, {y}\n </Badge>\n </div>\n {!!isConnected && (\n <div className=\"address-header\">\n <Badge color={Color.SHADOWS}>{isTestNet ? 'Goerli' : 'Mainnet'}</Badge>\n </div>\n )}\n <div className=\"address-header\">\n {!!wallet?.address && (\n <Blockie scale={3} seed={wallet.address}>\n <Address tooltip strong value={wallet.address} />\n </Blockie>\n )}\n </div>\n </HeaderMenu.Left>\n {!signed && (\n <HeaderMenu.Right>\n <Button\n primary\n size=\"medium\"\n loading={isConnecting || isSigning || (isConnected && isAuthorizationLoading)}\n disabled={!!error || (isConnected && !isUpdateAuthorized)}\n onClick={isConnected ? () => onSignContent(info!.rootCID) : onConnectWallet}\n >\n {isConnected ? 'Sign & Deploy' : 'Connect Wallet'}\n </Button>\n </HeaderMenu.Right>\n )}\n </HeaderMenu>\n </Container>\n {!!(authorizations?.length && !isUpdateAuthorized) && (\n <Toast\n type={ToastType.ERROR}\n title=\"Check LAND permissions\"\n body=\"You dont have permissions to update some of the coords\"\n />\n )}\n {!signed && (\n <Tabs isFullscreen>\n {Object.values(Tab).map(t => (\n <Tabs.Tab key={t} onClick={() => setTab(t)} active={tab === t}>\n {t}\n </Tabs.Tab>\n ))}\n </Tabs>\n )}\n {!info && <Loader />}\n {signed && <DeploySuccess />}\n {!signed && tab === Tab.Files && <Files />}\n {!signed && info && tab === Tab.Map && (\n <Map authorizations={authorizations} parcels={info!.parcels} baseParcel={info!.baseParcel} />\n )}\n </Page>\n <Footer />\n </div>\n )\n}\n","import { Badge, Color, Container, HeaderMenu, Table } from 'decentraland-ui'\nimport { Props } from './types'\nimport { useEffect } from 'react'\n\nimport './style.css'\n\nexport default function DeploySuccess({ onFetchCatalyst, catalysts = [], status }: Props) {\n const entityIds = new Set(catalysts.map(c => c.entityId))\n const deployedToAll = status === 'success' && entityIds.size === 1\n\n useEffect(() => {\n if (deployedToAll) return\n const interval = setInterval(() => {\n onFetchCatalyst()\n }, 5_000)\n return () => clearInterval(interval)\n }, [onFetchCatalyst, deployedToAll])\n\n return (\n <Container>\n <HeaderMenu>\n <Badge color={deployedToAll ? '#20913e' : Color.SUNISH}>\n {deployedToAll ? 'Deployed successfully to Catalyst servers' : 'Deploying..'}\n </Badge>\n </HeaderMenu>\n <Table basic=\"very\">\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>Catalyst Server</Table.HeaderCell>\n <Table.HeaderCell>Time</Table.HeaderCell>\n <Table.HeaderCell>Entity Id</Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {(catalysts || []).map(({ url, timestamp, entityId }) => (\n <Table.Row key={url}>\n <Table.Cell>{url}</Table.Cell>\n <Table.Cell>{new Date(timestamp).toLocaleString()}</Table.Cell>\n <Table.Cell>{entityId}</Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </Container>\n )\n}\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 { getData as getWallet, isConnected, isConnecting } from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport { isLoading as isLandLoading, getData as getLand, getError as getLandError } from '../../modules/land/selectors'\nimport { getData as getSignature, isLoading as isSigningTx } 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'\nimport { fetchFilesRequest, fetchInfoRequest } from '../../modules/server/actions'\nimport { getInfo } from '../../modules/server/selectors'\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 isSigning: isSigningTx(state),\n info: getInfo(state)\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: () => dispatch(enableWalletRequest(ProviderType.INJECTED)),\n onSignContent: (cid: string) => dispatch(signContentRequest(cid)),\n onFetchFiles: () => dispatch(fetchFilesRequest()),\n onFetchInfo: () => dispatch(fetchInfoRequest())\n})\n\nexport default connect(mapState, mapDispatch)(LinkerPage)\n","import LinkerPage from './LinkerPage.container'\nexport default LinkerPage\n","import IdentityPage from './IdentityPage'\nimport LinkerPage from './LinkerPage'\n\nconst Root = (props: any) => {\n const qs = new URLSearchParams(document.location.search)\n\n if (qs.has('wearableId')) {\n return <IdentityPage {...props} />\n }\n\n return <LinkerPage {...props} />\n}\n\nexport default Root\n","import ReactDOM from 'react-dom'\nimport WalletProvider from 'decentraland-dapps/dist/providers/WalletProvider'\nimport { Provider } from 'react-redux'\n\nimport { initStore } from './store'\n\nimport Root from './components/Root'\n\n// Do not move these before other imports\nimport 'decentraland-ui/lib/styles.css'\nimport 'decentraland-ui/lib/dark-theme.css'\n\n// tslint:disable-next-line: no-floating-promises\nReactDOM.render(\n <Provider store={initStore()}>\n <WalletProvider>\n <Root />\n </WalletProvider>\n </Provider>,\n document.getElementById('root')\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 = (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(sagasMiddleware, loggerMiddleware, storageMiddleware, transactionMiddleware)\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'\nimport { apiSaga } from './modules/server/sagas'\n\nexport function rootSaga() {\n return function*() {\n yield all([walletSaga(), landSaga(), signatureSaga(), authorizationSaga(), apiSaga()])\n }\n}\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(this["webpackJsonp@dcl/linker-dapp"]=this["webpackJsonp@dcl/linker-dapp"]||[]).push([[0],{1e3:function(e,t){},1021:function(e,t){},1023:function(e,t){},1035:function(e,t){},1056:function(e,t){},1058:function(e,t){},1404:function(e,t){},1424:function(e,t){},1425:function(e,t){},1732:function(e,t,n){},1978:function(e,t,n){},1979:function(e,t,n){},1980:function(e,t,n){},1981:function(e,t,n){},1985:function(e,t,n){"use strict";n.r(t);var a=n(158),s=n.n(a),r=n(818),i=n.n(r),u=n(132),o=n(176),c=n(850),p=n(832),l=n(833),d=n(834),y=n(835),b=n(836),f=n(36),m=n(65),j=n(62),O="[Request] Fetch LAND",x="[Success] Fetch LAND",v="[Failure] Fetch LAND",h=function(e){return Object(j.action)(x,{land:e})},g={data:{},loading:[],error:null},w="[Request] Sign Content",M="[Success] Sign Content",I="[Failure] Sign Content",C=function(e){return Object(j.action)(I,{error:e})},_="[Request] Create Identity",k="[Success] Create Identity",T="[Failure] Create Identity",A=function(e){return Object(j.action)(k,{identity:e})},E={data:"",loading:[],identity:null,error:null},S="[Request] Fetch LAND Authorizations",R="[Success] Fetch LAND Authorizations",F="[Failure] Fetch LAND Authorizations",z=function(e){return Object(j.action)(R,{authorizations:e})},L=function(e){return Object(j.action)(F,{error:e})},D={data:[],loading:[],error:null},N=n(175),U="[Request] Fetch Files",P="[Success] Fetch Files",H="[Failure] Fetch Files",B="[Request] Fetch info",W="[Success] Fetch info",q="[Failure] Fetch info",G="[Request] Fetch catalyst",J="[Success] Fetch catalyst",Y="[Failure] Fetch catalyst",K=function(e){return Object(j.action)(P,{files:e})},V=function(e){return Object(j.action)(W,{info:e})},X=function(e){return Object(j.action)(q,{error:e})},Q=function(){return Object(j.action)(G)},Z={info:void 0,files:[],loading:[],error:null,catalyst:void 0};function $(e){return e?("string"===typeof e?[e]:e).map((function(e){var t=e.split(","),n=Object(N.a)(t,2),a=n[0],s=n[1];return{x:parseInt(a,10),y:parseInt(s,10)}})):[{x:0,y:0}]}var ee=Object(o.b)({wallet:y.walletReducer,transaction:b.transactionReducer,land:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case O:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t)});case x:return{loading:Object(m.loadingReducer)(e.loading,t),data:t.payload.land,error:null};case v:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error});default:return e}},signature:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:E,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case w:case _:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t)});case M:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),data:t.payload.signature,error:null});case I:case T:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error});case k:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),identity:t.payload.identity,error:null});default:return e}},authorization:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:D,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case S:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t)});case R:return{loading:Object(m.loadingReducer)(e.loading,t),data:t.payload.authorizations,error:null};case F:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error});default:return e}},api:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Z,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case U:case G:case B:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t)});case P:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),files:t.payload.files,error:null});case H:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error,files:[]});case J:return t.payload.catalysts.length?Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),catalyst:t.payload,error:null}):e;case Y:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error,catalyst:void 0});case W:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),info:Object(f.a)(Object(f.a)({},t.payload.info),{},{baseParcel:$(t.payload.info.baseParcel)[0],parcels:$(t.payload.info.parcels),rootCID:t.payload.info.rootCID||"QmPjpPyibbryTCi75zzcdeuPUBcujtEqj43shwKBAdMojy"}),error:null});case q:return Object(f.a)(Object(f.a)({},e),{},{loading:Object(m.loadingReducer)(e.loading,t),error:t.payload.error,info:void 0});default:return e}}}),te=n(1),ne=n.n(te),ae=n(26),se=n(99),re=n(837),ie=n(24),ue=n(195),oe=n(159),ce=n(484),pe=n(838),le=n(839),de=n(266);function ye(){var e,t;return"0x1"!==(null===(e=window)||void 0===e||null===(t=e.ethereum)||void 0===t?void 0:t.chainId)}function be(){var e,t;return"0x1"===(null===(e=window)||void 0===e||null===(t=e.ethereum)||void 0===t?void 0:t.chainId)?de.ChainId.ETHEREUM_MAINNET:de.ChainId.ETHEREUM_GOERLI}var fe={};function me(e){return je.apply(this,arguments)}function je(){return(je=Object(ie.a)(ne.a.mark((function e(t){var n,a;return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(fe.land){e.next=5;break}return e.next=3,Object(oe.getConnectedProvider)();case 3:(n=e.sent)&&(a=t||(ye()?"0x25b6B4bac4aDB582a0ABd475439dA6730777Fbf7":"0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d"),fe.land=new ue.b(a,le.a,new ce.a(n).getSigner()));case 5:return e.abrupt("return",fe.land);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Oe(e){return xe.apply(this,arguments)}function xe(){return(xe=Object(ie.a)(ne.a.mark((function e(t){var n,a;return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(fe.estate){e.next=5;break}return e.next=3,Object(oe.getConnectedProvider)();case 3:(n=e.sent)&&(a=t||(ye()?"0xC9A46712E6913c24d15b46fF12221a79c4e251DC":"0x959e104e1a4db6317fa58f8295f586e1a978c297"),fe.estate=new ue.b(a,pe.a,new ce.a(n).getSigner()));case 5:return e.abrupt("return",fe.estate);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ve(e){var t=e.x,n=e.y;return"".concat(t,",").concat(n)}var he=function(e){return e.api.files},ge=function(e){return e.api.info},we=ne.a.mark(Ce),Me=ne.a.mark(_e),Ie=ne.a.mark(ke);function Ce(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.takeEvery)(O,_e);case 2:return e.next=4,Object(ae.takeEvery)(se.CONNECT_WALLET_SUCCESS,ke);case 4:case"end":return e.stop()}}),we)}function _e(){var e,t,n,a,s,r,i;return ne.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,Object(ae.select)(ge);case 2:return e=u.sent,u.next=5,Object(ae.call)((function(){return me(e.landRegistry)}));case 5:return t=u.sent,u.prev=6,n=e.baseParcel,a=n.x,s=n.y,u.next=10,Object(ae.call)((function(){return t.landData(a,s)}));case 10:if(!(r=u.sent)){u.next=17;break}return u.next=14,Object(ae.call)((function(){return Te(r)}));case 14:u.t0=u.sent,u.next=18;break;case 17:u.t0={version:0,name:"",description:""};case 18:return i=u.t0,u.next=21,Object(ae.put)(h(i));case 21:u.next=27;break;case 23:return u.prev=23,u.t1=u.catch(6),u.next=27,Object(ae.put)((o=u.t1.message,Object(j.action)(v,{error:o})));case 27:case"end":return u.stop()}var o}),Me,null,[[6,23]])}function ke(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.put)(Object(j.action)(O));case 2:case"end":return e.stop()}}),Ie)}function Te(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.charAt(0);if("0"===t){var n=Object(N.a)(re.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 Ae=n(840),Ee=ne.a.mark(Fe),Se=ne.a.mark(ze),Re=ne.a.mark(Le);function Fe(){var e;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=Object(Ae.createWalletSaga)({CHAIN_ID:be()}),t.next=3,Object(ae.all)([e(),ze()]);case 3:case"end":return t.stop()}}),Ee)}function ze(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.takeEvery)(se.CHANGE_NETWORK,Le);case 2:return e.next=4,Object(ae.takeEvery)(se.CHANGE_ACCOUNT,Le);case 4:case"end":return e.stop()}}),Se)}function Le(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.call)((function(){return window.location.reload()}));case 2:case"end":return e.stop()}}),Re)}var De=n(81),Ne=n(76),Ue=n(3);function Pe(e,t){return He.apply(this,arguments)}function He(){return(He=Object(ie.a)(ne.a.mark((function e(t,n){return ne.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)}function Be(e){return We.apply(this,arguments)}function We(){return(We=Object(ie.a)(ne.a.mark((function e(t){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("/api/deploy",{method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function qe(){return Ge.apply(this,arguments)}function Ge(){return(Ge=Object(ie.a)(ne.a.mark((function e(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("/api/files");case 2:return e.abrupt("return",e.sent.json());case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Je(){return Ye.apply(this,arguments)}function Ye(){return(Ye=Object(ie.a)(ne.a.mark((function e(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("/api/info");case 2:return e.abrupt("return",e.sent.json());case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ke(){return Ve.apply(this,arguments)}function Ve(){return(Ve=Object(ie.a)(ne.a.mark((function e(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("/api/catalyst-pointers");case 2:return e.abrupt("return",e.sent.json());case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Xe=n(841),Qe=ne.a.mark(nt),Ze=ne.a.mark(at),$e=ne.a.mark(st),et=ne.a.mark(rt),tt=ne.a.mark(it);function nt(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.takeLatest)(w,at);case 2:return e.next=4,Object(ae.takeEvery)(M,st);case 4:return e.next=6,Object(ae.takeLatest)(_,rt);case 6:return e.next=8,Object(ae.takeLatest)(k,it);case 8:case"end":return e.stop()}}),Qe)}function at(e){var t,n,a,s,r,i;return ne.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return u.prev=0,t=Object(Ne.f)(e.payload),u.next=4,Object(ae.call)((function(){return Object(oe.getConnectedProvider)()}));case 4:return n=u.sent,a=new ce.a(n),s=a.getSigner(),u.next=9,Object(ae.call)((function(){return s.getAddress()}));case 9:return r=u.sent,u.next=12,Object(ae.call)((function(){return n.send("personal_sign",[Object(Ue.i)(t),r.toLowerCase()])}));case 12:return i=u.sent,u.next=15,Object(ae.put)((o=i,Object(j.action)(M,{signature:o})));case 15:u.next=21;break;case 17:return u.prev=17,u.t0=u.catch(0),u.next=21,Object(ae.put)(C(u.t0.message));case 21:case"end":return u.stop()}var o}),Ze,null,[[0,17]])}function st(e){var t,n,a;return ne.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return s.next=2,Object(ae.select)(De.getAddress);case 2:return t=s.sent,s.next=5,Object(ae.select)(De.getChainId);case 5:return n=s.sent,a=e.payload.signature,s.prev=7,s.next=10,Object(ae.call)(Be,{signature:a,address:t,chainId:n});case 10:s.next=16;break;case 12:return s.prev=12,s.t0=s.catch(7),s.next=16,Object(ae.put)(C(s.t0.message));case 16:case"end":return s.stop()}}),$e,null,[[7,12]])}function rt(e){var t,n,a,s;return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Object(ae.call)((function(){return Object(oe.getConnectedProvider)()}));case 3:return t=e.sent,n=new ce.a(t),a=n.getSigner(),e.next=8,Object(ae.call)((function(){return Object(Xe.createIdentity)(a,1e3)}));case 8:return s=e.sent,e.next=11,Object(ae.put)(A(s));case 11:return e.next=13,Object(ae.put)(Q());case 13:e.next=19;break;case 15:return e.prev=15,e.t0=e.catch(0),e.next=19,Object(ae.put)((r=e.t0.message,Object(j.action)(T,{error:r})));case 19:case"end":return e.stop()}var r}),et,null,[[0,15]])}function it(e){var t,n,a;return ne.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return t=e.payload.identity,s.next=3,Object(ae.select)(De.getAddress);case 3:return n=s.sent,s.next=6,Object(ae.select)(De.getChainId);case 6:return a=s.sent,s.prev=7,s.next=10,Object(ae.call)(Pe,!0,{responseType:"identity",payload:{identity:t,address:n,chainId:a}});case 10:s.next=16;break;case 12:return s.prev=12,s.t0=s.catch(7),s.next=16,Object(ae.put)(C(s.t0.message));case 16:case"end":return s.stop()}}),tt,null,[[7,12]])}var ut=n(125),ot=n(493),ct=ne.a.mark(dt),pt=ne.a.mark(yt),lt=ne.a.mark(bt);function dt(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.takeEvery)(se.CONNECT_WALLET_SUCCESS,bt);case 2:return e.next=4,Object(ae.takeEvery)(S,yt);case 4:case"end":return e.stop()}}),ct)}function yt(){var e,t,n;return ne.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,Object(ae.select)(ge);case 2:if(e=a.sent){a.next=6;break}return a.next=6,Object(ae.take)(W);case 6:if(t=new URLSearchParams(document.location.search),!t.get("skipValidations")){a.next=21;break}return a.prev=9,n=e.parcels,a.next=13,Object(ae.put)(z(n.map((function(e){return{x:e.x,y:e.y,isUpdateAuthorized:!0}}))));case 13:a.next=19;break;case 15:return a.prev=15,a.t0=a.catch(9),a.next=19,Object(ae.put)(L(a.t0.message));case 19:a.next=22;break;case 21:return a.delegateYield(ne.a.mark((function t(){var n,a,s,r,i;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.parcels,a=e.landRegistry,s=e.estateRegistry,t.next=3,Object(ae.call)((function(){return me(a)}));case 3:return r=t.sent,t.next=6,Object(ae.call)((function(){return Oe(s)}));case 6:return i=t.sent,t.prev=7,t.delegateYield(ne.a.mark((function e(){var t,a,s,u,o,c,p,l,d,y,b,m,j,O,x;return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.select)(De.getAddress);case 2:t=e.sent,a=new Map,s=[],u=Object(ot.a)(n);try{for(c=function(){var e=o.value,n=e.x,i=e.y,u=new Promise((function(s,u){r.encodeTokenId(n,i).then((function(o){r.isUpdateAuthorized(t,o).then((function(t){a.set(ve(e),o),s({x:n,y:i,isUpdateAuthorized:t})})).catch(u)})).catch(u)}));s.push(u)},u.s();!(o=u.n()).done;)c()}catch(v){u.e(v)}finally{u.f()}return e.next=9,Object(ae.call)((function(){return Promise.all(s)}));case 9:p=e.sent,l=p.filter((function(e){return!e.isUpdateAuthorized})),d=p.filter((function(e){return e.isUpdateAuthorized})),y=[],b=Object(ot.a)(l);try{for(j=function(){var e=m.value,n=a.get(ve(e)),s=new Promise((function(a,s){i.getLandEstateId(n).then((function(n){return n&&n>0?i.isUpdateAuthorized(t,n).then((function(t){a(Object(f.a)(Object(f.a)({},e),{},{isUpdateAuthorized:t}))})):a(e)})).catch(s)}));y.push(s)},b.s();!(m=b.n()).done;)j()}catch(v){b.e(v)}finally{b.f()}return e.next=17,Object(ae.call)((function(){return Promise.all(y)}));case 17:return O=e.sent,x=[].concat(Object(ut.a)(d),Object(ut.a)(O)),e.next=21,Object(ae.put)(z(x));case 21:case"end":return e.stop()}}),e)}))(),"t0",9);case 9:t.next=15;break;case 11:return t.prev=11,t.t1=t.catch(7),t.next=15,Object(ae.put)(L(t.t1.message));case 15:case"end":return t.stop()}}),t,null,[[7,11]])}))(),"t1",22);case 22:case"end":return a.stop()}}),pt,null,[[9,15]])}function bt(){var e;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Object(ae.call)((function(){return De.getAddress}));case 2:return e=t.sent,t.next=5,Object(ae.put)((n=e,Object(j.action)(S,{owner:n})));case 5:case"end":return t.stop()}var n}),lt)}var ft=ne.a.mark(xt),mt=ne.a.mark(vt),jt=ne.a.mark(ht),Ot=ne.a.mark(gt);function xt(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.takeEvery)(U,vt);case 2:return e.next=4,Object(ae.takeEvery)(B,ht);case 4:return e.next=6,Object(ae.takeEvery)(G,gt);case 6:case"end":return e.stop()}}),ft)}function vt(){var e;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,Object(ae.call)(qe);case 3:return e=t.sent,t.next=6,Object(ae.put)(K(e));case 6:t.next=12;break;case 8:return t.prev=8,t.t0=t.catch(0),t.next=12,Object(ae.put)((n=t.t0.message,Object(j.action)(H,{error:n})));case 12:case"end":return t.stop()}var n}),mt,null,[[0,8]])}function ht(){var e;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,Object(ae.call)(Je);case 3:return e=t.sent,t.next=6,Object(ae.put)(V(e));case 6:t.next=12;break;case 8:return t.prev=8,t.t0=t.catch(0),t.next=12,Object(ae.put)(X(t.t0.message));case 12:case"end":return t.stop()}}),jt,null,[[0,8]])}function gt(){var e;return ne.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,Object(ae.call)(Ke);case 3:return e=t.sent,t.next=6,Object(ae.put)((n=e,Object(j.action)(J,n)));case 6:t.next=12;break;case 8:return t.prev=8,t.t0=t.catch(0),t.next=12,Object(ae.put)(X(t.t0.message));case 12:case"end":return t.stop()}var n}),Ot,null,[[0,8]])}var wt=n(194),Mt=n(114),It=function(e){return e.signature},Ct=Object(Mt.a)(It,(function(e){return e.data})),_t=Object(Mt.a)(It,(function(e){return e.loading.length>0})),kt=(Object(Mt.a)(It,(function(e){return e.error})),n(1732),n(22)),Tt=n(0),At=n.n(Tt),Et=n(17),St=At.a.memo((function(e){var t=e.children;return Object(Et.jsxs)("p",{style:{color:"var(--primary)"},children:[" Error: ",t]})}));function Rt(e){var t=e.isConnected,n=e.isConnecting,a=e.wallet,s=e.authorizations,r=e.isUpdateAuthorized,i=e.onConnectWallet;return t&&a.address?Object(Et.jsxs)(Et.Fragment,{children:[Object(Et.jsxs)("p",{children:["Using address: \xa0",Object(Et.jsx)(kt.Blockie,{scale:3,seed:a.address,children:Object(Et.jsx)(kt.Address,{tooltip:!0,strong:!0,value:a.address})})]}),(null===s||void 0===s?void 0:s.length)&&!r?Object(Et.jsx)(St,{children:"You don't have permissions to update The following LANDs that are part of the scene: ".concat((s||[]).filter((function(e){return!e.isUpdateAuthorized})).map((function(e){return'"'.concat(ve(e),'"')})).join(", "))}):null]}):Object(Et.jsxs)(Et.Fragment,{children:[n?null:Object(Et.jsx)("p",{children:"Could not find any wallet"}),Object(Et.jsx)("p",{children:Object(Et.jsx)(kt.Button,{primary:!0,onClick:i,loading:n,disabled:n,children:"Reconnect\xa0"})})]})}var Ft,zt=Object(u.connect)((function(e){return{wallet:Object(De.getData)(e),isConnected:Object(De.isConnected)(e),isConnecting:Object(De.isConnecting)(e),signed:!!Ct(e),isSigning:_t(e)}}),(function(e){return{onConnectWallet:function(){return e(Object(se.enableWalletRequest)(wt.ProviderType.INJECTED))},onRequestIdentity:function(){return e(Object(j.action)(_,{}))}}}))((function(e){var t=e.isConnected,n=e.wallet,a=e.isConnecting,s=e.onConnectWallet,r=e.isSigning,i=e.onRequestIdentity;return Object(Et.jsxs)("div",{className:"LinkScenePage",children:[ye()&&Object(Et.jsx)("div",{className:"warning",children:"Using Goerli test network"}),Object(Et.jsx)(kt.Navbar,{}),Object(Et.jsx)(kt.Header,{children:"Create an identity to sign deployments "}),Object(Et.jsx)(Rt,{isUpdateAuthorized:!0,isConnected:t,isConnecting:a,wallet:n,onConnectWallet:s}),Object(Et.jsx)("form",{children:Object(Et.jsx)("div",{children:Object(Et.jsx)(kt.Button,{primary:!0,onClick:function(e){e.preventDefault(),i()},disabled:!t,loading:r,children:"Sign ephemeral wallet"})})})]})})),Lt=function(e){return e.land},Dt=Object(Mt.a)(Lt,(function(e){return e.data})),Nt=Object(Mt.a)(Lt,(function(e){return e.loading.length>0})),Ut=Object(Mt.a)(Lt,(function(e){return e.error})),Pt=function(e){return e.authorization},Ht=Object(Mt.a)(Pt,(function(e){return e.data})),Bt=Object(Mt.a)(Pt,(function(e){return e.loading.length>0})),Wt=(Object(Mt.a)(Pt,(function(e){return e.error})),Object(Mt.a)(Ht,(function(e){if(null===e||void 0===e?void 0:e.length)return e.every((function(e){return e.isUpdateAuthorized}))})));n(1978);!function(e){e.Size="Size",e.Name="Name"}(Ft||(Ft={}));var qt=Object(u.connect)((function(e){return{files:he(e)}}))((function(e){var t=e.files,n=Object(Tt.useState)(Ft.Size),a=Object(N.a)(n,2),s=a[0],r=a[1],i=Object(Tt.useMemo)((function(){return t.sort((function(e,t){return s===Ft.Size?t.size<e.size?-1:1:e.name<t.name?-1:1}))}),[t,s]);return Object(Et.jsx)(kt.Container,{children:Object(Et.jsxs)(kt.Table,{basic:"very",children:[Object(Et.jsx)(kt.Table.Header,{children:Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsx)(kt.Table.HeaderCell,{children:"File Name"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:"Size"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:Object(Et.jsx)(kt.Dropdown,{text:s,direction:"right",children:Object(Et.jsx)(kt.Dropdown.Menu,{children:Object.values(Ft).map((function(e){return Object(Et.jsx)(kt.Dropdown.Item,{onClick:function(){return r(e)},text:e},e)}))})})})]})}),Object(Et.jsx)(kt.Table.Body,{children:i.map((function(e,t){var n=e.name,a=e.size;return Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsx)(kt.Table.Cell,{children:n}),Object(Et.jsxs)(kt.Table.Cell,{children:[(1e-6*Number(a)).toFixed(2)," MB "]}),Object(Et.jsx)(kt.Table.Cell,{})]},t)}))})]})})}));n(1979);function Gt(e){var t=e.authorizations,n=e.parcels,a=e.baseParcel,s=function(e){return function(t,n){return e.find((function(e){return e.x===t&&e.y===n}))}};return Object(Et.jsxs)(kt.Container,{children:[!!n.length&&Object(Et.jsx)(kt.Section,{size:"large",className:"map-table",children:Object(Et.jsxs)(kt.Table,{basic:"very",children:[Object(Et.jsx)(kt.Table.Header,{children:Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsx)(kt.Table.HeaderCell,{children:"Name"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:"Coordinates"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:"Permissions"})]})}),Object(Et.jsx)(kt.Table.Body,{children:n.map((function(e,n){var a,r=!!(null===(a=s(t||[])(e.x,e.y))||void 0===a?void 0:a.isUpdateAuthorized);return Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsxs)(kt.Table.Cell,{children:["Parcel ",n]}),Object(Et.jsxs)(kt.Table.Cell,{children:[e.x,", ",e.y]}),Object(Et.jsx)(kt.Table.Cell,{className:r?"":"permission-not-granted",children:t.length?r?"Granted":"Not granted":""})]},n)}))})]})}),Object(Et.jsx)(kt.Container,{children:Object(Et.jsx)(kt.Section,{size:"large",className:"map-canvas",children:Object(Et.jsx)(kt.Atlas,{height:300,x:a.x,y:a.y,isDraggable:!1,layers:[function(e,t){return s(n)(e,t)?{color:"#ff0044",scale:1.4}:null},function(e,t){return s(n)(e,t)?{color:"#ff99",scale:1.2}:null}]})})})]})}n(1980);var Jt=n(131);n(1981);var Yt,Kt=Object(u.connect)((function(e){var t,n;return{status:null===(t=e.api.catalyst)||void 0===t?void 0:t.status,catalysts:(null===(n=e.api.catalyst)||void 0===n?void 0:n.catalysts)||[]}}),(function(e){return{onFetchCatalyst:function(){return e(Q())}}}))((function(e){var t=e.onFetchCatalyst,n=e.catalysts,a=void 0===n?[]:n,s=e.status,r=new Set(a.map((function(e){return e.entityId}))),i="success"===s&&1===r.size;return Object(Tt.useEffect)((function(){if(!i){var e=setInterval((function(){t()}),5e3);return function(){return clearInterval(e)}}}),[t,i]),Object(Et.jsxs)(kt.Container,{children:[Object(Et.jsx)(kt.HeaderMenu,{children:Object(Et.jsx)(kt.Badge,{color:i?"#20913e":kt.Color.SUNISH,children:i?"Deployed successfully to Catalyst servers":"Deploying.."})}),Object(Et.jsxs)(kt.Table,{basic:"very",children:[Object(Et.jsx)(kt.Table.Header,{children:Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsx)(kt.Table.HeaderCell,{children:"Catalyst Server"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:"Time"}),Object(Et.jsx)(kt.Table.HeaderCell,{children:"Entity Id"})]})}),Object(Et.jsx)(kt.Table.Body,{children:(a||[]).map((function(e){var t=e.url,n=e.timestamp,a=e.entityId;return Object(Et.jsxs)(kt.Table.Row,{children:[Object(Et.jsx)(kt.Table.Cell,{children:t}),Object(Et.jsx)(kt.Table.Cell,{children:new Date(n).toLocaleString()}),Object(Et.jsx)(kt.Table.Cell,{children:a})]},t)}))})]})]})}));!function(e){e.Map="Map",e.Files="Files"}(Yt||(Yt={}));var Vt=Object(u.connect)((function(e){return{base:Dt(e),wallet:Object(De.getData)(e),isLandLoading:Nt(e),isConnected:Object(De.isConnected)(e),isConnecting:Object(De.isConnecting)(e),error:Ut(e),signed:!!Ct(e),isUpdateAuthorized:Wt(e),authorizations:Ht(e),isAuthorizationLoading:Bt(e),isSigning:_t(e),info:ge(e)}}),(function(e){return{onConnectWallet:function(){return e(Object(se.enableWalletRequest)(wt.ProviderType.INJECTED))},onSignContent:function(t){return e(function(e){return Object(j.action)(w,e)}(t))},onFetchFiles:function(){return e(Object(j.action)(U))},onFetchInfo:function(){return e(Object(j.action)(B))}}}))((function(e){var t=Object(Tt.useState)(Yt.Map),n=Object(N.a)(t,2),a=n[0],s=n[1],r=e.isConnected,i=e.wallet,u=e.authorizations,o=e.isUpdateAuthorized,c=e.isConnecting,p=e.onConnectWallet,l=e.onSignContent,d=e.onFetchFiles,y=e.onFetchInfo,b=e.isSigning,f=e.error,m=e.isAuthorizationLoading,j=e.signed,O=e.info,x=(null===O||void 0===O?void 0:O.baseParcel)||{x:0,y:0},v=x.x,h=x.y,g=(null===i||void 0===i?void 0:i.chainId)===Jt.ChainId.ETHEREUM_GOERLI,w="https://play.decentraland.".concat(g?"zone":"org","/?position=").concat(v,",").concat(h);return Object(Tt.useEffect)((function(){y(),d()}),[d,y]),Object(Et.jsxs)("div",{className:"Page-story-container",children:[Object(Et.jsx)(kt.Navbar,{leftMenu:Object(Et.jsx)(Et.Fragment,{}),isConnected:r,isConnecting:c,address:null===i||void 0===i?void 0:i.address}),Object(Et.jsxs)(kt.Page,{children:[Object(Et.jsxs)(kt.Container,{children:[Object(Et.jsx)(kt.HeaderMenu,{children:Object(Et.jsx)(kt.HeaderMenu.Left,{children:Object(Et.jsxs)(kt.Container,{textAlign:"center",children:[Object(Et.jsxs)(kt.Header,{size:"large",children:["Deploying ",(null===O||void 0===O?void 0:O.title)||"Untitled Scene"]}),(null===O||void 0===O?void 0:O.description)&&Object(Et.jsx)(kt.Header,{size:"medium",children:(null===O||void 0===O?void 0:O.description)||"Some description"})]})})}),Object(Et.jsxs)(kt.HeaderMenu,{children:[Object(Et.jsxs)(kt.HeaderMenu.Left,{children:[Object(Et.jsx)("div",{className:"address-header url",onClick:function(){var e;return w&&(null===(e=window.open(w,"_blank"))||void 0===e?void 0:e.focus())},children:Object(Et.jsxs)(kt.Badge,{color:kt.Color.SUMMER_RED,children:[Object(Et.jsx)(kt.Icon,{name:"point"}),v,", ",h]})}),!!r&&Object(Et.jsx)("div",{className:"address-header",children:Object(Et.jsx)(kt.Badge,{color:kt.Color.SHADOWS,children:g?"Goerli":"Mainnet"})}),Object(Et.jsx)("div",{className:"address-header",children:!!(null===i||void 0===i?void 0:i.address)&&Object(Et.jsx)(kt.Blockie,{scale:3,seed:i.address,children:Object(Et.jsx)(kt.Address,{tooltip:!0,strong:!0,value:i.address})})})]}),!j&&Object(Et.jsx)(kt.HeaderMenu.Right,{children:Object(Et.jsx)(kt.Button,{primary:!0,size:"medium",loading:c||b||r&&m,disabled:!!f||r&&!o,onClick:r?function(){return l(O.rootCID)}:p,children:r?"Sign & Deploy":"Connect Wallet"})})]})]}),!(!(null===u||void 0===u?void 0:u.length)||o)&&Object(Et.jsx)(kt.Toast,{type:kt.ToastType.ERROR,title:"Check LAND permissions",body:"You dont have permissions to update some of the coords"}),!j&&Object(Et.jsx)(kt.Tabs,{isFullscreen:!0,children:Object.values(Yt).map((function(e){return Object(Et.jsx)(kt.Tabs.Tab,{onClick:function(){return s(e)},active:a===e,children:e},e)}))}),!O&&Object(Et.jsx)(kt.Loader,{}),j&&Object(Et.jsx)(Kt,{}),!j&&a===Yt.Files&&Object(Et.jsx)(qt,{}),!j&&O&&a===Yt.Map&&Object(Et.jsx)(Gt,{authorizations:u,parcels:O.parcels,baseParcel:O.baseParcel})]}),Object(Et.jsx)(kt.Footer,{})]})})),Xt=function(e){return new URLSearchParams(document.location.search).has("wearableId")?Object(Et.jsx)(zt,Object(f.a)({},e)):Object(Et.jsx)(Vt,Object(f.a)({},e))};n(1982),n(1983);s.a.render(Object(Et.jsx)(u.Provider,{store:function(){var e=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||o.c,t=Object(d.createStorageMiddleware)({storageKey:"decentraland-linker"}),n=t.storageMiddleware,a=t.loadStorageMiddleware,s=Object(c.a)(),r=Object(l.createTransactionMiddleware)(),i=Object(p.createLogger)({collapsed:function(){return!0},predicate:function(e,t){return!1}}),u=e(Object(o.a)(s,i,n,r)),y=Object(o.d)(ee,u);return s.run(ne.a.mark((function e(){return ne.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(ae.all)([Fe(),Ce(),nt(),dt(),xt()]);case 2:case"end":return e.stop()}}),e)}))),a(y),y}(),children:Object(Et.jsx)(i.a,{children:Object(Et.jsx)(Xt,{})})}),document.getElementById("root"))},838: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"}]}')},839: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"}]}')},944:function(e,t){},961:function(e,t){},998:function(e,t){}},[[1985,1,2]]]);
|
|
2
|
-
//# sourceMappingURL=main.ae38cebd.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["modules/land/actions.ts","modules/land/reducer.ts","modules/signature/actions.ts","modules/signature/reducer.ts","modules/authorization/actions.ts","modules/authorization/reducer.ts","modules/server/actions.ts","modules/server/reducer.ts","reducer.ts","config.ts","contracts.ts","modules/land/utils.ts","modules/server/selectors.ts","modules/land/sagas.ts","modules/wallet/sagas.ts","modules/server/utils.ts","modules/signature/sagas.ts","modules/authorization/sagas.ts","modules/server/sagas.ts","modules/signature/selectors.ts","components/Error.tsx","components/RenderWalletData/RenderWalletData.tsx","components/IdentityPage/IdentityPage.container.tsx","components/Files/Files.tsx","components/IdentityPage/index.ts","components/IdentityPage/IdentityPage.tsx","modules/land/selectors.ts","modules/authorization/selectors.ts","components/Files/Files.container.tsx","components/Files/index.ts","components/Map/index.tsx","components/DeploySuccess/DeploySuccess.container.tsx","components/LinkerPage/LinkerPage.tsx","components/DeploySuccess/DeploySuccess.tsx","components/LinkerPage/LinkerPage.container.tsx","components/LinkerPage/index.ts","components/Root.tsx","index.tsx","store.ts","sagas.ts"],"names":["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","CREATE_IDENTITY_REQUEST","CREATE_IDENTITY_SUCCESS","CREATE_IDENTITY_FAILURE","createIdentitySuccess","identity","FETCH_AUTHORIZATIONS_REQUEST","FETCH_AUTHORIZATIONS_SUCCESS","FETCH_AUTHORIZATIONS_FAILURE","fetchAuthorizationsSuccess","authorizations","fetchAuthorizationsFailure","FETCH_FILES_REQUEST","FETCH_FILES_SUCCESS","FETCH_FILES_FAILURE","FETCH_INFO_REQUEST","FETCH_INFO_SUCCESS","FETCH_INFO_FAILURE","FETCH_CATALYST_REQUEST","FETCH_CATALYST_SUCCESS","FETCH_CATALYST_FAILURE","fetchFilesSuccess","files","fetchInfoSuccess","info","fetchInfoFailure","fetchCatalystRequest","undefined","catalyst","parseCoords","query","map","c","split","x","y","parseInt","rootReducer","combineReducers","wallet","transaction","state","type","loadingReducer","payload","signature","authorization","api","catalysts","length","baseParcel","parcels","rootCID","isTestnet","window","ethereum","chainId","getChainId","ChainId","ETHEREUM_MAINNET","ETHEREUM_GOERLI","contractInstances","getLandContract","landRegistry","a","getConnectedProvider","provider","address","Contract","LANDRegistry","Web3Provider","getSigner","getEstateContract","estateRegistry","estate","EstateRegistry","coordsToString","getFiles","getInfo","landSaga","handleFetchLandRequest","handleConnectWalletSuccess","takeEvery","CONNECT_WALLET_SUCCESS","select","call","decodeLandData","version","name","description","put","message","charAt","CSV","cellDelimiter","ipns","Error","walletSaga","fullWalletSaga","handleWallet","baseWalletSaga","createWalletSaga","CHAIN_ID","all","CHANGE_NETWORK","CHANGE_ACCOUNT","location","reload","closeServer","ok","fetch","JSON","stringify","postDeploy","method","headers","body","getFilesRequest","json","getInfoRequest","getCatalystsPointer","signatureSaga","handleSignContentRequest","handleSignContentSuccess","handleCreateIdentityRequest","handleCreateIdentitySuccess","takeLatest","dataToSign","toUtf8Bytes","web3provider","signer","getAddress","addr","send","hexlify","toLowerCase","signedMessage","_action","createIdentity","responseType","authorizationSaga","handleFetchAuthorizationsRequest","take","qs","URLSearchParams","document","search","get","isUpdateAuthorized","assetIds","Map","pAuthorizations","parcel","pAuthorization","Promise","resolve","reject","then","assetId","set","catch","push","f","parcelAuthorizations","notAllowedAuthorizations","filter","allowedAuthorizations","pEstateAuthorizations","estateAuthorizations","owner","apiSaga","handleFetchFilesRequest","handleFetchInfoRequest","handleFetchCatalystRequest","value","getState","getData","createSelector","isLoading","React","memo","children","style","color","RenderWalletData","isConnected","isConnecting","onConnectWallet","scale","seed","tooltip","strong","join","primary","onClick","disabled","Filter","IdentityPage","connect","getWallet","signed","getSignature","isSigning","isSigningTx","dispatch","enableWalletRequest","ProviderType","INJECTED","onRequestIdentity","props","className","e","preventDefault","getError","every","Files","useState","Size","setFilter","useMemo","sort","b","size","basic","Header","Row","HeaderCell","text","direction","Menu","Object","values","Item","Body","index","Cell","Number","toFixed","LinkScenePage","find","coords","s","isAuthorized","height","isDraggable","layers","Tab","status","onFetchCatalyst","entityIds","Set","entityId","deployedToAll","useEffect","interval","setInterval","clearInterval","Color","SUNISH","url","timestamp","Date","toLocaleString","LinkerPage","base","getLand","isLandLoading","getLandError","getAuthorizations","isAuthorizationLoading","onSignContent","cid","signContentRequest","onFetchFiles","onFetchInfo","tab","setTab","isTestNet","deployUrl","leftMenu","Left","textAlign","title","open","focus","SUMMER_RED","SHADOWS","Right","ToastType","ERROR","isFullscreen","t","active","Root","has","ReactDOM","render","store","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStorageMiddleware","storageKey","storageMiddleware","loadStorageMiddleware","sagasMiddleware","createSagasMiddleware","transactionMiddleware","createTransactionMiddleware","loggerMiddleware","createLogger","collapsed","predicate","_","enhancer","applyMiddleware","createStore","run","initStore","getElementById"],"mappings":"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","file":"static/js/main.ae38cebd.chunk.js","sourcesContent":["import { action } from 'typesafe-actions'\nimport { LANDMeta } 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 = () => action(FETCH_LAND_REQUEST)\nexport const fetchLandSuccess = (land: LANDMeta) => action(FETCH_LAND_SUCCESS, { land })\nexport const fetchLandFailure = (error: string) => 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 { loadingReducer, LoadingState } 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 = FetchLandRequestAction | FetchLandSuccessAction | FetchLandFailureAction\n\nexport const landReducer = (state = INITIAL_STATE, action: LandReducerAction): 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 { AuthIdentity } from 'dcl-crypto'\nimport { 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) => action(SIGN_CONTENT_REQUEST, cid)\nexport const signContentSuccess = (signature: string) => action(SIGN_CONTENT_SUCCESS, { signature })\nexport const signContentFailure = (error: string) => 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\nexport const CREATE_IDENTITY_REQUEST = '[Request] Create Identity'\nexport const CREATE_IDENTITY_SUCCESS = '[Success] Create Identity'\nexport const CREATE_IDENTITY_FAILURE = '[Failure] Create Identity'\n\nexport const createIdentityRequest = () => action(CREATE_IDENTITY_REQUEST, {})\nexport const createIdentitySuccess = (identity: AuthIdentity) => action(CREATE_IDENTITY_SUCCESS, { identity })\nexport const createIdentityFailure = (error: string) => action(CREATE_IDENTITY_FAILURE, { error })\n\nexport type CreateIdentityRequestAction = ReturnType<typeof createIdentityRequest>\nexport type CreateIdentitySuccessAction = ReturnType<typeof createIdentitySuccess>\nexport type CreateIdentityFailureAction = ReturnType<typeof createIdentityFailure>\n","import { AuthIdentity } from 'dcl-crypto'\nimport { loadingReducer, LoadingState } 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 CreateIdentityRequestAction,\n CreateIdentitySuccessAction,\n CreateIdentityFailureAction,\n CREATE_IDENTITY_REQUEST,\n CREATE_IDENTITY_SUCCESS,\n CREATE_IDENTITY_FAILURE\n} from './actions'\n\nexport type SignatureState = {\n data: any\n identity: AuthIdentity | null\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: SignatureState = {\n data: '',\n loading: [],\n identity: null,\n error: null\n}\n\nexport type SignatureReducerAction =\n | SignContentRequestAction\n | SignContentSuccessAction\n | SignContentFailureAction\n | CreateIdentityRequestAction\n | CreateIdentitySuccessAction\n | CreateIdentityFailureAction\n\nexport const signatureReducer = (state = INITIAL_STATE, action: SignatureReducerAction): 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 ...state,\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 case CREATE_IDENTITY_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case CREATE_IDENTITY_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n identity: action.payload.identity,\n error: null\n }\n case CREATE_IDENTITY_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 = '[Request] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_SUCCESS = '[Success] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_FAILURE = '[Failure] Fetch LAND Authorizations'\n\nexport const fetchAuthorizationsRequest = (owner: string) => action(FETCH_AUTHORIZATIONS_REQUEST, { owner })\n\nexport const fetchAuthorizationsSuccess = (authorizations: Authorization[]) =>\n action(FETCH_AUTHORIZATIONS_SUCCESS, { authorizations })\n\nexport const fetchAuthorizationsFailure = (error: string) => action(FETCH_AUTHORIZATIONS_FAILURE, { error })\n\nexport type FetchAuthorizationsRequestAction = ReturnType<typeof fetchAuthorizationsRequest>\nexport type FetchAuthorizationsSuccessAction = ReturnType<typeof fetchAuthorizationsSuccess>\nexport type FetchAuthorizationsFailureAction = ReturnType<typeof fetchAuthorizationsFailure>\n","import { loadingReducer, LoadingState } 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 = (state = INITIAL_STATE, action: AuthorizationReducerAction): 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 { action } from 'typesafe-actions'\nimport { CatalystResponse, FileSize, Info } from './reducer'\n\nexport const FETCH_FILES_REQUEST = '[Request] Fetch Files'\nexport const FETCH_FILES_SUCCESS = '[Success] Fetch Files'\nexport const FETCH_FILES_FAILURE = '[Failure] Fetch Files'\n\nexport const FETCH_INFO_REQUEST = '[Request] Fetch info'\nexport const FETCH_INFO_SUCCESS = '[Success] Fetch info'\nexport const FETCH_INFO_FAILURE = '[Failure] Fetch info'\n\nexport const FETCH_CATALYST_REQUEST = '[Request] Fetch catalyst'\nexport const FETCH_CATALYST_SUCCESS = '[Success] Fetch catalyst'\nexport const FETCH_CATALYST_FAILURE = '[Failure] Fetch catalyst'\n\nexport const fetchFilesRequest = () => action(FETCH_FILES_REQUEST)\nexport const fetchFilesSuccess = (files: FileSize[]) => action(FETCH_FILES_SUCCESS, { files })\nexport const fetchFilesFailure = (error: string) => action(FETCH_FILES_FAILURE, { error })\n\nexport const fetchInfoRequest = () => action(FETCH_INFO_REQUEST)\nexport const fetchInfoSuccess = (info: Info) => action(FETCH_INFO_SUCCESS, { info })\nexport const fetchInfoFailure = (error: string) => action(FETCH_INFO_FAILURE, { error })\n\nexport const fetchCatalystRequest = () => action(FETCH_CATALYST_REQUEST)\nexport const fetchCatalystSuccess = (payload: CatalystResponse) => action(FETCH_CATALYST_SUCCESS, payload)\nexport const fetchCatalystFailure = (error: string) => action(FETCH_CATALYST_FAILURE, { error })\n\nexport type FetchFilesRequestAction = ReturnType<typeof fetchFilesRequest>\nexport type FetchFilesSuccessAction = ReturnType<typeof fetchFilesSuccess>\nexport type FetchFilesFailureAction = ReturnType<typeof fetchFilesFailure>\n\nexport type FetchInfoRequestAction = ReturnType<typeof fetchInfoRequest>\nexport type FetchInfoSuccessAction = ReturnType<typeof fetchInfoSuccess>\nexport type FetchInfoFailureAction = ReturnType<typeof fetchInfoFailure>\n\nexport type FetchCatalystRequest = ReturnType<typeof fetchCatalystRequest>\nexport type FetchCatalystSuccess = ReturnType<typeof fetchCatalystSuccess>\nexport type FetchCatalystFailure = ReturnType<typeof fetchCatalystFailure>\n","import { loadingReducer, LoadingState } from 'decentraland-dapps/dist/modules/loading/reducer'\nimport { Coords } from '../land/types'\n\nimport {\n FetchFilesRequestAction,\n FetchFilesSuccessAction,\n FetchFilesFailureAction,\n FETCH_FILES_REQUEST,\n FETCH_FILES_SUCCESS,\n FETCH_FILES_FAILURE,\n FETCH_INFO_REQUEST,\n FETCH_INFO_FAILURE,\n FETCH_INFO_SUCCESS,\n FetchInfoRequestAction,\n FetchInfoSuccessAction,\n FetchInfoFailureAction,\n FetchCatalystFailure,\n FetchCatalystRequest,\n FetchCatalystSuccess,\n FETCH_CATALYST_REQUEST,\n FETCH_CATALYST_SUCCESS,\n FETCH_CATALYST_FAILURE\n} from './actions'\n\nexport type Info = {\n baseParcel: Coords\n parcels: Coords[]\n rootCID: string\n debug: boolean\n estateRegistry?: string\n landRegistry?: string\n title?: string\n description?: string\n}\n\nexport type FileSize = {\n name: string\n size: string\n}\n\nexport type CatalystResponse = {\n catalysts: {\n url: string\n timestamp: number\n entityId: string\n }[]\n status: 'deploying' | 'success' | 'closed'\n}\n\nexport type ApiState = {\n files: FileSize[]\n loading: LoadingState\n error: string | null\n catalyst: CatalystResponse | undefined\n info: Info | undefined\n}\n\nconst INITIAL_STATE: ApiState = {\n info: undefined,\n files: [],\n loading: [],\n error: null,\n catalyst: undefined\n}\n\nexport type ApiReducerAction =\n | FetchFilesRequestAction\n | FetchFilesSuccessAction\n | FetchFilesFailureAction\n | FetchInfoRequestAction\n | FetchInfoSuccessAction\n | FetchInfoFailureAction\n | FetchCatalystFailure\n | FetchCatalystRequest\n | FetchCatalystSuccess\n\nexport const apiReducer = (state = INITIAL_STATE, action: ApiReducerAction): ApiState => {\n switch (action.type) {\n case FETCH_FILES_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_FILES_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n files: action.payload.files,\n error: null\n }\n case FETCH_FILES_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error,\n files: []\n }\n case FETCH_CATALYST_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_CATALYST_SUCCESS:\n if (!action.payload.catalysts.length) {\n return state\n }\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n catalyst: action.payload,\n error: null\n }\n case FETCH_CATALYST_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error,\n catalyst: undefined\n }\n case FETCH_INFO_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_INFO_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n info: {\n ...action.payload.info,\n baseParcel: parseCoords((action.payload.info.baseParcel as any) as string)[0],\n parcels: parseCoords((action.payload.info.parcels as any) as string),\n rootCID: action.payload.info.rootCID || 'QmPjpPyibbryTCi75zzcdeuPUBcujtEqj43shwKBAdMojy'\n },\n error: null\n }\n case FETCH_INFO_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error,\n info: undefined\n }\n default: {\n return state\n }\n }\n}\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","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 { apiReducer as api } from './modules/server/reducer'\nimport { RootState } from './types'\n\nexport const rootReducer = combineReducers<RootState>({\n wallet,\n transaction,\n land,\n signature,\n authorization,\n api\n})\n","import { ChainId } from '@dcl/builder-client/node_modules/@dcl/schemas'\n\nexport function isTestnet() {\n return (window?.ethereum as any)?.chainId !== '0x1'\n}\n\nexport function getChainId() {\n return (window?.ethereum as any)?.chainId === '0x1' ? ChainId.ETHEREUM_MAINNET : ChainId.ETHEREUM_GOERLI\n}\n\nexport function isDevelopment(): boolean {\n return false\n}\n","import { Contract } from '@ethersproject/contracts'\nimport { getConnectedProvider } from 'decentraland-dapps/dist/lib/eth'\nimport { Web3Provider } from '@ethersproject/providers'\n\nimport * as EstateRegistry from './abis/EstateRegistry.json'\nimport * as LANDRegistry from './abis/LANDRegistry.json'\nimport { isTestnet } from './config'\n\nconst contractInstances: {\n land?: Contract\n estate?: Contract\n} = {}\n\nexport async function getLandContract(landRegistry?: string) {\n if (!contractInstances.land) {\n const provider = await getConnectedProvider()\n if (provider) {\n const address =\n landRegistry ||\n (isTestnet() ? '0x25b6B4bac4aDB582a0ABd475439dA6730777Fbf7' : '0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d')\n contractInstances.land = new Contract(address, LANDRegistry.abi, new Web3Provider(provider).getSigner())\n }\n }\n\n return contractInstances.land\n}\n\nexport async function getEstateContract(estateRegistry?: string) {\n if (!contractInstances.estate) {\n const provider = await getConnectedProvider()\n if (provider) {\n const address =\n estateRegistry ||\n (isTestnet() ? '0xC9A46712E6913c24d15b46fF12221a79c4e251DC' : '0x959e104e1a4db6317fa58f8295f586e1a978c297')\n contractInstances.estate = new Contract(address, EstateRegistry.abi, new Web3Provider(provider).getSigner())\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 { RootState } from '../../types'\n\nexport const getFiles = (state: RootState) => state.api.files\nexport const isLoading = (state: RootState) => !!state.api.loading.length\nexport const getError = (state: RootState) => state.api.error\nexport const getInfo = (state: RootState) => state.api.info\n","import { call, put, select, 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 { getLandContract } from '../../contracts'\nimport { FETCH_LAND_REQUEST, fetchLandSuccess, fetchLandFailure, fetchLandRequest } from './actions'\nimport { getEmptyLandData } from './utils'\nimport { Contract } from '@ethersproject/contracts'\nimport { LANDMeta } from './types'\nimport { Info } from '../server/reducer'\nimport { getInfo } from '../server/selectors'\n\nexport function* landSaga() {\n yield takeEvery(FETCH_LAND_REQUEST, handleFetchLandRequest)\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n}\n\nfunction* handleFetchLandRequest() {\n const info: Info = yield select(getInfo)\n const LANDRegistry: Contract = yield call(() => getLandContract(info.landRegistry))\n try {\n const { x, y } = info.baseParcel\n const data: string = yield call(() => LANDRegistry['landData'](x, y))\n const land: LANDMeta = data ? yield call(() => decodeLandData(data)) : 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())\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(`Unknown version when trying to decode land data: \"${data}\"`)\n }\n}\n","import { takeEvery, all, call } from 'redux-saga/effects'\nimport { createWalletSaga } from 'decentraland-dapps/dist/modules/wallet/sagas'\nimport { CHANGE_NETWORK, CHANGE_ACCOUNT } from 'decentraland-dapps/dist/modules/wallet/actions'\n\nimport { getChainId } from '../../config'\n\nexport function* walletSaga() {\n const baseWalletSaga = createWalletSaga({\n CHAIN_ID: getChainId()\n })\n yield all([baseWalletSaga(), fullWalletSaga()])\n}\n\nfunction* fullWalletSaga() {\n yield takeEvery(CHANGE_NETWORK, handleWallet)\n yield takeEvery(CHANGE_ACCOUNT, handleWallet)\n}\n\nfunction* handleWallet() {\n yield call(() => window.location.reload())\n}\n","import { ChainId } from '@dcl/schemas'\nimport { AuthIdentity } from 'dcl-crypto'\n\nexport type DeployScene =\n | {\n address: string\n signature: string\n chainId: ChainId\n }\n | Record<string, never>\n\nexport type LinkerResponseIdentity = {\n responseType: 'identity'\n payload: {\n address: string\n chainId: ChainId\n identity: AuthIdentity\n }\n}\n\nexport async function closeServer(ok: boolean, message: LinkerResponseIdentity): Promise<void> {\n await fetch(`/api/close?ok=${ok}&reason=${JSON.stringify(message)}`)\n}\n\nexport async function postDeploy(payload: DeployScene): Promise<void> {\n await fetch('/api/deploy', {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload)\n })\n}\n\nexport async function getFilesRequest(): Promise<void> {\n return (await fetch('/api/files')).json()\n}\n\nexport async function getInfoRequest(): Promise<void> {\n return (await fetch('/api/info')).json()\n}\n\nexport async function getCatalystsPointer(): Promise<void> {\n return (await fetch('/api/catalyst-pointers')).json()\n}\n","import { call, put, takeLatest, takeEvery, select } from 'redux-saga/effects'\nimport { getConnectedProvider } from 'decentraland-dapps/dist/lib/eth'\nimport { getAddress, getChainId } from 'decentraland-dapps/dist/modules/wallet/selectors'\nimport { Web3Provider } from '@ethersproject/providers'\nimport { toUtf8Bytes } from '@ethersproject/strings'\nimport { ChainId } from '@dcl/schemas'\nimport { hexlify } from '@ethersproject/bytes'\nimport { closeServer, postDeploy } from '../server/utils'\nimport {\n SIGN_CONTENT_REQUEST,\n SIGN_CONTENT_SUCCESS,\n SignContentRequestAction,\n signContentSuccess,\n signContentFailure,\n SignContentSuccessAction,\n CREATE_IDENTITY_REQUEST,\n createIdentitySuccess,\n createIdentityFailure,\n CREATE_IDENTITY_SUCCESS,\n CreateIdentitySuccessAction\n} from './actions'\nimport { Provider } from 'decentraland-connect/dist'\nimport { AuthIdentity } from 'dcl-crypto'\nimport { createIdentity } from '@dcl/builder-client'\nimport { fetchCatalystRequest } from '../server/actions'\n\nexport function* signatureSaga() {\n yield takeLatest(SIGN_CONTENT_REQUEST, handleSignContentRequest)\n yield takeEvery(SIGN_CONTENT_SUCCESS, handleSignContentSuccess)\n\n yield takeLatest(CREATE_IDENTITY_REQUEST, handleCreateIdentityRequest)\n yield takeLatest(CREATE_IDENTITY_SUCCESS, handleCreateIdentitySuccess)\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 chainId: ChainId = yield select(getChainId)\n const { signature } = action.payload\n\n try {\n yield call(postDeploy, { signature, address, chainId })\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n\nfunction* handleCreateIdentityRequest(_action: SignContentRequestAction) {\n try {\n const provider: Provider = yield call(() => getConnectedProvider())\n const web3provider = new Web3Provider(provider)\n const signer = web3provider.getSigner()\n const identity: AuthIdentity = yield call(() => createIdentity(signer, 1000))\n yield put(createIdentitySuccess(identity))\n yield put(fetchCatalystRequest())\n } catch (error) {\n yield put(createIdentityFailure((error as Error).message))\n }\n}\n\nfunction* handleCreateIdentitySuccess(action: CreateIdentitySuccessAction) {\n const { identity } = action.payload\n const address: string = yield select(getAddress)\n const chainId: ChainId = yield select(getChainId)\n\n try {\n yield call(closeServer, true, {\n responseType: 'identity',\n payload: { identity, address, chainId }\n })\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n","import { call, put, takeEvery, select, take } 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 { 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'\nimport { Info } from '../server/reducer'\nimport { FETCH_INFO_SUCCESS } from '../server/actions'\nimport { getInfo } from '../server/selectors'\n\nexport function* authorizationSaga() {\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n yield takeEvery(FETCH_AUTHORIZATIONS_REQUEST, handleFetchAuthorizationsRequest)\n}\n\nfunction* handleFetchAuthorizationsRequest() {\n const info: Info = yield select(getInfo)\n\n if (!info) {\n yield take(FETCH_INFO_SUCCESS)\n }\n\n const qs = new URLSearchParams(document.location.search)\n\n const skipValidations = qs.get('skipValidations')\n if (skipValidations) {\n try {\n const { parcels } = info\n yield put(\n fetchAuthorizationsSuccess(\n parcels.map(({ x, y }) => ({\n x,\n y,\n isUpdateAuthorized: true\n }))\n )\n )\n } catch (error) {\n yield put(fetchAuthorizationsFailure((error as Error).message))\n }\n } else {\n const { parcels, landRegistry, estateRegistry } = info\n const LANDRegistry: Contract = yield call(() => getLandContract(landRegistry))\n const EstateRegistry: Contract = yield call(() => getEstateContract(estateRegistry))\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 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(() => Promise.all(pAuthorizations))\n\n // If not authorized check permissions on estate\n const notAllowedAuthorizations = parcelAuthorizations.filter(a => !a.isUpdateAuthorized)\n const allowedAuthorizations = parcelAuthorizations.filter(a => a.isUpdateAuthorized)\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((isUpdateAuthorized: any) => {\n resolve({ ...a, isUpdateAuthorized })\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(() => Promise.all(pEstateAuthorizations))\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}\n\nfunction* handleConnectWalletSuccess(): any {\n const address = yield call(() => getAddress)\n yield put(fetchAuthorizationsRequest(address))\n}\n","import { takeEvery, call, put } from 'redux-saga/effects'\n\nimport {\n fetchCatalystSuccess,\n fetchFilesFailure,\n fetchFilesSuccess,\n fetchInfoFailure,\n fetchInfoSuccess,\n FETCH_CATALYST_REQUEST,\n FETCH_FILES_REQUEST,\n FETCH_INFO_REQUEST\n} from './actions'\nimport { CatalystResponse, FileSize, Info } from './reducer'\nimport { getCatalystsPointer, getFilesRequest, getInfoRequest } from './utils'\n\nexport function* apiSaga() {\n yield takeEvery(FETCH_FILES_REQUEST, handleFetchFilesRequest)\n yield takeEvery(FETCH_INFO_REQUEST, handleFetchInfoRequest)\n yield takeEvery(FETCH_CATALYST_REQUEST, handleFetchCatalystRequest)\n}\n\nfunction* handleFetchFilesRequest() {\n try {\n const files: FileSize[] = yield call(getFilesRequest)\n yield put(fetchFilesSuccess(files))\n } catch (e) {\n yield put(fetchFilesFailure((e as any).message))\n }\n}\n\nfunction* handleFetchInfoRequest() {\n try {\n const info: Info = yield call(getInfoRequest)\n yield put(fetchInfoSuccess(info))\n } catch (e) {\n yield put(fetchInfoFailure((e as any).message))\n }\n}\n\nfunction* handleFetchCatalystRequest() {\n try {\n const value: CatalystResponse = yield call(getCatalystsPointer)\n yield put(fetchCatalystSuccess(value))\n } catch (e) {\n yield put(fetchInfoFailure((e as any).message))\n }\n}\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(getState, state => state.loading.length > 0)\nexport const getError = createSelector(getState, state => state.error)\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 { Props } from './types'\nimport { Blockie, Address, Button } from 'decentraland-ui'\nimport { coordsToString } from '../../modules/land/utils'\nimport Error from '../Error'\n\nexport default function RenderWalletData({\n isConnected,\n isConnecting,\n wallet,\n authorizations,\n isUpdateAuthorized,\n onConnectWallet\n}: Props) {\n function getFormattedUnauthorized() {\n return (authorizations || [])\n .filter(a => !a.isUpdateAuthorized)\n .map(a => `\"${coordsToString(a)}\"`)\n .join(', ')\n }\n\n if (isConnected && wallet.address) {\n return (\n <>\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?.length && !isUpdateAuthorized ? (\n <Error>\n {`You don't have permissions to update The following LANDs that are part of the scene: ${getFormattedUnauthorized()}`}\n </Error>\n ) : null}\n </>\n )\n }\n\n return (\n <>\n {isConnecting ? null : <p>Could not find any wallet</p>}\n <p>\n <Button primary onClick={onConnectWallet} loading={isConnecting} disabled={isConnecting}>\n Reconnect \n </Button>\n </p>\n </>\n )\n}\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 { getData as getWallet, isConnected, isConnecting } from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport { getData as getSignature, isLoading as isSigningTx } from '../../modules/signature/selectors'\n\nimport { createIdentityRequest } from '../../modules/signature/actions'\nimport { RootState } from '../../types'\nimport { MapStateProps, MapDispatchProps } from './types'\n\nimport IdentityPage from './IdentityPage'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n wallet: getWallet(state)!,\n isConnected: isConnected(state),\n isConnecting: isConnecting(state),\n signed: !!getSignature(state),\n isSigning: isSigningTx(state)\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: () => dispatch(enableWalletRequest(ProviderType.INJECTED)),\n onRequestIdentity: () => dispatch(createIdentityRequest())\n})\n\nexport default connect(mapState, mapDispatch)(IdentityPage)\n","import './style.css'\nimport { Container, Dropdown, Table } from 'decentraland-ui'\nimport { Props } from './types'\nimport { useMemo, useState } from 'react'\nimport { FileSize } from '../../modules/server/reducer'\n\nenum Filter {\n Size = 'Size',\n Name = 'Name'\n}\n\nexport default function FilesPage({ files }: Props) {\n const [filter, setFilter] = useState<Filter>(Filter.Size)\n const value = useMemo<FileSize[]>(\n () =>\n files.sort((a, b) => {\n if (filter === Filter.Size) {\n return b.size < a.size ? -1 : 1\n }\n return a.name < b.name ? -1 : 1\n }),\n [files, filter]\n )\n\n return (\n <Container>\n <Table basic=\"very\">\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>File Name</Table.HeaderCell>\n <Table.HeaderCell>Size</Table.HeaderCell>\n <Table.HeaderCell>\n <Dropdown text={filter} direction=\"right\">\n <Dropdown.Menu>\n {Object.values(Filter).map(f => (\n <Dropdown.Item key={f} onClick={() => setFilter(f)} text={f} />\n ))}\n </Dropdown.Menu>\n </Dropdown>\n </Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {value.map(({ name, size }, index) => (\n <Table.Row key={index}>\n <Table.Cell>{name}</Table.Cell>\n <Table.Cell>{(Number(size) * 1e-6).toFixed(2)} MB </Table.Cell>\n <Table.Cell />\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </Container>\n )\n}\n","import IdentityPage from './IdentityPage.container'\nexport default IdentityPage\n","import { SyntheticEvent } from 'react'\nimport './style.css'\nimport { Header, Button, Navbar } from 'decentraland-ui'\nimport { Props } from './types'\nimport RenderWalletData from '../RenderWalletData/RenderWalletData'\nimport { isTestnet } from '../../config'\n\nexport default function IdentityPage(props: Props) {\n const { isConnected, wallet, isConnecting, onConnectWallet, isSigning, onRequestIdentity } = props\n\n const handleSignature = (e: SyntheticEvent) => {\n e.preventDefault()\n onRequestIdentity()\n }\n\n return (\n <div className=\"LinkScenePage\">\n {isTestnet() && <div className=\"warning\">Using Goerli test network</div>}\n <Navbar />\n <Header>Create an identity to sign deployments </Header>\n <RenderWalletData\n isUpdateAuthorized={true}\n isConnected={isConnected}\n isConnecting={isConnecting}\n wallet={wallet}\n onConnectWallet={onConnectWallet}\n />\n <form>\n <div>\n <Button primary onClick={handleSignature} disabled={!isConnected} loading={isSigning}>\n Sign ephemeral wallet\n </Button>\n </div>\n </form>\n </div>\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(getState, 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(getState, state => state.loading.length > 0)\n\nexport const getError = createSelector(getState, state => state.error)\n\nexport const isUpdateAuthorized = createSelector(getData, authorizations => {\n if (!authorizations?.length) {\n return\n }\n\n return authorizations.every((a: Authorization) => a.isUpdateAuthorized)\n})\n","import { connect } from 'react-redux'\nimport { RootState } from '../../types'\nimport { MapStateProps } from './types'\n\nimport FilesPage from './Files'\nimport { getFiles } from '../../modules/server/selectors'\n\nconst mapState = (state: RootState): MapStateProps => {\n return { files: getFiles(state) }\n}\n\nexport default connect(mapState)(FilesPage)\n","import Files from './Files.container'\nexport default Files\n","import './style.css'\nimport { Atlas, Container, Coord, Layer, Section, Table } from 'decentraland-ui'\nimport { Props } from './types'\n\nexport default function LinkScenePage({ authorizations, parcels, baseParcel }: Props) {\n const find = <T extends Coord>(coords: T[]) => (x: number, y: number): T | undefined =>\n coords.find(s => s.x === x && s.y === y)\n\n const selectedFillLayer: Layer = (x: number, y: number) => {\n return find(parcels)(x, y) ? { color: '#ff99', scale: 1.2 } : null\n }\n\n const selectedStroke: Layer = (x: number, y: number) => {\n return find(parcels)(x, y) ? { color: '#ff0044', scale: 1.4 } : null\n }\n\n return (\n <Container>\n {!!parcels.length && (\n <Section size=\"large\" className=\"map-table\">\n <Table basic=\"very\">\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>Name</Table.HeaderCell>\n <Table.HeaderCell>Coordinates</Table.HeaderCell>\n <Table.HeaderCell>Permissions</Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {parcels.map((coords, index) => {\n const isAuthorized = !!find(authorizations || [])(coords.x, coords.y)?.isUpdateAuthorized\n return (\n <Table.Row key={index}>\n <Table.Cell>Parcel {index}</Table.Cell>\n <Table.Cell>\n {coords.x}, {coords.y}\n </Table.Cell>\n <Table.Cell className={!isAuthorized ? 'permission-not-granted' : ''}>\n {authorizations.length ? (isAuthorized ? 'Granted' : 'Not granted') : ''}\n </Table.Cell>\n </Table.Row>\n )\n })}\n </Table.Body>\n </Table>\n </Section>\n )}\n <Container>\n <Section size=\"large\" className=\"map-canvas\">\n <Atlas\n height={300}\n x={baseParcel.x}\n y={baseParcel.y}\n isDraggable={false}\n layers={[selectedStroke, selectedFillLayer]}\n />\n </Section>\n </Container>\n </Container>\n )\n}\n","import { AnyAction, Dispatch } from 'redux'\nimport { connect } from 'react-redux'\nimport { RootState } from '../../types'\nimport { MapStateProps, MapDispatchProps } from './types'\n\nimport DeploySuccess from './DeploySuccess'\nimport { fetchCatalystRequest } from '../../modules/server/actions'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n status: state.api.catalyst?.status,\n catalysts: state.api.catalyst?.catalysts || []\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => {\n return {\n onFetchCatalyst: () => dispatch(fetchCatalystRequest())\n }\n}\n\nexport default connect(mapState, mapDispatch)(DeploySuccess)\n","import {\n Navbar,\n Tabs,\n Footer,\n Page,\n Header,\n Icon,\n Button,\n Container,\n HeaderMenu,\n Color,\n Badge,\n Address,\n Blockie,\n Toast,\n ToastType,\n Loader\n} from 'decentraland-ui'\nimport { Props } from './types'\nimport { useEffect, useState } from 'react'\nimport Files from '../Files'\nimport Map from '../Map'\n\nimport './style.css'\nimport { ChainId } from '@dcl/schemas'\nimport DeploySuccess from '../DeploySuccess/DeploySuccess.container'\n\nenum Tab {\n Map = 'Map',\n Files = 'Files'\n}\n\nexport default function LinkScenePage(props: Props) {\n const [tab, setTab] = useState<Tab>(Tab.Map)\n const {\n isConnected,\n wallet,\n authorizations,\n isUpdateAuthorized,\n isConnecting,\n onConnectWallet,\n onSignContent,\n onFetchFiles,\n onFetchInfo,\n isSigning,\n error,\n isAuthorizationLoading,\n signed,\n info\n } = props\n\n const { x, y } = info?.baseParcel || { x: 0, y: 0 }\n const isTestNet = wallet?.chainId === ChainId.ETHEREUM_GOERLI\n const networkName = isTestNet ? 'zone' : 'org'\n const deployUrl = `https://play.decentraland.${networkName}/?position=${x},${y}`\n\n useEffect(() => {\n onFetchInfo()\n onFetchFiles()\n }, [onFetchFiles, onFetchInfo])\n\n return (\n <div className=\"Page-story-container\">\n <Navbar leftMenu={<></>} isConnected={isConnected} isConnecting={isConnecting} address={wallet?.address} />\n <Page>\n <Container>\n <HeaderMenu>\n <HeaderMenu.Left>\n <Container textAlign=\"center\">\n <Header size=\"large\">Deploying {info?.title || 'Untitled Scene'}</Header>\n {info?.description && <Header size=\"medium\">{info?.description || 'Some description'}</Header>}\n </Container>\n </HeaderMenu.Left>\n </HeaderMenu>\n <HeaderMenu>\n <HeaderMenu.Left>\n <div\n className=\"address-header url\"\n onClick={() => deployUrl && window.open(deployUrl!, '_blank')?.focus()}\n >\n <Badge color={Color.SUMMER_RED}>\n <Icon name=\"point\" />\n {x}, {y}\n </Badge>\n </div>\n {!!isConnected && (\n <div className=\"address-header\">\n <Badge color={Color.SHADOWS}>{isTestNet ? 'Goerli' : 'Mainnet'}</Badge>\n </div>\n )}\n <div className=\"address-header\">\n {!!wallet?.address && (\n <Blockie scale={3} seed={wallet.address}>\n <Address tooltip strong value={wallet.address} />\n </Blockie>\n )}\n </div>\n </HeaderMenu.Left>\n {!signed && (\n <HeaderMenu.Right>\n <Button\n primary\n size=\"medium\"\n loading={isConnecting || isSigning || (isConnected && isAuthorizationLoading)}\n disabled={!!error || (isConnected && !isUpdateAuthorized)}\n onClick={isConnected ? () => onSignContent(info!.rootCID) : onConnectWallet}\n >\n {isConnected ? 'Sign & Deploy' : 'Connect Wallet'}\n </Button>\n </HeaderMenu.Right>\n )}\n </HeaderMenu>\n </Container>\n {!!(authorizations?.length && !isUpdateAuthorized) && (\n <Toast\n type={ToastType.ERROR}\n title=\"Check LAND permissions\"\n body=\"You dont have permissions to update some of the coords\"\n />\n )}\n {!signed && (\n <Tabs isFullscreen>\n {Object.values(Tab).map(t => (\n <Tabs.Tab key={t} onClick={() => setTab(t)} active={tab === t}>\n {t}\n </Tabs.Tab>\n ))}\n </Tabs>\n )}\n {!info && <Loader />}\n {signed && <DeploySuccess />}\n {!signed && tab === Tab.Files && <Files />}\n {!signed && info && tab === Tab.Map && (\n <Map authorizations={authorizations} parcels={info!.parcels} baseParcel={info!.baseParcel} />\n )}\n </Page>\n <Footer />\n </div>\n )\n}\n","import { Badge, Color, Container, HeaderMenu, Table } from 'decentraland-ui'\nimport { Props } from './types'\nimport { useEffect } from 'react'\n\nimport './style.css'\n\nexport default function DeploySuccess({ onFetchCatalyst, catalysts = [], status }: Props) {\n const entityIds = new Set(catalysts.map(c => c.entityId))\n const deployedToAll = status === 'success' && entityIds.size === 1\n\n useEffect(() => {\n if (deployedToAll) return\n const interval = setInterval(() => {\n onFetchCatalyst()\n }, 5_000)\n return () => clearInterval(interval)\n }, [onFetchCatalyst, deployedToAll])\n\n return (\n <Container>\n <HeaderMenu>\n <Badge color={deployedToAll ? '#20913e' : Color.SUNISH}>\n {deployedToAll ? 'Deployed successfully to Catalyst servers' : 'Deploying..'}\n </Badge>\n </HeaderMenu>\n <Table basic=\"very\">\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>Catalyst Server</Table.HeaderCell>\n <Table.HeaderCell>Time</Table.HeaderCell>\n <Table.HeaderCell>Entity Id</Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {(catalysts || []).map(({ url, timestamp, entityId }) => (\n <Table.Row key={url}>\n <Table.Cell>{url}</Table.Cell>\n <Table.Cell>{new Date(timestamp).toLocaleString()}</Table.Cell>\n <Table.Cell>{entityId}</Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </Container>\n )\n}\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 { getData as getWallet, isConnected, isConnecting } from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport { isLoading as isLandLoading, getData as getLand, getError as getLandError } from '../../modules/land/selectors'\nimport { getData as getSignature, isLoading as isSigningTx } 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'\nimport { fetchFilesRequest, fetchInfoRequest } from '../../modules/server/actions'\nimport { getInfo } from '../../modules/server/selectors'\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 isSigning: isSigningTx(state),\n info: getInfo(state)\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: () => dispatch(enableWalletRequest(ProviderType.INJECTED)),\n onSignContent: (cid: string) => dispatch(signContentRequest(cid)),\n onFetchFiles: () => dispatch(fetchFilesRequest()),\n onFetchInfo: () => dispatch(fetchInfoRequest())\n})\n\nexport default connect(mapState, mapDispatch)(LinkerPage)\n","import LinkerPage from './LinkerPage.container'\nexport default LinkerPage\n","import IdentityPage from './IdentityPage'\nimport LinkerPage from './LinkerPage'\n\nconst Root = (props: any) => {\n const qs = new URLSearchParams(document.location.search)\n\n if (qs.has('wearableId')) {\n return <IdentityPage {...props} />\n }\n\n return <LinkerPage {...props} />\n}\n\nexport default Root\n","import ReactDOM from 'react-dom'\nimport WalletProvider from 'decentraland-dapps/dist/providers/WalletProvider'\nimport { Provider } from 'react-redux'\n\nimport { initStore } from './store'\n\nimport Root from './components/Root'\n\n// Do not move these before other imports\nimport 'decentraland-ui/lib/styles.css'\nimport 'decentraland-ui/lib/dark-theme.css'\n\n// tslint:disable-next-line: no-floating-promises\nReactDOM.render(\n <Provider store={initStore()}>\n <WalletProvider>\n <Root />\n </WalletProvider>\n </Provider>,\n document.getElementById('root')\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 = (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(sagasMiddleware, loggerMiddleware, storageMiddleware, transactionMiddleware)\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'\nimport { apiSaga } from './modules/server/sagas'\n\nexport function rootSaga() {\n return function*() {\n yield all([walletSaga(), landSaga(), signatureSaga(), authorizationSaga(), apiSaga()])\n }\n}\n"],"sourceRoot":""}
|