@dcl/linker-dapp 0.1.2 → 0.1.4-1916338191.commit-7e8cb71
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 +15 -12
- package/index.html +1 -1
- package/package.json +2 -2
- package/static/css/main.023f92f5.chunk.css +2 -0
- package/static/css/main.023f92f5.chunk.css.map +1 -0
- package/static/js/{2.1a7724d7.chunk.js → 2.d5cc566b.chunk.js} +3 -3
- package/static/js/{2.1a7724d7.chunk.js.LICENSE.txt → 2.d5cc566b.chunk.js.LICENSE.txt} +0 -0
- package/static/js/{2.1a7724d7.chunk.js.map → 2.d5cc566b.chunk.js.map} +1 -1
- package/static/js/{3.44685914.chunk.js → 3.3729e404.chunk.js} +2 -2
- package/static/js/{3.44685914.chunk.js.map → 3.3729e404.chunk.js.map} +1 -1
- package/static/js/main.33d0e1b7.chunk.js +2 -0
- package/static/js/main.33d0e1b7.chunk.js.map +1 -0
- package/static/js/{runtime-main.378dad2a.js → runtime-main.9b665341.js} +2 -2
- package/static/js/{runtime-main.378dad2a.js.map → runtime-main.9b665341.js.map} +1 -1
- package/static/js/main.0e435c2c.chunk.js +0 -2
- package/static/js/main.0e435c2c.chunk.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["config.ts","modules/land/actions.ts","modules/land/reducer.ts","modules/signature/actions.ts","modules/signature/reducer.ts","modules/authorization/actions.ts","modules/authorization/reducer.ts","reducer.ts","contracts.ts","modules/land/utils.ts","modules/land/sagas.ts","modules/wallet/sagas.ts","modules/server/utils.ts","modules/signature/sagas.ts","modules/authorization/sagas.ts","modules/land/selectors.ts","modules/signature/selectors.ts","modules/authorization/selectors.ts","components/Error.tsx","components/LandInfo/LandInfo.tsx","components/RenderWalletData/RenderWalletData.tsx","components/LinkerPage/LinkerPage.container.tsx","components/LinkerPage/index.ts","components/LinkerPage/LinkerPage.tsx","index.tsx","store.ts","sagas.ts"],"names":["config","parseCoords","query","map","c","split","x","y","parseInt","init","searchParams","URLSearchParams","window","location","search","baseParcel","get","parcels","getAll","rootCID","debug","estateRegistry","landRegistry","chainId","ethereum","ChainId","ETHEREUM_MAINNET","ETHEREUM_ROPSTEN","setConfig","isRopsten","isDevelopment","getConfig","key","FETCH_LAND_REQUEST","FETCH_LAND_SUCCESS","FETCH_LAND_FAILURE","fetchLandSuccess","land","action","INITIAL_STATE","data","loading","error","SIGN_CONTENT_REQUEST","SIGN_CONTENT_SUCCESS","SIGN_CONTENT_FAILURE","signContentFailure","FETCH_AUTHORIZATIONS_REQUEST","FETCH_AUTHORIZATIONS_SUCCESS","FETCH_AUTHORIZATIONS_FAILURE","fetchAuthorizationsSuccess","authorizations","rootReducer","combineReducers","wallet","transaction","state","type","loadingReducer","payload","signature","authorization","contractInstances","getLandContract","a","getConnectedProvider","provider","address","Contract","LANDRegistry","Web3Provider","getSigner","getEstateContract","estate","EstateRegistry","coordsToString","landSaga","handleFetchLandRequest","handleConnectWalletSuccess","takeEvery","CONNECT_WALLET_SUCCESS","call","decodeLandData","version","name","description","put","message","coords","charAt","CSV","cellDelimiter","ipns","Error","walletSaga","fullWalletSaga","handleWallet","baseWalletSaga","createWalletSaga","CHAIN_ID","all","CHANGE_NETWORK","CHANGE_ACCOUNT","reload","closeServer","ok","fetch","JSON","stringify","signatureSaga","handleSignContentRequest","handleSignContentSuccess","takeLatest","dataToSign","toUtf8Bytes","web3provider","signer","getAddress","addr","send","hexlify","toLowerCase","signedMessage","select","getChainId","authorizationSaga","handleFetchAuthorizationsRequest","assetIds","Map","pAuthorizations","parcel","pAuthorization","Promise","resolve","reject","then","assetId","isUpdateAuthorized","set","catch","push","f","parcelAuthorizations","notAllowedAuthorizations","filter","allowedAuthorizations","pEstateAuthorizations","estateAuthorizations","owner","getState","getData","createSelector","isLoading","length","getError","every","React","memo","children","style","color","LandInfo","deployUrl","base","href","target","rel","RenderWalletData","isConnected","isConnecting","onConnectWallet","scale","seed","tooltip","strong","value","join","primary","onClick","disabled","LinkerPage","connect","getLand","getWallet","isLandLoading","getLandError","signed","getSignature","getAuthorizations","isAuthorizationLoading","isSigning","isSigningTx","dispatch","enableWalletRequest","ProviderType","INJECTED","onSignContent","cid","signContentRequest","props","networkName","className","maxWidth","maxHeight","width","src","alt","e","preventDefault","ReactDOM","render","store","initConfig","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStorageMiddleware","storageKey","storageMiddleware","loadStorageMiddleware","sagasMiddleware","createSagasMiddleware","transactionMiddleware","createTransactionMiddleware","loggerMiddleware","createLogger","collapsed","predicate","_","_action","enhancer","applyMiddleware","createStore","run","initStore","document","getElementById"],"mappings":"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","file":"static/js/main.33d0e1b7.chunk.js","sourcesContent":["import { ChainId } from '@dcl/schemas'\n\nimport { Coords } from './modules/land/types'\n\ntype Config = {\n baseParcel: Coords\n parcels: Coords[]\n rootCID: string\n debug: boolean\n estateRegistry?: string\n landRegistry?: string\n chainId: ChainId\n}\n\nlet config: Config | undefined\n\nfunction parseCoords(query: string | string[] | null): Coords[] {\n if (!query) return [{ x: 0, y: 0 }]\n const coords = typeof query === 'string' ? [query] : query\n return coords.map(c => {\n const [x, y] = c.split(',')\n return { x: parseInt(x, 10), y: parseInt(y, 10) }\n })\n}\n\ntype UrlFinder = {\n get: (key: keyof Config) => string | null\n getAll: (key: keyof Config) => string[] | null\n}\n\nfunction setConfig() {\n const searchParams = new URLSearchParams(window.location.search) as UrlFinder\n config = {\n baseParcel: parseCoords(searchParams.get('baseParcel'))[0],\n parcels: parseCoords(searchParams.getAll('parcels')),\n rootCID:\n searchParams.get('rootCID') ||\n 'QmPjpPyibbryTCi75zzcdeuPUBcujtEqj43shwKBAdMojy',\n debug: searchParams.get('debug') === 'true',\n estateRegistry: searchParams.get('estateRegistry') as string,\n landRegistry: searchParams.get('landRegistry') as string,\n chainId:\n (window?.ethereum as any)?.chainId === '0x1'\n ? ChainId.ETHEREUM_MAINNET\n : ChainId.ETHEREUM_ROPSTEN\n }\n}\n\nexport function init() {\n setConfig()\n}\n\nexport function isRopsten() {\n return (window?.ethereum as any)?.chainId !== '0x1'\n}\n\nexport function isDevelopment(): boolean {\n return !!config?.debug\n}\n\nexport function getConfig<T extends keyof Config>(key: T) {\n return (config as Config)[key]\n}\n","import { action } from 'typesafe-actions'\nimport { LANDMeta, Coords } from './types'\n\nexport const FETCH_LAND_REQUEST = '[Request] Fetch LAND'\nexport const FETCH_LAND_SUCCESS = '[Success] Fetch LAND'\nexport const FETCH_LAND_FAILURE = '[Failure] Fetch LAND'\n\nexport const fetchLandRequest = (coords: Coords) =>\n action(FETCH_LAND_REQUEST, coords)\nexport const fetchLandSuccess = (land: LANDMeta) =>\n action(FETCH_LAND_SUCCESS, { land })\nexport const fetchLandFailure = (error: string) =>\n action(FETCH_LAND_FAILURE, { error })\n\nexport type FetchLandRequestAction = ReturnType<typeof fetchLandRequest>\nexport type FetchLandSuccessAction = ReturnType<typeof fetchLandSuccess>\nexport type FetchLandFailureAction = ReturnType<typeof fetchLandFailure>\n","import {\n loadingReducer,\n LoadingState\n} from 'decentraland-dapps/dist/modules/loading/reducer'\n\nimport {\n FetchLandRequestAction,\n FetchLandSuccessAction,\n FetchLandFailureAction,\n FETCH_LAND_REQUEST,\n FETCH_LAND_FAILURE,\n FETCH_LAND_SUCCESS\n} from './actions'\n\nexport type LandState = {\n data: any\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: LandState = {\n data: {},\n loading: [],\n error: null\n}\n\nexport type LandReducerAction =\n | FetchLandRequestAction\n | FetchLandSuccessAction\n | FetchLandFailureAction\n\nexport const landReducer = (\n state = INITIAL_STATE,\n action: LandReducerAction\n): LandState => {\n switch (action.type) {\n case FETCH_LAND_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_LAND_SUCCESS:\n return {\n loading: loadingReducer(state.loading, action),\n data: action.payload.land,\n error: null\n }\n case FETCH_LAND_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error\n }\n default: {\n return state\n }\n }\n}\n","import { action } from 'typesafe-actions'\n\nexport const SIGN_CONTENT_REQUEST = '[Request] Sign Content'\nexport const SIGN_CONTENT_SUCCESS = '[Success] Sign Content'\nexport const SIGN_CONTENT_FAILURE = '[Failure] Sign Content'\n\nexport const signContentRequest = (cid: string) =>\n action(SIGN_CONTENT_REQUEST, cid)\nexport const signContentSuccess = (signature: string) =>\n action(SIGN_CONTENT_SUCCESS, { signature })\nexport const signContentFailure = (error: string) =>\n action(SIGN_CONTENT_FAILURE, { error })\n\nexport type SignContentRequestAction = ReturnType<typeof signContentRequest>\nexport type SignContentSuccessAction = ReturnType<typeof signContentSuccess>\nexport type SignContentFailureAction = ReturnType<typeof signContentFailure>\n","import {\n loadingReducer,\n LoadingState\n} from 'decentraland-dapps/dist/modules/loading/reducer'\n\nimport {\n SignContentRequestAction,\n SignContentSuccessAction,\n SignContentFailureAction,\n SIGN_CONTENT_REQUEST,\n SIGN_CONTENT_SUCCESS,\n SIGN_CONTENT_FAILURE\n} from './actions'\n\nexport type SignatureState = {\n data: any\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: SignatureState = {\n data: '',\n loading: [],\n error: null\n}\n\nexport type SignatureReducerAction =\n | SignContentRequestAction\n | SignContentSuccessAction\n | SignContentFailureAction\n\nexport const signatureReducer = (\n state = INITIAL_STATE,\n action: SignatureReducerAction\n): SignatureState => {\n switch (action.type) {\n case SIGN_CONTENT_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case SIGN_CONTENT_SUCCESS:\n return {\n loading: loadingReducer(state.loading, action),\n data: action.payload.signature,\n error: null\n }\n case SIGN_CONTENT_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error\n }\n default: {\n return state\n }\n }\n}\n","import { action } from 'typesafe-actions'\nimport { Authorization } from './types'\n\nexport const FETCH_AUTHORIZATIONS_REQUEST =\n '[Request] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_SUCCESS =\n '[Success] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_FAILURE =\n '[Failure] Fetch LAND Authorizations'\n\nexport const fetchAuthorizationsRequest = (owner: string) =>\n action(FETCH_AUTHORIZATIONS_REQUEST, { owner })\n\nexport const fetchAuthorizationsSuccess = (authorizations: Authorization[]) =>\n action(FETCH_AUTHORIZATIONS_SUCCESS, { authorizations })\n\nexport const fetchAuthorizationsFailure = (error: string) =>\n action(FETCH_AUTHORIZATIONS_FAILURE, { error })\n\nexport type FetchAuthorizationsRequestAction = ReturnType<\n typeof fetchAuthorizationsRequest\n>\nexport type FetchAuthorizationsSuccessAction = ReturnType<\n typeof fetchAuthorizationsSuccess\n>\nexport type FetchAuthorizationsFailureAction = ReturnType<\n typeof fetchAuthorizationsFailure\n>\n","import {\n loadingReducer,\n LoadingState\n} from 'decentraland-dapps/dist/modules/loading/reducer'\n\nimport {\n FetchAuthorizationsRequestAction,\n FetchAuthorizationsSuccessAction,\n FetchAuthorizationsFailureAction,\n FETCH_AUTHORIZATIONS_REQUEST,\n FETCH_AUTHORIZATIONS_SUCCESS,\n FETCH_AUTHORIZATIONS_FAILURE\n} from './actions'\n\nexport type AuthorizationState = {\n data: any\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: AuthorizationState = {\n data: [],\n loading: [],\n error: null\n}\n\nexport type AuthorizationReducerAction =\n | FetchAuthorizationsRequestAction\n | FetchAuthorizationsSuccessAction\n | FetchAuthorizationsFailureAction\n\nexport const authorizationReducer = (\n state = INITIAL_STATE,\n action: AuthorizationReducerAction\n): AuthorizationState => {\n switch (action.type) {\n case FETCH_AUTHORIZATIONS_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_AUTHORIZATIONS_SUCCESS:\n return {\n loading: loadingReducer(state.loading, action),\n data: action.payload.authorizations,\n error: null\n }\n case FETCH_AUTHORIZATIONS_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error\n }\n default: {\n return state\n }\n }\n}\n","import { combineReducers } from 'redux'\nimport { walletReducer as wallet } from 'decentraland-dapps/dist/modules/wallet/reducer'\nimport { transactionReducer as transaction } from 'decentraland-dapps/dist/modules/transaction/reducer'\n\nimport { landReducer as land } from './modules/land/reducer'\nimport { signatureReducer as signature } from './modules/signature/reducer'\nimport { authorizationReducer as authorization } from './modules/authorization/reducer'\nimport { RootState } from './types'\n\nexport const rootReducer = combineReducers<RootState>({\n wallet,\n transaction,\n land,\n signature,\n authorization\n})\n","import { Contract } from '@ethersproject/contracts'\nimport { 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 { getConfig, isRopsten } from './config'\n\nconst contractInstances: {\n land?: Contract\n estate?: Contract\n} = {}\n\n\nexport async function getLandContract() {\n if (!contractInstances.land) {\n const provider = await getConnectedProvider()\n if (provider) {\n const landRegistry = getConfig('landRegistry')\n const address =\n landRegistry ||\n (isRopsten()\n ? '0x7a73483784ab79257bb11b96fd62a2c3ae4fb75b'\n : '0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d')\n contractInstances.land = new Contract(\n address,\n LANDRegistry.abi,\n new Web3Provider(provider).getSigner()\n )\n }\n }\n\n return contractInstances.land\n}\n\nexport async function getEstateContract() {\n if (!contractInstances.estate) {\n const provider = await getConnectedProvider()\n if (provider) {\n const estateRegistry = getConfig('landRegistry')\n const address =\n estateRegistry ||\n (isRopsten()\n ? '0x124bf28a423b2ca80b3846c3aa0eb944fe7ebb95'\n : '0x959e104e1a4db6317fa58f8295f586e1a978c297')\n contractInstances.estate = new Contract(\n address,\n EstateRegistry.abi,\n new Web3Provider(provider).getSigner()\n )\n }\n }\n\n return contractInstances.estate\n}\n","import { LANDMeta, Coords } from './types'\n\nexport function getEmptyLandData(): LANDMeta {\n return {\n version: 0,\n name: '',\n description: ''\n }\n}\n\nexport function coordsToString({ x, y }: Coords): string {\n return `${x},${y}`\n}\n","import { call, put, takeEvery } from 'redux-saga/effects'\nimport { CONNECT_WALLET_SUCCESS } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport * as CSV from 'comma-separated-values'\n\nimport { getConfig } from '../../config'\nimport { getLandContract } from '../../contracts'\nimport {\n FETCH_LAND_REQUEST,\n FetchLandRequestAction,\n fetchLandSuccess,\n fetchLandFailure,\n fetchLandRequest\n} from './actions'\nimport { getEmptyLandData } from './utils'\nimport { Contract } from '@ethersproject/contracts'\nimport { LANDMeta } from './types'\n\nexport function* landSaga() {\n yield takeEvery(FETCH_LAND_REQUEST, handleFetchLandRequest)\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n}\n\nfunction* handleFetchLandRequest(action: FetchLandRequestAction) {\n const LANDRegistry: Contract = yield call(() => getLandContract())\n try {\n const { x, y } = action.payload\n const data: string = yield call(() => LANDRegistry['landData'](x, y))\n const land: LANDMeta = data\n ? yield call(() => decodeLandData(data))\n : getEmptyLandData()\n yield put(fetchLandSuccess(land))\n } catch (error) {\n yield put(fetchLandFailure((error as Error).message))\n }\n}\n\nfunction* handleConnectWalletSuccess() {\n yield put(fetchLandRequest(getConfig('baseParcel')))\n}\n\nfunction decodeLandData(data = '') {\n const version = data.charAt(0)\n switch (version) {\n case '0': {\n const [version, name, description, ipns] = CSV.parse(data, {\n cellDelimiter: ','\n })[0]\n\n return {\n version,\n // when a value is blank, csv.parse returns 0, so we fallback to empty string\n // to support stuff like `0,,,ipns:link`\n name: name || '',\n description: description || '',\n ipns: ipns || ''\n }\n }\n default:\n throw new Error(\n `Unknown version when trying to decode land data: \"${data}\"`\n )\n }\n}\n","import { takeEvery, all, call } from 'redux-saga/effects'\nimport { createWalletSaga } from 'decentraland-dapps/dist/modules/wallet/sagas'\nimport {\n CHANGE_NETWORK,\n CHANGE_ACCOUNT,\n} from 'decentraland-dapps/dist/modules/wallet/actions'\n\nimport { getConfig } from '../../config'\n\nexport function* walletSaga() {\n const baseWalletSaga = createWalletSaga({\n CHAIN_ID: getConfig('chainId')\n })\n yield all([baseWalletSaga(), fullWalletSaga()])\n}\n\nfunction* fullWalletSaga() {\n yield takeEvery(CHANGE_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'\n\nexport type LinkerResponse = {\n address: string\n signature: string\n chainId: ChainId\n}\n\nexport async function closeServer(\n ok: boolean,\n message: LinkerResponse\n): Promise<void> {\n await fetch(`/api/close?ok=${ok}&reason=${JSON.stringify(message)}`)\n}\n","import { call, put, takeLatest, takeEvery, select } from 'redux-saga/effects'\nimport { getConnectedProvider } from 'decentraland-dapps/dist/lib/eth'\nimport {\n getAddress,\n getChainId,\n} 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'\n\nimport { closeServer } from '../server/utils'\nimport {\n SIGN_CONTENT_REQUEST,\n SIGN_CONTENT_SUCCESS,\n SignContentRequestAction,\n signContentSuccess,\n signContentFailure,\n SignContentSuccessAction\n} from './actions'\nimport { Provider } from 'decentraland-connect/dist'\n\nexport function* signatureSaga() {\n yield takeLatest(SIGN_CONTENT_REQUEST, handleSignContentRequest)\n yield takeEvery(SIGN_CONTENT_SUCCESS, handleSignContentSuccess)\n}\n\nfunction* handleSignContentRequest(action: SignContentRequestAction) {\n try {\n const dataToSign = toUtf8Bytes(action.payload)\n\n const provider: Provider = yield call(() => getConnectedProvider())\n const web3provider = new Web3Provider(provider)\n const signer = web3provider.getSigner()\n\n const addr: string = yield call(() => signer.getAddress())\n\n const signedMessage: string = yield call(() =>\n provider.send('personal_sign', [hexlify(dataToSign), addr.toLowerCase()])\n )\n yield put(signContentSuccess(signedMessage))\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n\nfunction* handleSignContentSuccess(action: SignContentSuccessAction) {\n const address: string = yield select(getAddress)\n const chainId: ChainId = yield select(getChainId)\n const { signature } = action.payload\n\n try {\n yield call(() => {\n // tslint:disable-next-line: no-floating-promises\n closeServer(true, { signature, address, chainId })\n })\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n","import { call, put, takeEvery, select } from 'redux-saga/effects'\nimport { CONNECT_WALLET_SUCCESS } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport { getAddress } from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport { getLandContract, getEstateContract } from '../../contracts'\nimport { getConfig } from '../../config'\nimport { coordsToString } from '../land/utils'\nimport {\n FETCH_AUTHORIZATIONS_REQUEST,\n fetchAuthorizationsRequest,\n fetchAuthorizationsFailure,\n fetchAuthorizationsSuccess\n} from './actions'\nimport { Authorization } from './types'\nimport { Contract } from '@ethersproject/contracts'\n\nexport function* authorizationSaga() {\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n yield takeEvery(\n FETCH_AUTHORIZATIONS_REQUEST,\n handleFetchAuthorizationsRequest\n )\n}\n\nfunction* handleFetchAuthorizationsRequest() {\n const LANDRegistry: Contract = yield call(() => getLandContract())\n const EstateRegistry: Contract = yield call(() => getEstateContract())\n\n try {\n const address: string = yield select(getAddress)\n const assetIds = new Map<string, string>()\n\n const pAuthorizations: Promise<unknown>[] = []\n for (const parcel of getConfig('parcels')) {\n const { x, y } = parcel\n const pAuthorization = new Promise((resolve, reject) => {\n LANDRegistry['encodeTokenId'](x, y)\n .then((assetId: any) => {\n LANDRegistry['isUpdateAuthorized'](address, assetId)\n .then((isUpdateAuthorized: any) => {\n assetIds.set(coordsToString(parcel), assetId)\n resolve({ x, y, isUpdateAuthorized })\n })\n .catch(reject)\n })\n .catch(reject)\n })\n pAuthorizations.push(pAuthorization)\n }\n\n const parcelAuthorizations: Authorization[] = yield call(() =>\n Promise.all(pAuthorizations)\n )\n\n // If not authorized check permissions on estate\n const notAllowedAuthorizations = parcelAuthorizations.filter(\n a => !a.isUpdateAuthorized\n )\n const allowedAuthorizations = parcelAuthorizations.filter(\n a => a.isUpdateAuthorized\n )\n\n const pEstateAuthorizations: unknown[] = []\n for (const a of notAllowedAuthorizations) {\n const assetId = assetIds.get(coordsToString(a))\n const pAuthorization = new Promise((resolve, reject) => {\n EstateRegistry['getLandEstateId'](assetId)\n .then((estate: any) => {\n if (estate && estate > 0) {\n return EstateRegistry['isUpdateAuthorized'](address, estate).then(\n (isUpdateAuthorized: any) => {\n resolve({ ...a, isUpdateAuthorized })\n }\n )\n } else {\n return resolve(a) // If no estate leave authorization in false\n }\n })\n .catch(reject)\n })\n pEstateAuthorizations.push(pAuthorization)\n }\n\n const estateAuthorizations: Authorization[] = yield call(() =>\n Promise.all(pEstateAuthorizations)\n )\n\n const authorizations = [...allowedAuthorizations, ...estateAuthorizations]\n yield put(fetchAuthorizationsSuccess(authorizations))\n } catch (error) {\n yield put(fetchAuthorizationsFailure((error as Error).message))\n }\n}\n\nfunction* handleConnectWalletSuccess(): any {\n const address = yield call(() => getAddress)\n yield put(fetchAuthorizationsRequest(address))\n}\n","import { createSelector } from 'reselect'\n\nimport { RootState } from '../../types'\n\nexport const getState = (state: RootState) => state.land\n\nexport const getData = createSelector(getState, state => state.data)\n\nexport const isLoading = createSelector(\n getState,\n state => state.loading.length > 0\n)\n\nexport const getError = createSelector(getState, state => state.error)\n","import { createSelector } from 'reselect'\nimport { RootState } from '../../types'\n\nexport const getState = (state: RootState) => state.signature\nexport const getData = createSelector(getState, state => state.data)\nexport const isLoading = createSelector(\n getState,\n state => state.loading.length > 0\n)\nexport const getError = createSelector(getState, state => state.error)\n","import { createSelector } from 'reselect'\n\nimport { RootState } from '../../types'\nimport { Authorization } from './types'\n\nexport const getState = (state: RootState) => state.authorization\n\nexport const getData = createSelector(getState, state => state.data)\n\nexport const isLoading = createSelector(\n getState,\n state => state.loading.length > 0\n)\n\nexport const getError = createSelector(getState, state => state.error)\n\nexport const isUpdateAuthorized = createSelector(getData, authorizations => {\n if (!authorizations?.length) {\n return\n }\n\n return authorizations.every((a: Authorization) => a.isUpdateAuthorized)\n})\n","import React from 'react'\n\nexport default React.memo(({ children }: { children: string }) => (\n <p style={{ color: 'var(--primary)' }}> Error: {children}</p>\n))\n","import { getConfig } from '../../config'\nimport { Props } from './types'\n\nexport default function LandInfo({ deployUrl, base }: Props) {\n const name = base.name ?? 'LAND without name'\n\n const { x, y } = getConfig('baseParcel')\n\n return (\n <p>\n Updating <b>{name}</b>{' '}\n <a href={deployUrl} target=\"_blank\" rel=\"noreferrer\">\n at coordinates {x}, {y}\n </a>\n </p>\n )\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\n primary\n onClick={onConnectWallet}\n loading={isConnecting}\n disabled={isConnecting}\n >\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 {\n getData as getWallet,\n isConnected,\n isConnecting\n} from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport {\n isLoading as isLandLoading,\n getData as getLand,\n getError as getLandError\n} from '../../modules/land/selectors'\nimport {\n getData as getSignature,\n isLoading as isSigningTx\n} from '../../modules/signature/selectors'\nimport {\n getData as getAuthorizations,\n isUpdateAuthorized,\n isLoading as isAuthorizationLoading\n} from '../../modules/authorization/selectors'\nimport { signContentRequest } from '../../modules/signature/actions'\nimport { RootState } from '../../types'\nimport { MapStateProps, MapDispatchProps } from './types'\n\nimport LinkerPage from './LinkerPage'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n base: getLand(state),\n wallet: getWallet(state)!,\n isLandLoading: isLandLoading(state),\n isConnected: isConnected(state),\n isConnecting: isConnecting(state),\n error: getLandError(state)!,\n signed: !!getSignature(state),\n isUpdateAuthorized: isUpdateAuthorized(state),\n authorizations: getAuthorizations(state),\n isAuthorizationLoading: isAuthorizationLoading(state),\n isSigning: isSigningTx(state)\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: () => dispatch(enableWalletRequest(ProviderType.INJECTED)),\n onSignContent: (cid: string) => dispatch(signContentRequest(cid))\n})\n\nexport default connect(mapState, mapDispatch)(LinkerPage)\n","import LinkerPage from './LinkerPage.container'\nexport default LinkerPage\n","import { SyntheticEvent } from 'react'\nimport './style.css'\nimport { Header, Button, Navbar } from 'decentraland-ui'\nimport { ChainId } from '@dcl/schemas'\nimport { getConfig, isDevelopment } from '../../config'\nimport Error from '../Error'\nimport { Props } from './types'\nimport LandInfo from '../LandInfo/LandInfo'\nimport RenderWalletData from '../RenderWalletData/RenderWalletData'\n\nexport default function LinkScenePage(props: Props) {\n const {\n isConnected,\n wallet,\n authorizations,\n isUpdateAuthorized,\n isConnecting,\n onConnectWallet,\n isSigning,\n base,\n error,\n isAuthorizationLoading,\n signed\n } = props\n\n const handleSignature = (e: SyntheticEvent) => {\n e.preventDefault()\n const { onSignContent } = props\n onSignContent(getConfig('rootCID'))\n }\n\n const { x, y } = getConfig('baseParcel')\n const rootCID = getConfig('rootCID')\n const isRopsten = wallet?.chainId === ChainId.ETHEREUM_ROPSTEN\n const networkName = isRopsten ? 'zone' : 'org'\n const deployUrl = `https://play.decentraland.${networkName}/?position=${x},${y}`\n\n return (\n <div className=\"LinkScenePage\">\n {isRopsten && <div className=\"warning\">Using Ropsten test network</div>}\n <Navbar />\n <Header>Update LAND data</Header>\n <RenderWalletData\n authorizations={authorizations}\n isUpdateAuthorized={isUpdateAuthorized}\n isConnected={isConnected}\n isConnecting={isConnecting}\n wallet={wallet}\n onConnectWallet={onConnectWallet}\n />\n <div>\n <img\n style={{ maxWidth: '100%', maxHeight: '100%', width: '35%' }}\n className=\"map\"\n src={`https://api.decentraland.${networkName}/v1/parcels/${x}/${y}/map.png`}\n alt={`Base parcel ${x},${y}`}\n />\n </div>\n <LandInfo deployUrl={deployUrl} base={base} />\n <p>\n Project CID: <b>{rootCID}</b>\n </p>\n {isConnected && signed && (\n <p>\n Content was succesfully signed and it's being uploaded{' '}\n <a href={deployUrl} target=\"_blank\" rel=\"noreferrer\">\n here\n </a>\n . You can close this page and check the CLI for more info.\n </p>\n )}\n <form>\n <div>\n <Button\n primary\n onClick={handleSignature}\n disabled={\n !isConnected ||\n !!error ||\n isAuthorizationLoading ||\n !isUpdateAuthorized\n }\n loading={isSigning}\n >\n Sign and Deploy\n </Button>\n </div>\n </form>\n {error ? (\n isDevelopment() ? (\n <Error>{error}</Error>\n ) : (\n <Error>There was an unexpected error.</Error>\n )\n ) : null}\n </div>\n )\n}\n","import ReactDOM from 'react-dom'\nimport WalletProvider from 'decentraland-dapps/dist/providers/WalletProvider'\nimport { Provider } from 'react-redux'\n\nimport { initStore } from './store'\nimport LinkerPage from './components/LinkerPage'\n\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 <LinkerPage />\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 { init as initConfig } from './config'\nimport { rootReducer } from './reducer'\nimport { rootSaga } from './sagas'\n\nexport function initStore() {\n initConfig()\n const composeEnhancers =\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\n\n const { storageMiddleware, loadStorageMiddleware } = createStorageMiddleware({\n storageKey: 'decentraland-linker'\n })\n const sagasMiddleware = createSagasMiddleware()\n const transactionMiddleware = createTransactionMiddleware()\n const loggerMiddleware = createLogger({\n collapsed: () => true,\n predicate: (_, _action) => false // isDevelopment() || action.type.includes('Failure')\n })\n\n const middleware = applyMiddleware(\n sagasMiddleware,\n loggerMiddleware,\n storageMiddleware,\n transactionMiddleware\n )\n\n const enhancer = composeEnhancers(middleware)\n const store = createStore(rootReducer, enhancer)\n\n sagasMiddleware.run(rootSaga())\n loadStorageMiddleware(store)\n\n return store\n}\n","import { all } from 'redux-saga/effects'\n\nimport { landSaga } from './modules/land/sagas'\nimport { walletSaga } from './modules/wallet/sagas'\nimport { signatureSaga } from './modules/signature/sagas'\nimport { authorizationSaga } from './modules/authorization/sagas'\n\nexport function rootSaga() {\n return function*() {\n yield all([walletSaga(), landSaga(), signatureSaga(), authorizationSaga()])\n }\n}\n"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!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:"
|
|
2
|
-
//# sourceMappingURL=runtime-main.
|
|
1
|
+
!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:"3729e404"}[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()}([]);
|
|
2
|
+
//# sourceMappingURL=runtime-main.9b665341.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","this","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime-main.378dad2a.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"3\":\"44685914\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = this[\"webpackJsonp@dcl/linker-dapp\"] = this[\"webpackJsonp@dcl/linker-dapp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","this","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime-main.9b665341.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"3\":\"3729e404\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = this[\"webpackJsonp@dcl/linker-dapp\"] = this[\"webpackJsonp@dcl/linker-dapp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(this["webpackJsonp@dcl/linker-dapp"]=this["webpackJsonp@dcl/linker-dapp"]||[]).push([[0],{1273:function(e,t,n){"use strict";n.r(t);var a,s=n(107),r=n.n(s),i=n(555),u=n.n(i),p=n(191),o=n(121),d=n(582),y=n(569),l=n(570),c=n(571),m=n(246),f=n(75);function b(e){return e?("string"===typeof e?[e]:e).map((function(e){var t=e.split(","),n=Object(m.a)(t,2),a=n[0],s=n[1];return{x:parseInt(a,10),y:parseInt(s,10)}})):[{x:0,y:0}]}function v(){!function(){var e,t,n=new URLSearchParams(window.location.search);a={baseParcel:b(n.get("baseParcel"))[0],parcels:b(n.getAll("parcels")),rootCID:n.get("rootCID")||"QmPjpPyibbryTCi75zzcdeuPUBcujtEqj43shwKBAdMojy",debug:"true"===n.get("debug"),estateRegistry:n.get("estateRegistry"),landRegistry:n.get("landRegistry"),chainId:"0x1"===(null===(e=window)||void 0===e||null===(t=e.ethereum)||void 0===t?void 0:t.chainId)?f.ChainId.ETHEREUM_MAINNET:f.ChainId.ETHEREUM_ROPSTEN}}()}function x(){var e,t;return"0x1"!==(null===(e=window)||void 0===e||null===(t=e.ethereum)||void 0===t?void 0:t.chainId)}function g(){var e;return!!(null===(e=a)||void 0===e?void 0:e.debug)}function w(e){return a[e]}var O=n(572),h=n(573),j=n(60),M=n(77),_=n(70),I="[Request] Fetch LAND",k="[Success] Fetch LAND",A="[Failure] Fetch LAND",L=function(e){return Object(_.action)(k,{land:e})},E={data:{},loading:[],error:null},C="[Request] Sign Content",D="[Success] Sign Content",z="[Failure] Sign Content",N=function(e){return Object(_.action)(z,{error:e})},U={data:"",loading:[],error:null},R="[Request] Fetch LAND Authorizations",S="[Success] Fetch LAND Authorizations",T="[Failure] Fetch LAND Authorizations",F=function(e){return Object(_.action)(S,{authorizations:e})},P={data:[],loading:[],error:null},W=Object(o.b)({wallet:O.walletReducer,transaction:h.transactionReducer,land: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 I:return Object(j.a)(Object(j.a)({},e),{},{loading:Object(M.loadingReducer)(e.loading,t)});case k:return{loading:Object(M.loadingReducer)(e.loading,t),data:t.payload.land,error:null};case A:return Object(j.a)(Object(j.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]:U,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case C:return Object(j.a)(Object(j.a)({},e),{},{loading:Object(M.loadingReducer)(e.loading,t)});case D:return{loading:Object(M.loadingReducer)(e.loading,t),data:t.payload.signature,error:null};case z:return Object(j.a)(Object(j.a)({},e),{},{loading:Object(M.loadingReducer)(e.loading,t),error:t.payload.error});default:return e}},authorization:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:P,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case R:return Object(j.a)(Object(j.a)({},e),{},{loading:Object(M.loadingReducer)(e.loading,t)});case S:return{loading:Object(M.loadingReducer)(e.loading,t),data:t.payload.authorizations,error:null};case T:return Object(j.a)(Object(j.a)({},e),{},{loading:Object(M.loadingReducer)(e.loading,t),error:t.payload.error});default:return e}}}),B=n(2),H=n.n(B),J=n(24),q=n(82),G=n(574),K=n(15),Y=n(137),X=n(118),Q=n(336),V=n(575),Z=n(576),$={};function ee(){return te.apply(this,arguments)}function te(){return(te=Object(K.a)(H.a.mark((function e(){var t,n,a;return H.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if($.land){e.next=5;break}return e.next=3,Object(X.getConnectedProvider)();case 3:(t=e.sent)&&(n=w("landRegistry"),a=n||(x()?"0x7a73483784ab79257bb11b96fd62a2c3ae4fb75b":"0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d"),$.land=new Y.b(a,Z.a,new Q.a(t).getSigner()));case 5:return e.abrupt("return",$.land);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ne(){return ae.apply(this,arguments)}function ae(){return(ae=Object(K.a)(H.a.mark((function e(){var t,n,a;return H.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if($.estate){e.next=5;break}return e.next=3,Object(X.getConnectedProvider)();case 3:(t=e.sent)&&(n=w("landRegistry"),a=n||(x()?"0x124bf28a423b2ca80b3846c3aa0eb944fe7ebb95":"0x959e104e1a4db6317fa58f8295f586e1a978c297"),$.estate=new Y.b(a,V.a,new Q.a(t).getSigner()));case 5:return e.abrupt("return",$.estate);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function se(e){var t=e.x,n=e.y;return"".concat(t,",").concat(n)}var re=H.a.mark(pe),ie=H.a.mark(oe),ue=H.a.mark(de);function pe(){return H.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(J.takeEvery)(I,oe);case 2:return e.next=4,Object(J.takeEvery)(q.CONNECT_WALLET_SUCCESS,de);case 4:case"end":return e.stop()}}),re)}function oe(e){var t,n,a,s,r,i;return H.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return u.next=2,Object(J.call)((function(){return ee()}));case 2:return t=u.sent,u.prev=3,n=e.payload,a=n.x,s=n.y,u.next=7,Object(J.call)((function(){return t.landData(a,s)}));case 7:if(!(r=u.sent)){u.next=14;break}return u.next=11,Object(J.call)((function(){return ye(r)}));case 11:u.t0=u.sent,u.next=15;break;case 14:u.t0={version:0,name:"",description:""};case 15:return i=u.t0,u.next=18,Object(J.put)(L(i));case 18:u.next=24;break;case 20:return u.prev=20,u.t1=u.catch(3),u.next=24,Object(J.put)((p=u.t1.message,Object(_.action)(A,{error:p})));case 24:case"end":return u.stop()}var p}),ie,null,[[3,20]])}function de(){return H.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(J.put)((t=w("baseParcel"),Object(_.action)(I,t)));case 2:case"end":return e.stop()}var t}),ue)}function ye(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.charAt(0);if("0"===t){var n=Object(m.a)(G.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 le=n(577),ce=H.a.mark(be),me=H.a.mark(ve),fe=H.a.mark(xe);function be(){var e;return H.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=Object(le.createWalletSaga)({CHAIN_ID:w("chainId")}),t.next=3,Object(J.all)([e(),ve()]);case 3:case"end":return t.stop()}}),ce)}function ve(){return H.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(J.takeEvery)(q.CHANGE_NETWORK,xe);case 2:return e.next=4,Object(J.takeEvery)(q.CHANGE_ACCOUNT,xe);case 4:case"end":return e.stop()}}),me)}function xe(){return H.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(J.call)((function(){return window.location.reload()}));case 2:case"end":return e.stop()}}),fe)}var ge=n(84),we=n(72),Oe=n(3);function he(e,t){return je.apply(this,arguments)}function je(){return(je=Object(K.a)(H.a.mark((function e(t,n){return H.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("/api/close?ok=".concat(t,"&reason=").concat(JSON.stringify(n)));case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Me=H.a.mark(ke),_e=H.a.mark(Ae),Ie=H.a.mark(Le);function ke(){return H.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(J.takeLatest)(C,Ae);case 2:return e.next=4,Object(J.takeEvery)(D,Le);case 4:case"end":return e.stop()}}),Me)}function Ae(e){var t,n,a,s,r,i;return H.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return u.prev=0,t=Object(we.f)(e.payload),u.next=4,Object(J.call)((function(){return Object(X.getConnectedProvider)()}));case 4:return n=u.sent,a=new Q.a(n),s=a.getSigner(),u.next=9,Object(J.call)((function(){return s.getAddress()}));case 9:return r=u.sent,u.next=12,Object(J.call)((function(){return n.send("personal_sign",[Object(Oe.i)(t),r.toLowerCase()])}));case 12:return i=u.sent,u.next=15,Object(J.put)((p=i,Object(_.action)(D,{signature:p})));case 15:u.next=21;break;case 17:return u.prev=17,u.t0=u.catch(0),u.next=21,Object(J.put)(N(u.t0.message));case 21:case"end":return u.stop()}var p}),_e,null,[[0,17]])}function Le(e){var t,n,a;return H.a.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return s.next=2,Object(J.select)(ge.getAddress);case 2:return t=s.sent,s.next=5,Object(J.select)(ge.getNetwork);case 5:return n=s.sent,a=e.payload.signature,s.prev=7,s.next=10,Object(J.call)((function(){he(!0,{signature:a,address:t,network:n})}));case 10:s.next=16;break;case 12:return s.prev=12,s.t0=s.catch(7),s.next=16,Object(J.put)(N(s.t0.message));case 16:case"end":return s.stop()}}),Ie,null,[[7,12]])}var Ee=n(108),Ce=n(339),De=H.a.mark(Ue),ze=H.a.mark(Re),Ne=H.a.mark(Se);function Ue(){return H.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(J.takeEvery)(q.CONNECT_WALLET_SUCCESS,Se);case 2:return e.next=4,Object(J.takeEvery)(R,Re);case 4:case"end":return e.stop()}}),De)}function Re(){var e,t;return H.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Object(J.call)((function(){return ee()}));case 2:return e=n.sent,n.next=5,Object(J.call)((function(){return ne()}));case 5:return t=n.sent,n.prev=6,n.delegateYield(H.a.mark((function n(){var a,s,r,i,u,p,o,d,y,l,c,m,f,b,v;return H.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Object(J.select)(ge.getAddress);case 2:a=n.sent,s=new Map,r=[],i=Object(Ce.a)(w("parcels"));try{for(p=function(){var t=u.value,n=t.x,i=t.y,p=new Promise((function(r,u){e.encodeTokenId(n,i).then((function(p){e.isUpdateAuthorized(a,p).then((function(e){s.set(se(t),p),r({x:n,y:i,isUpdateAuthorized:e})})).catch(u)})).catch(u)}));r.push(p)},i.s();!(u=i.n()).done;)p()}catch(x){i.e(x)}finally{i.f()}return n.next=9,Object(J.call)((function(){return Promise.all(r)}));case 9:o=n.sent,d=o.filter((function(e){return!e.isUpdateAuthorized})),y=o.filter((function(e){return e.isUpdateAuthorized})),l=[],c=Object(Ce.a)(d);try{for(f=function(){var e=m.value,n=s.get(se(e)),r=new Promise((function(s,r){t.getLandEstateId(n).then((function(n){return n&&n>0?t.isUpdateAuthorized(a,n).then((function(t){s(Object(j.a)(Object(j.a)({},e),{},{isUpdateAuthorized:t}))})):s(e)})).catch(r)}));l.push(r)},c.s();!(m=c.n()).done;)f()}catch(x){c.e(x)}finally{c.f()}return n.next=17,Object(J.call)((function(){return Promise.all(l)}));case 17:return b=n.sent,v=[].concat(Object(Ee.a)(y),Object(Ee.a)(b)),n.next=21,Object(J.put)(F(v));case 21:case"end":return n.stop()}}),n)}))(),"t0",8);case 8:n.next=14;break;case 10:return n.prev=10,n.t1=n.catch(6),n.next=14,Object(J.put)((a=n.t1.message,Object(_.action)(T,{error:a})));case 14:case"end":return n.stop()}var a}),ze,null,[[6,10]])}function Se(){var e;return H.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,Object(J.call)((function(){return ge.getAddress}));case 2:return e=t.sent,t.next=5,Object(J.put)((n=e,Object(_.action)(R,{owner:n})));case 5:case"end":return t.stop()}var n}),Ne)}var Te=n(187),Fe=n(86),Pe=function(e){return e.land},We=Object(Fe.a)(Pe,(function(e){return e.data})),Be=Object(Fe.a)(Pe,(function(e){return e.loading.length>0})),He=Object(Fe.a)(Pe,(function(e){return e.error})),Je=function(e){return e.signature},qe=Object(Fe.a)(Je,(function(e){return e.data})),Ge=(Object(Fe.a)(Je,(function(e){return e.loading.length>0})),Object(Fe.a)(Je,(function(e){return e.error})),function(e){return e.authorization}),Ke=Object(Fe.a)(Ge,(function(e){return e.data})),Ye=Object(Fe.a)(Ge,(function(e){return e.loading.length>0})),Xe=(Object(Fe.a)(Ge,(function(e){return e.error})),Object(Fe.a)(Ke,(function(e){if(null===e||void 0===e?void 0:e.length)return e.every((function(e){return e.isUpdateAuthorized}))}))),Qe=n(8),Ve=n(9),Ze=n(12),$e=n(11),et=n(0),tt=n.n(et),nt=n(141),at=n(33),st=tt.a.memo((function(e){var t=e.children;return Object(at.jsxs)("p",{style:{color:"var(--primary)"},children:[" Error: ",t]})})),rt=function(e){Object(Ze.a)(n,e);var t=Object($e.a)(n);function n(){var e;Object(Qe.a)(this,n);for(var a=arguments.length,s=new Array(a),r=0;r<a;r++)s[r]=arguments[r];return(e=t.call.apply(t,[this].concat(s))).handleSignature=function(t){t.preventDefault(),(0,e.props.onSignContent)(w("rootCID"))},e}return Object(Ve.a)(n,[{key:"getLANDname",value:function(){var e=this.props.base;return e.name?'"'.concat(e.name,'"'):"LAND without name"}},{key:"getFormattedUnauthorized",value:function(){return this.props.authorizations.filter((function(e){return!e.isUpdateAuthorized})).map((function(e){return'"'.concat(se(e),'"')})).join(", ")}},{key:"renderWalletData",value:function(){var e=this.props,t=e.isConnected,n=e.wallet,a=e.authorizations,s=e.isUpdateAuthorized,r=e.isConnecting,i=e.onConnectWallet;return t&&n.address?Object(at.jsxs)(tt.a.Fragment,{children:[Object(at.jsxs)("p",{children:["Using address: \xa0",Object(at.jsx)(nt.Blockie,{scale:3,seed:n.address,children:Object(at.jsx)(nt.Address,{tooltip:!0,strong:!0,value:n.address})})]}),a.length&&!s?Object(at.jsx)(st,{children:"You don't have permissions to update The following LANDs that are part of the scene: ".concat(this.getFormattedUnauthorized())}):null]}):Object(at.jsxs)(tt.a.Fragment,{children:[r?null:Object(at.jsx)("p",{children:"Could not find any wallet"}),Object(at.jsx)("p",{children:Object(at.jsx)(nt.Button,{primary:!0,onClick:i,loading:r,disabled:r,children:"Reconnect\xa0"})})]})}},{key:"renderLANDinfo",value:function(){var e=this.props,t=e.error,n=e.isLandLoading,a=e.isConnected,s=w("baseParcel"),r=s.x,i=s.y;if(!t&&a&&!n)return Object(at.jsxs)("p",{children:["Updating ",Object(at.jsx)("b",{children:this.getLANDname()})," at coordinates"," ",Object(at.jsxs)("b",{children:[r,", ",i]})]})}},{key:"render",value:function(){var e=this.props,t=e.error,n=e.isConnected,a=e.isUpdateAuthorized,s=e.isAuthorizationLoading,r=e.signed,i=e.wallet,u=w("baseParcel"),p=u.x,o=u.y,d=w("rootCID"),y=(null===i||void 0===i?void 0:i.chainId)===f.ChainId.ETHEREUM_ROPSTEN;return Object(at.jsxs)("div",{className:"LinkScenePage",children:[Object(at.jsx)(nt.Navbar,{}),Object(at.jsx)(nt.Header,{children:"Update LAND data"}),this.renderWalletData(),Object(at.jsx)("div",{children:Object(at.jsx)("img",{style:{maxWidth:"100%",maxHeight:"100%",width:"45%"},className:"map",src:"https://api.decentraland.".concat(y?"zone":"org","/v1/parcels/").concat(p,"/").concat(o,"/map.png"),alt:"Base parcel ".concat(p,",").concat(o)})}),this.renderLANDinfo(),Object(at.jsxs)("p",{children:["Project CID: ",Object(at.jsx)("b",{children:d})]}),Object(at.jsx)("form",{children:Object(at.jsx)("div",{children:Object(at.jsx)(nt.Button,{primary:!0,onClick:this.handleSignature,disabled:!n||!!t||s||!a,children:"Sign and Deploy"})})}),n&&r&&Object(at.jsx)("p",{children:"Content was succesfully signed and it's being uploaded. You can close this page and check the CLI for more info."}),t?g()?Object(at.jsx)(st,{children:t}):Object(at.jsx)(st,{children:"There was an unexpected error."}):null,Object(at.jsx)("style",{children:"\n .LinkScenePage {\n text-align: center;\n }\n .map {\n padding: 15px;\n }\n .options div input {\n color: white;\n }\n "}),y?Object(at.jsx)("style",{children:"\n body:before {\n content: 'Using Ropsten test network';\n background: var(--primary);\n color: white;\n text-align: center;\n text-transform: uppercase;\n height: 24px;\n width: 100%;\n position: fixed;\n padding-top: 2px;\n }\n .LinkScenePage {\n padding-top: 24px;\n }\n "}):null]})}}]),n}(tt.a.PureComponent),it=Object(p.connect)((function(e){return{base:We(e),wallet:Object(ge.getData)(e),isLandLoading:Be(e),isConnected:Object(ge.isConnected)(e),isConnecting:Object(ge.isConnecting)(e),error:He(e),signed:!!qe(e),isUpdateAuthorized:Xe(e),authorizations:Ke(e),isAuthorizationLoading:Ye(e)}}),(function(e){return{onConnectWallet:function(){return e(Object(q.enableWalletRequest)(Te.ProviderType.INJECTED))},onSignContent:function(t){return e(function(e){return Object(_.action)(C,e)}(t))}}}))(rt);n(1270),n(1271);r.a.render(Object(at.jsx)(p.Provider,{store:function(){v();var e=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||o.c,t=Object(c.createStorageMiddleware)({storageKey:"decentraland-linker"}),n=t.storageMiddleware,a=t.loadStorageMiddleware,s=Object(d.a)(),r=Object(l.createTransactionMiddleware)(),i=Object(y.createLogger)({collapsed:function(){return!0},predicate:function(e,t){return!1}}),u=e(Object(o.a)(s,i,n,r)),p=Object(o.d)(W,u);return s.run(H.a.mark((function e(){return H.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Object(J.all)([be(),pe(),ke(),Ue()]);case 2:case"end":return e.stop()}}),e)}))),a(p),p}(),children:Object(at.jsx)(u.a,{children:Object(at.jsx)(it,{})})}),document.getElementById("root"))},575:function(e){e.exports=JSON.parse('{"a":[{"constant":true,"inputs":[{"name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"updateManager","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"landIdEstate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"estateLandIds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"exists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"registry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"updateOperator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"estateLandIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"contractName","type":"string"},{"name":"migrationId","type":"string"}],"name":"isMigrated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_estateId","type":"uint256"},{"indexed":false,"name":"_data","type":"string"}],"name":"CreateEstate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_estateId","type":"uint256"},{"indexed":true,"name":"_landId","type":"uint256"}],"name":"AddLand","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_estateId","type":"uint256"},{"indexed":true,"name":"_landId","type":"uint256"},{"indexed":true,"name":"_destinatary","type":"address"}],"name":"RemoveLand","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_assetId","type":"uint256"},{"indexed":true,"name":"_holder","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":false,"name":"_data","type":"string"}],"name":"Update","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_estateId","type":"uint256"},{"indexed":true,"name":"_operator","type":"address"}],"name":"UpdateOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":true,"name":"_caller","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"UpdateManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_registry","type":"address"}],"name":"SetLANDRegistry","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"contractName","type":"string"},{"indexed":false,"name":"migrationId","type":"string"}],"name":"Migrated","type":"event"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"metadata","type":"string"}],"name":"mint","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"landId","type":"uint256"},{"name":"destinatary","type":"address"}],"name":"transferLand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"landIds","type":"uint256[]"},{"name":"destinatary","type":"address"}],"name":"transferManyLands","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"landId","type":"uint256"}],"name":"getLandEstateId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_registry","type":"address"}],"name":"setLANDRegistry","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"ping","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"estateId","type":"uint256"}],"name":"getEstateSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"metadata","type":"string"}],"name":"updateMetadata","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"estateId","type":"uint256"}],"name":"getMetadata","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"operator","type":"address"},{"name":"estateId","type":"uint256"}],"name":"isUpdateAuthorized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"},{"name":"_approved","type":"bool"}],"name":"setUpdateManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"operator","type":"address"}],"name":"setUpdateOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"landId","type":"uint256"},{"name":"operator","type":"address"}],"name":"setLandUpdateOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_registry","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"},{"name":"_from","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"onERC721Received","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"estateId","type":"uint256"}],"name":"getFingerprint","outputs":[{"name":"result","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"estateId","type":"uint256"},{"name":"fingerprint","type":"bytes"}],"name":"verifyFingerprint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"estateIds","type":"uint256[]"}],"name":"safeTransferManyFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"estateIds","type":"uint256[]"},{"name":"data","type":"bytes"}],"name":"safeTransferManyFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"landId","type":"uint256"},{"name":"data","type":"string"}],"name":"updateLandData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"estateId","type":"uint256"},{"name":"landIds","type":"uint256[]"},{"name":"data","type":"string"}],"name":"updateManyLandData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]}')},576:function(e){e.exports=JSON.parse('{"a":[{"constant":true,"inputs":[{"name":"_interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proxyOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"updateManager","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"operator","type":"address"},{"name":"assetId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"latestPing","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"operator","type":"address"},{"name":"assetId","type":"uint256"}],"name":"isAuthorized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"authorizedDeploy","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"assetId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"assetId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"tokensOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"GET_METADATA","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"description","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"updateOperator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"operator","type":"address"},{"name":"authorized","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"assetId","type":"uint256"},{"name":"userData","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"estateRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetHolder","type":"address"},{"name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetId","type":"uint256"}],"name":"getApprovedAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"registry","type":"address"}],"name":"EstateRegistrySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"assetId","type":"uint256"},{"indexed":true,"name":"holder","type":"address"},{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"data","type":"string"}],"name":"Update","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"assetId","type":"uint256"},{"indexed":true,"name":"operator","type":"address"}],"name":"UpdateOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":true,"name":"_caller","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"UpdateManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_caller","type":"address"},{"indexed":true,"name":"_deployer","type":"address"}],"name":"DeployAuthorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_caller","type":"address"},{"indexed":true,"name":"_deployer","type":"address"}],"name":"DeployForbidden","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"assetId","type":"uint256"},{"indexed":false,"name":"operator","type":"address"},{"indexed":false,"name":"userData","type":"bytes"},{"indexed":false,"name":"operatorData","type":"bytes"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"assetId","type":"uint256"},{"indexed":false,"name":"operator","type":"address"},{"indexed":false,"name":"userData","type":"bytes"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"assetId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"authorized","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"operator","type":"address"},{"indexed":true,"name":"assetId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_prevOwner","type":"address"},{"indexed":false,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","type":"event"},{"constant":false,"inputs":[{"name":"","type":"bytes"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"operator","type":"address"},{"name":"assetId","type":"uint256"}],"name":"isUpdateAuthorized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"authorizeDeploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"forbidDeploy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"},{"name":"beneficiary","type":"address"}],"name":"assignNewParcel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"beneficiary","type":"address"}],"name":"assignMultipleParcels","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"ping","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"}],"name":"setLatestToNow","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"}],"name":"encodeTokenId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"value","type":"uint256"}],"name":"decodeTokenId","outputs":[{"name":"","type":"int256"},{"name":"","type":"int256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"}],"name":"exists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetId","type":"uint256"}],"name":"exists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"}],"name":"ownerOfLand","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"}],"name":"ownerOfLandMany","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"landOf","outputs":[{"name":"","type":"int256[]"},{"name":"","type":"int256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"assetId","type":"uint256"}],"name":"tokenMetadata","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"}],"name":"landData","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"assetId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"},{"name":"to","type":"address"}],"name":"transferLand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"to","type":"address"}],"name":"transferManyLand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"},{"name":"estateId","type":"uint256"}],"name":"transferLandToEstate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"estateId","type":"uint256"}],"name":"transferManyLandToEstate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"assetId","type":"uint256"},{"name":"operator","type":"address"}],"name":"setUpdateOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"},{"name":"_approved","type":"bool"}],"name":"setUpdateManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"registry","type":"address"}],"name":"setEstateRegistry","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"beneficiary","type":"address"}],"name":"createEstate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"beneficiary","type":"address"},{"name":"metadata","type":"string"}],"name":"createEstateWithMetadata","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256"},{"name":"y","type":"int256"},{"name":"data","type":"string"}],"name":"updateLandData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int256[]"},{"name":"y","type":"int256[]"},{"name":"data","type":"string"}],"name":"updateManyLandData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]}')},674:function(e,t){},691:function(e,t){},729:function(e,t){},731:function(e,t){},752:function(e,t){},754:function(e,t){},766:function(e,t){},787:function(e,t){},789:function(e,t){}},[[1273,1,2]]]);
|
|
2
|
-
//# sourceMappingURL=main.0e435c2c.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["config.ts","modules/land/actions.ts","modules/land/reducer.ts","modules/signature/actions.ts","modules/signature/reducer.ts","modules/authorization/actions.ts","modules/authorization/reducer.ts","reducer.ts","contracts.ts","modules/land/utils.ts","modules/land/sagas.ts","modules/wallet/sagas.ts","modules/server/utils.ts","modules/signature/sagas.ts","modules/authorization/sagas.ts","modules/land/selectors.ts","modules/signature/selectors.ts","modules/authorization/selectors.ts","components/Error.tsx","components/LinkerPage/LinkerPage.tsx","components/LinkerPage/index.ts","components/LinkerPage/LinkerPage.container.tsx","index.tsx","store.ts","sagas.ts"],"names":["config","parseCoords","query","map","c","split","x","y","parseInt","init","searchParams","URLSearchParams","window","location","search","baseParcel","get","parcels","getAll","rootCID","debug","estateRegistry","landRegistry","chainId","ethereum","ChainId","ETHEREUM_MAINNET","ETHEREUM_ROPSTEN","setConfig","isRopsten","isDevelopment","getConfig","key","FETCH_LAND_REQUEST","FETCH_LAND_SUCCESS","FETCH_LAND_FAILURE","fetchLandSuccess","land","action","INITIAL_STATE","data","loading","error","SIGN_CONTENT_REQUEST","SIGN_CONTENT_SUCCESS","SIGN_CONTENT_FAILURE","signContentFailure","FETCH_AUTHORIZATIONS_REQUEST","FETCH_AUTHORIZATIONS_SUCCESS","FETCH_AUTHORIZATIONS_FAILURE","fetchAuthorizationsSuccess","authorizations","rootReducer","combineReducers","wallet","transaction","state","type","loadingReducer","payload","signature","authorization","contractInstances","getLandContract","a","getConnectedProvider","provider","address","Contract","LANDRegistry","Web3Provider","getSigner","getEstateContract","estate","EstateRegistry","coordsToString","landSaga","handleFetchLandRequest","handleConnectWalletSuccess","takeEvery","CONNECT_WALLET_SUCCESS","call","decodeLandData","version","name","description","put","message","coords","charAt","CSV","cellDelimiter","ipns","Error","walletSaga","fullWalletSaga","handleWallet","baseWalletSaga","createWalletSaga","CHAIN_ID","all","CHANGE_NETWORK","CHANGE_ACCOUNT","reload","closeServer","ok","fetch","JSON","stringify","signatureSaga","handleSignContentRequest","handleSignContentSuccess","takeLatest","dataToSign","toUtf8Bytes","web3provider","signer","getAddress","addr","send","hexlify","toLowerCase","signedMessage","select","getNetwork","network","authorizationSaga","handleFetchAuthorizationsRequest","assetIds","Map","pAuthorizations","parcel","pAuthorization","Promise","resolve","reject","then","assetId","isUpdateAuthorized","set","catch","push","f","parcelAuthorizations","notAllowedAuthorizations","filter","allowedAuthorizations","pEstateAuthorizations","estateAuthorizations","owner","getState","getData","createSelector","isLoading","length","getError","every","React","memo","children","style","color","LinkScenePage","handleSignature","e","preventDefault","onSignContent","props","base","this","join","isConnected","isConnecting","onConnectWallet","Fragment","scale","seed","tooltip","strong","value","getFormattedUnauthorized","primary","onClick","disabled","isLandLoading","getLANDname","isAuthorizationLoading","signed","className","renderWalletData","maxWidth","maxHeight","width","src","alt","renderLANDinfo","PureComponent","LinkerPage","connect","getLand","getWallet","getLandError","getSignature","getAuthorizations","dispatch","enableWalletRequest","ProviderType","INJECTED","cid","signContentRequest","ReactDOM","render","store","initConfig","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStorageMiddleware","storageKey","storageMiddleware","loadStorageMiddleware","sagasMiddleware","createSagasMiddleware","transactionMiddleware","createTransactionMiddleware","loggerMiddleware","createLogger","collapsed","predicate","_","_action","enhancer","applyMiddleware","createStore","run","initStore","document","getElementById"],"mappings":"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","file":"static/js/main.0e435c2c.chunk.js","sourcesContent":["import { ChainId } from '@dcl/schemas'\n\nimport { Coords } from './modules/land/types'\n\ntype Config = {\n baseParcel: Coords\n parcels: Coords[]\n rootCID: string\n debug: boolean\n estateRegistry?: string\n landRegistry?: string\n chainId: ChainId\n}\n\nlet config: Config | undefined\n\nfunction parseCoords(query: string | string[] | null): Coords[] {\n if (!query) return [{ x: 0, y: 0 }]\n const coords = typeof query === 'string' ? [query] : query\n return coords.map(c => {\n const [x, y] = c.split(',')\n return { x: parseInt(x, 10), y: parseInt(y, 10) }\n })\n}\n\ntype UrlFinder = {\n get: (key: keyof Config) => string | null\n getAll: (key: keyof Config) => string[] | null\n}\n\nfunction setConfig() {\n const searchParams = new URLSearchParams(window.location.search) as UrlFinder\n config = {\n baseParcel: parseCoords(searchParams.get('baseParcel'))[0],\n parcels: parseCoords(searchParams.getAll('parcels')),\n rootCID:\n searchParams.get('rootCID') ||\n 'QmPjpPyibbryTCi75zzcdeuPUBcujtEqj43shwKBAdMojy',\n debug: searchParams.get('debug') === 'true',\n estateRegistry: searchParams.get('estateRegistry') as string,\n landRegistry: searchParams.get('landRegistry') as string,\n chainId:\n (window?.ethereum as any)?.chainId === '0x1'\n ? ChainId.ETHEREUM_MAINNET\n : ChainId.ETHEREUM_ROPSTEN\n }\n}\n\nexport function init() {\n setConfig()\n}\n\nexport function isRopsten() {\n return (window?.ethereum as any)?.chainId !== '0x1'\n}\n\nexport function isDevelopment(): boolean {\n return !!config?.debug\n}\n\nexport function getConfig<T extends keyof Config>(key: T) {\n return (config as Config)[key]\n}\n","import { action } from 'typesafe-actions'\nimport { LANDMeta, Coords } from './types'\n\nexport const FETCH_LAND_REQUEST = '[Request] Fetch LAND'\nexport const FETCH_LAND_SUCCESS = '[Success] Fetch LAND'\nexport const FETCH_LAND_FAILURE = '[Failure] Fetch LAND'\n\nexport const fetchLandRequest = (coords: Coords) =>\n action(FETCH_LAND_REQUEST, coords)\nexport const fetchLandSuccess = (land: LANDMeta) =>\n action(FETCH_LAND_SUCCESS, { land })\nexport const fetchLandFailure = (error: string) =>\n action(FETCH_LAND_FAILURE, { error })\n\nexport type FetchLandRequestAction = ReturnType<typeof fetchLandRequest>\nexport type FetchLandSuccessAction = ReturnType<typeof fetchLandSuccess>\nexport type FetchLandFailureAction = ReturnType<typeof fetchLandFailure>\n","import {\n loadingReducer,\n LoadingState\n} from 'decentraland-dapps/dist/modules/loading/reducer'\n\nimport {\n FetchLandRequestAction,\n FetchLandSuccessAction,\n FetchLandFailureAction,\n FETCH_LAND_REQUEST,\n FETCH_LAND_FAILURE,\n FETCH_LAND_SUCCESS\n} from './actions'\n\nexport type LandState = {\n data: any\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: LandState = {\n data: {},\n loading: [],\n error: null\n}\n\nexport type LandReducerAction =\n | FetchLandRequestAction\n | FetchLandSuccessAction\n | FetchLandFailureAction\n\nexport const landReducer = (\n state = INITIAL_STATE,\n action: LandReducerAction\n): LandState => {\n switch (action.type) {\n case FETCH_LAND_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_LAND_SUCCESS:\n return {\n loading: loadingReducer(state.loading, action),\n data: action.payload.land,\n error: null\n }\n case FETCH_LAND_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error\n }\n default: {\n return state\n }\n }\n}\n","import { action } from 'typesafe-actions'\n\nexport const SIGN_CONTENT_REQUEST = '[Request] Sign Content'\nexport const SIGN_CONTENT_SUCCESS = '[Success] Sign Content'\nexport const SIGN_CONTENT_FAILURE = '[Failure] Sign Content'\n\nexport const signContentRequest = (cid: string) =>\n action(SIGN_CONTENT_REQUEST, cid)\nexport const signContentSuccess = (signature: string) =>\n action(SIGN_CONTENT_SUCCESS, { signature })\nexport const signContentFailure = (error: string) =>\n action(SIGN_CONTENT_FAILURE, { error })\n\nexport type SignContentRequestAction = ReturnType<typeof signContentRequest>\nexport type SignContentSuccessAction = ReturnType<typeof signContentSuccess>\nexport type SignContentFailureAction = ReturnType<typeof signContentFailure>\n","import {\n loadingReducer,\n LoadingState\n} from 'decentraland-dapps/dist/modules/loading/reducer'\n\nimport {\n SignContentRequestAction,\n SignContentSuccessAction,\n SignContentFailureAction,\n SIGN_CONTENT_REQUEST,\n SIGN_CONTENT_SUCCESS,\n SIGN_CONTENT_FAILURE\n} from './actions'\n\nexport type SignatureState = {\n data: any\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: SignatureState = {\n data: '',\n loading: [],\n error: null\n}\n\nexport type SignatureReducerAction =\n | SignContentRequestAction\n | SignContentSuccessAction\n | SignContentFailureAction\n\nexport const signatureReducer = (\n state = INITIAL_STATE,\n action: SignatureReducerAction\n): SignatureState => {\n switch (action.type) {\n case SIGN_CONTENT_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case SIGN_CONTENT_SUCCESS:\n return {\n loading: loadingReducer(state.loading, action),\n data: action.payload.signature,\n error: null\n }\n case SIGN_CONTENT_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error\n }\n default: {\n return state\n }\n }\n}\n","import { action } from 'typesafe-actions'\nimport { Authorization } from './types'\n\nexport const FETCH_AUTHORIZATIONS_REQUEST =\n '[Request] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_SUCCESS =\n '[Success] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_FAILURE =\n '[Failure] Fetch LAND Authorizations'\n\nexport const fetchAuthorizationsRequest = (owner: string) =>\n action(FETCH_AUTHORIZATIONS_REQUEST, { owner })\n\nexport const fetchAuthorizationsSuccess = (authorizations: Authorization[]) =>\n action(FETCH_AUTHORIZATIONS_SUCCESS, { authorizations })\n\nexport const fetchAuthorizationsFailure = (error: string) =>\n action(FETCH_AUTHORIZATIONS_FAILURE, { error })\n\nexport type FetchAuthorizationsRequestAction = ReturnType<\n typeof fetchAuthorizationsRequest\n>\nexport type FetchAuthorizationsSuccessAction = ReturnType<\n typeof fetchAuthorizationsSuccess\n>\nexport type FetchAuthorizationsFailureAction = ReturnType<\n typeof fetchAuthorizationsFailure\n>\n","import {\n loadingReducer,\n LoadingState\n} from 'decentraland-dapps/dist/modules/loading/reducer'\n\nimport {\n FetchAuthorizationsRequestAction,\n FetchAuthorizationsSuccessAction,\n FetchAuthorizationsFailureAction,\n FETCH_AUTHORIZATIONS_REQUEST,\n FETCH_AUTHORIZATIONS_SUCCESS,\n FETCH_AUTHORIZATIONS_FAILURE\n} from './actions'\n\nexport type AuthorizationState = {\n data: any\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: AuthorizationState = {\n data: [],\n loading: [],\n error: null\n}\n\nexport type AuthorizationReducerAction =\n | FetchAuthorizationsRequestAction\n | FetchAuthorizationsSuccessAction\n | FetchAuthorizationsFailureAction\n\nexport const authorizationReducer = (\n state = INITIAL_STATE,\n action: AuthorizationReducerAction\n): AuthorizationState => {\n switch (action.type) {\n case FETCH_AUTHORIZATIONS_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_AUTHORIZATIONS_SUCCESS:\n return {\n loading: loadingReducer(state.loading, action),\n data: action.payload.authorizations,\n error: null\n }\n case FETCH_AUTHORIZATIONS_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error\n }\n default: {\n return state\n }\n }\n}\n","import { combineReducers } from 'redux'\nimport { walletReducer as wallet } from 'decentraland-dapps/dist/modules/wallet/reducer'\nimport { transactionReducer as transaction } from 'decentraland-dapps/dist/modules/transaction/reducer'\n\nimport { landReducer as land } from './modules/land/reducer'\nimport { signatureReducer as signature } from './modules/signature/reducer'\nimport { authorizationReducer as authorization } from './modules/authorization/reducer'\nimport { RootState } from './types'\n\nexport const rootReducer = combineReducers<RootState>({\n wallet,\n transaction,\n land,\n signature,\n authorization\n})\n","import { Contract } from '@ethersproject/contracts'\nimport { 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 { getConfig, isRopsten } from './config'\n\nconst contractInstances: {\n land?: Contract\n estate?: Contract\n} = {}\n\n\nexport async function getLandContract() {\n if (!contractInstances.land) {\n const provider = await getConnectedProvider()\n if (provider) {\n const landRegistry = getConfig('landRegistry')\n const address =\n landRegistry ||\n (isRopsten()\n ? '0x7a73483784ab79257bb11b96fd62a2c3ae4fb75b'\n : '0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d')\n contractInstances.land = new Contract(\n address,\n LANDRegistry.abi,\n new Web3Provider(provider).getSigner()\n )\n }\n }\n\n return contractInstances.land\n}\n\nexport async function getEstateContract() {\n if (!contractInstances.estate) {\n const provider = await getConnectedProvider()\n if (provider) {\n const estateRegistry = getConfig('landRegistry')\n const address =\n estateRegistry ||\n (isRopsten()\n ? '0x124bf28a423b2ca80b3846c3aa0eb944fe7ebb95'\n : '0x959e104e1a4db6317fa58f8295f586e1a978c297')\n contractInstances.estate = new Contract(\n address,\n EstateRegistry.abi,\n new Web3Provider(provider).getSigner()\n )\n }\n }\n\n return contractInstances.estate\n}\n","import { LANDMeta, Coords } from './types'\n\nexport function getEmptyLandData(): LANDMeta {\n return {\n version: 0,\n name: '',\n description: ''\n }\n}\n\nexport function coordsToString({ x, y }: Coords): string {\n return `${x},${y}`\n}\n","import { call, put, takeEvery } from 'redux-saga/effects'\nimport { CONNECT_WALLET_SUCCESS } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport * as CSV from 'comma-separated-values'\n\nimport { getConfig } from '../../config'\nimport { getLandContract } from '../../contracts'\nimport {\n FETCH_LAND_REQUEST,\n FetchLandRequestAction,\n fetchLandSuccess,\n fetchLandFailure,\n fetchLandRequest\n} from './actions'\nimport { getEmptyLandData } from './utils'\nimport { Contract } from '@ethersproject/contracts'\nimport { LANDMeta } from './types'\n\nexport function* landSaga() {\n yield takeEvery(FETCH_LAND_REQUEST, handleFetchLandRequest)\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n}\n\nfunction* handleFetchLandRequest(action: FetchLandRequestAction) {\n const LANDRegistry: Contract = yield call(() => getLandContract())\n try {\n const { x, y } = action.payload\n const data: string = yield call(() => LANDRegistry['landData'](x, y))\n const land: LANDMeta = data\n ? yield call(() => decodeLandData(data))\n : getEmptyLandData()\n yield put(fetchLandSuccess(land))\n } catch (error) {\n yield put(fetchLandFailure((error as Error).message))\n }\n}\n\nfunction* handleConnectWalletSuccess() {\n yield put(fetchLandRequest(getConfig('baseParcel')))\n}\n\nfunction decodeLandData(data = '') {\n const version = data.charAt(0)\n switch (version) {\n case '0': {\n const [version, name, description, ipns] = CSV.parse(data, {\n cellDelimiter: ','\n })[0]\n\n return {\n version,\n // when a value is blank, csv.parse returns 0, so we fallback to empty string\n // to support stuff like `0,,,ipns:link`\n name: name || '',\n description: description || '',\n ipns: ipns || ''\n }\n }\n default:\n throw new Error(\n `Unknown version when trying to decode land data: \"${data}\"`\n )\n }\n}\n","import { takeEvery, all, call } from 'redux-saga/effects'\nimport { createWalletSaga } from 'decentraland-dapps/dist/modules/wallet/sagas'\nimport {\n CHANGE_NETWORK,\n CHANGE_ACCOUNT,\n} from 'decentraland-dapps/dist/modules/wallet/actions'\n\nimport { getConfig } from '../../config'\n\nexport function* walletSaga() {\n const baseWalletSaga = createWalletSaga({\n CHAIN_ID: getConfig('chainId')\n })\n yield all([baseWalletSaga(), fullWalletSaga()])\n}\n\nfunction* fullWalletSaga() {\n yield takeEvery(CHANGE_NETWORK, handleWallet)\n yield takeEvery(CHANGE_ACCOUNT, handleWallet)\n}\n\nfunction* handleWallet() {\n yield call(() => window.location.reload())\n}\n","import { Network } from '@dcl/schemas'\n\nexport type LinkerResponse = {\n address: string\n signature: string\n network: Network\n}\n\nexport async function closeServer(\n ok: boolean,\n message: LinkerResponse\n): Promise<void> {\n await fetch(`/api/close?ok=${ok}&reason=${JSON.stringify(message)}`)\n}\n","import { call, put, takeLatest, takeEvery, select } from 'redux-saga/effects'\nimport { getConnectedProvider } from 'decentraland-dapps/dist/lib/eth'\nimport {\n getAddress,\n getNetwork\n} from 'decentraland-dapps/dist/modules/wallet/selectors'\nimport { Web3Provider } from '@ethersproject/providers'\nimport { toUtf8Bytes } from '@ethersproject/strings'\nimport { Network } from '@dcl/schemas'\nimport { hexlify } from '@ethersproject/bytes'\n\nimport { closeServer } from '../server/utils'\nimport {\n SIGN_CONTENT_REQUEST,\n SIGN_CONTENT_SUCCESS,\n SignContentRequestAction,\n signContentSuccess,\n signContentFailure,\n SignContentSuccessAction\n} from './actions'\nimport { Provider } from 'decentraland-connect/dist'\n\nexport function* signatureSaga() {\n yield takeLatest(SIGN_CONTENT_REQUEST, handleSignContentRequest)\n yield takeEvery(SIGN_CONTENT_SUCCESS, handleSignContentSuccess)\n}\n\nfunction* handleSignContentRequest(action: SignContentRequestAction) {\n try {\n const dataToSign = toUtf8Bytes(action.payload)\n\n const provider: Provider = yield call(() => getConnectedProvider())\n const web3provider = new Web3Provider(provider)\n const signer = web3provider.getSigner()\n\n const addr: string = yield call(() => signer.getAddress())\n\n const signedMessage: string = yield call(() =>\n provider.send('personal_sign', [hexlify(dataToSign), addr.toLowerCase()])\n )\n yield put(signContentSuccess(signedMessage))\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n\nfunction* handleSignContentSuccess(action: SignContentSuccessAction) {\n const address: string = yield select(getAddress)\n const network: Network = yield select(getNetwork)\n const { signature } = action.payload\n\n try {\n yield call(() => {\n // tslint:disable-next-line: no-floating-promises\n closeServer(true, { signature, address, network })\n })\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n","import { call, put, takeEvery, select } from 'redux-saga/effects'\nimport { CONNECT_WALLET_SUCCESS } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport { getAddress } from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport { getLandContract, getEstateContract } from '../../contracts'\nimport { getConfig } from '../../config'\nimport { coordsToString } from '../land/utils'\nimport {\n FETCH_AUTHORIZATIONS_REQUEST,\n fetchAuthorizationsRequest,\n fetchAuthorizationsFailure,\n fetchAuthorizationsSuccess\n} from './actions'\nimport { Authorization } from './types'\nimport { Contract } from '@ethersproject/contracts'\n\nexport function* authorizationSaga() {\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n yield takeEvery(\n FETCH_AUTHORIZATIONS_REQUEST,\n handleFetchAuthorizationsRequest\n )\n}\n\nfunction* handleFetchAuthorizationsRequest() {\n const LANDRegistry: Contract = yield call(() => getLandContract())\n const EstateRegistry: Contract = yield call(() => getEstateContract())\n\n try {\n const address: string = yield select(getAddress)\n const assetIds = new Map<string, string>()\n\n const pAuthorizations: Promise<unknown>[] = []\n for (const parcel of getConfig('parcels')) {\n const { x, y } = parcel\n const pAuthorization = new Promise((resolve, reject) => {\n LANDRegistry['encodeTokenId'](x, y)\n .then((assetId: any) => {\n LANDRegistry['isUpdateAuthorized'](address, assetId)\n .then((isUpdateAuthorized: any) => {\n assetIds.set(coordsToString(parcel), assetId)\n resolve({ x, y, isUpdateAuthorized })\n })\n .catch(reject)\n })\n .catch(reject)\n })\n pAuthorizations.push(pAuthorization)\n }\n\n const parcelAuthorizations: Authorization[] = yield call(() =>\n Promise.all(pAuthorizations)\n )\n\n // If not authorized check permissions on estate\n const notAllowedAuthorizations = parcelAuthorizations.filter(\n a => !a.isUpdateAuthorized\n )\n const allowedAuthorizations = parcelAuthorizations.filter(\n a => a.isUpdateAuthorized\n )\n\n const pEstateAuthorizations: unknown[] = []\n for (const a of notAllowedAuthorizations) {\n const assetId = assetIds.get(coordsToString(a))\n const pAuthorization = new Promise((resolve, reject) => {\n EstateRegistry['getLandEstateId'](assetId)\n .then((estate: any) => {\n if (estate && estate > 0) {\n return EstateRegistry['isUpdateAuthorized'](address, estate).then(\n (isUpdateAuthorized: any) => {\n resolve({ ...a, isUpdateAuthorized })\n }\n )\n } else {\n return resolve(a) // If no estate leave authorization in false\n }\n })\n .catch(reject)\n })\n pEstateAuthorizations.push(pAuthorization)\n }\n\n const estateAuthorizations: Authorization[] = yield call(() =>\n Promise.all(pEstateAuthorizations)\n )\n\n const authorizations = [...allowedAuthorizations, ...estateAuthorizations]\n yield put(fetchAuthorizationsSuccess(authorizations))\n } catch (error) {\n yield put(fetchAuthorizationsFailure((error as Error).message))\n }\n}\n\nfunction* handleConnectWalletSuccess(): any {\n const address = yield call(() => getAddress)\n yield put(fetchAuthorizationsRequest(address))\n}\n","import { createSelector } from 'reselect'\n\nimport { RootState } from '../../types'\n\nexport const getState = (state: RootState) => state.land\n\nexport const getData = createSelector(getState, state => state.data)\n\nexport const isLoading = createSelector(\n getState,\n state => state.loading.length > 0\n)\n\nexport const getError = createSelector(getState, state => state.error)\n","import { createSelector } from 'reselect'\nimport { RootState } from '../../types'\n\nexport const getState = (state: RootState) => state.signature\nexport const getData = createSelector(getState, state => state.data)\nexport const isLoading = createSelector(\n getState,\n state => state.loading.length > 0\n)\nexport const getError = createSelector(getState, state => state.error)\n","import { createSelector } from 'reselect'\n\nimport { RootState } from '../../types'\nimport { Authorization } from './types'\n\nexport const getState = (state: RootState) => state.authorization\n\nexport const getData = createSelector(getState, state => state.data)\n\nexport const isLoading = createSelector(\n getState,\n state => state.loading.length > 0\n)\n\nexport const getError = createSelector(getState, state => state.error)\n\nexport const isUpdateAuthorized = createSelector(getData, authorizations => {\n if (!authorizations?.length) {\n return\n }\n\n return authorizations.every((a: Authorization) => a.isUpdateAuthorized)\n})\n","import React from 'react'\n\nexport default React.memo(({ children }: { children: string }) => (\n <p style={{ color: 'var(--primary)' }}> Error: {children}</p>\n))\n","import React from 'react'\nimport { Address, Blockie, Header, Button, Navbar } from 'decentraland-ui'\n// import Navbar from 'decentraland-dapps/dist/containers/Navbar'\nimport { ChainId } from '@dcl/schemas'\n\nimport { getConfig, isDevelopment } from '../../config'\nimport { coordsToString } from '../../modules/land/utils'\nimport Error from '../Error'\nimport { Props } from './types'\n\nexport default class LinkScenePage extends React.PureComponent<Props> {\n handleSignature = (e: any) => {\n e.preventDefault()\n const { onSignContent } = this.props\n onSignContent(getConfig('rootCID'))\n }\n\n getLANDname() {\n const { base } = this.props\n return base.name ? `\"${base.name}\"` : `LAND without name`\n }\n\n getFormattedUnauthorized() {\n const { authorizations } = this.props\n return authorizations\n .filter(a => !a.isUpdateAuthorized)\n .map(a => `\"${coordsToString(a)}\"`)\n .join(', ')\n }\n\n renderWalletData() {\n const {\n isConnected,\n wallet,\n authorizations,\n isUpdateAuthorized,\n isConnecting,\n onConnectWallet\n } = this.props\n if (isConnected && wallet.address) {\n return (\n <React.Fragment>\n <p>\n Using address: \n <Blockie scale={3} seed={wallet.address}>\n <Address tooltip strong value={wallet.address} />\n </Blockie>\n </p>\n {authorizations.length && !isUpdateAuthorized ? (\n <Error>\n {`You don't have permissions to update The following LANDs that are part of the scene: ${this.getFormattedUnauthorized()}`}\n </Error>\n ) : null}\n </React.Fragment>\n )\n }\n\n return (\n <React.Fragment>\n {isConnecting ? null : <p>Could not find any wallet</p>}\n <p>\n <Button\n primary\n onClick={onConnectWallet}\n loading={isConnecting}\n disabled={isConnecting}\n >\n Reconnect \n </Button>\n </p>\n </React.Fragment>\n )\n }\n\n renderLANDinfo() {\n const { error, isLandLoading, isConnected } = this.props\n const { x, y } = getConfig('baseParcel')\n\n if (error || !isConnected || isLandLoading) {\n return\n }\n\n return (\n <p>\n Updating <b>{this.getLANDname()}</b> at coordinates{' '}\n <b>\n {x}, {y}\n </b>\n </p>\n )\n }\n\n render() {\n const {\n error,\n isConnected,\n isUpdateAuthorized,\n isAuthorizationLoading,\n signed,\n wallet\n } = this.props\n const { x, y } = getConfig('baseParcel')\n const rootCID = getConfig('rootCID')\n const isRopsten = wallet?.chainId === ChainId.ETHEREUM_ROPSTEN\n\n return (\n <div className=\"LinkScenePage\">\n <Navbar />\n <Header>Update LAND data</Header>\n {this.renderWalletData()}\n <div>\n <img\n style={{ maxWidth: '100%', maxHeight: '100%', width: '45%' }}\n className=\"map\"\n src={`https://api.decentraland.${\n isRopsten ? 'zone' : 'org'\n }/v1/parcels/${x}/${y}/map.png`}\n alt={`Base parcel ${x},${y}`}\n />\n </div>\n {this.renderLANDinfo()}\n <p>\n Project CID: <b>{rootCID}</b>\n </p>\n <form>\n <div>\n <Button\n primary\n onClick={this.handleSignature}\n disabled={\n !isConnected ||\n !!error ||\n isAuthorizationLoading ||\n !isUpdateAuthorized\n }\n >\n Sign and Deploy\n </Button>\n </div>\n </form>\n {isConnected && signed && (\n <p>\n Content was succesfully signed and it's being uploaded. You can\n close this page and check the CLI for more info.\n </p>\n )}\n {error ? (\n isDevelopment() ? (\n <Error>{error}</Error>\n ) : (\n <Error>There was an unexpected error.</Error>\n )\n ) : null}\n <style>{`\n .LinkScenePage {\n text-align: center;\n }\n .map {\n padding: 15px;\n }\n .options div input {\n color: white;\n }\n `}</style>\n {isRopsten ? (\n <style>{`\n body:before {\n content: 'Using Ropsten test network';\n background: var(--primary);\n color: white;\n text-align: center;\n text-transform: uppercase;\n height: 24px;\n width: 100%;\n position: fixed;\n padding-top: 2px;\n }\n .LinkScenePage {\n padding-top: 24px;\n }\n `}</style>\n ) : null}\n </div>\n )\n }\n}\n","import LinkerPage from './LinkerPage.container'\nexport default LinkerPage\n","import { AnyAction, Dispatch } from 'redux'\nimport { connect } from 'react-redux'\nimport { ProviderType } from 'decentraland-connect'\nimport { enableWalletRequest } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport {\n getData as getWallet,\n isConnected,\n isConnecting\n} from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport {\n isLoading as isLandLoading,\n getData as getLand,\n getError as getLandError\n} from '../../modules/land/selectors'\nimport { getData as getSignature } from '../../modules/signature/selectors'\nimport {\n getData as getAuthorizations,\n isUpdateAuthorized,\n isLoading as isAuthorizationLoading\n} from '../../modules/authorization/selectors'\nimport { signContentRequest } from '../../modules/signature/actions'\nimport { RootState } from '../../types'\nimport { MapStateProps, MapDispatchProps } from './types'\n\nimport LinkerPage from './LinkerPage'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n base: getLand(state),\n wallet: getWallet(state)!,\n isLandLoading: isLandLoading(state),\n isConnected: isConnected(state),\n isConnecting: isConnecting(state),\n error: getLandError(state)!,\n signed: !!getSignature(state),\n isUpdateAuthorized: isUpdateAuthorized(state),\n authorizations: getAuthorizations(state),\n isAuthorizationLoading: isAuthorizationLoading(state)\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: () => dispatch(enableWalletRequest(ProviderType.INJECTED)),\n onSignContent: (cid: string) => dispatch(signContentRequest(cid))\n})\n\nexport default connect(mapState, mapDispatch)(LinkerPage)\n","import ReactDOM from 'react-dom'\nimport WalletProvider from 'decentraland-dapps/dist/providers/WalletProvider'\nimport { Provider } from 'react-redux'\n\nimport { initStore } from './store'\nimport LinkerPage from './components/LinkerPage'\n\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 <LinkerPage />\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 { init as initConfig } from './config'\nimport { rootReducer } from './reducer'\nimport { rootSaga } from './sagas'\n\nexport function initStore() {\n initConfig()\n const composeEnhancers =\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\n\n const { storageMiddleware, loadStorageMiddleware } = createStorageMiddleware({\n storageKey: 'decentraland-linker'\n })\n const sagasMiddleware = createSagasMiddleware()\n const transactionMiddleware = createTransactionMiddleware()\n const loggerMiddleware = createLogger({\n collapsed: () => true,\n predicate: (_, _action) => false // isDevelopment() || action.type.includes('Failure')\n })\n\n const middleware = applyMiddleware(\n sagasMiddleware,\n loggerMiddleware,\n storageMiddleware,\n transactionMiddleware\n )\n\n const enhancer = composeEnhancers(middleware)\n const store = createStore(rootReducer, enhancer)\n\n sagasMiddleware.run(rootSaga())\n loadStorageMiddleware(store)\n\n return store\n}\n","import { all } from 'redux-saga/effects'\n\nimport { landSaga } from './modules/land/sagas'\nimport { walletSaga } from './modules/wallet/sagas'\nimport { signatureSaga } from './modules/signature/sagas'\nimport { authorizationSaga } from './modules/authorization/sagas'\n\nexport function rootSaga() {\n return function*() {\n yield all([walletSaga(), landSaga(), signatureSaga(), authorizationSaga()])\n }\n}\n"],"sourceRoot":""}
|