@dcl/linker-dapp 0.2.3 → 0.2.4-2385565014.commit-acbdb59

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.
Files changed (44) hide show
  1. package/asset-manifest.json +15 -15
  2. package/index.html +1 -1
  3. package/package.json +2 -2
  4. package/static/css/main.71d9f91e.chunk.css +2 -0
  5. package/static/css/main.71d9f91e.chunk.css.map +1 -0
  6. package/static/js/2.277208b9.chunk.js +3 -0
  7. package/static/js/{2.4dca7197.chunk.js.LICENSE.txt → 2.277208b9.chunk.js.LICENSE.txt} +0 -0
  8. package/static/js/{2.4dca7197.chunk.js.map → 2.277208b9.chunk.js.map} +1 -1
  9. package/static/js/{3.deb33fb3.chunk.js → 3.3326aaa8.chunk.js} +2 -2
  10. package/static/js/{3.deb33fb3.chunk.js.map → 3.3326aaa8.chunk.js.map} +1 -1
  11. package/static/js/main.df1e6f57.chunk.js +2 -0
  12. package/static/js/main.df1e6f57.chunk.js.map +1 -0
  13. package/static/js/runtime-main.62771ab4.js +2 -0
  14. package/static/js/{runtime-main.4d07cd54.js.map → runtime-main.62771ab4.js.map} +1 -1
  15. package/types/components/DeploySuccess/DeploySuccess.container.d.ts +3 -0
  16. package/types/components/DeploySuccess/DeploySuccess.d.ts +4 -0
  17. package/types/components/DeploySuccess/index.d.ts +2 -0
  18. package/types/components/DeploySuccess/types.d.ts +8 -0
  19. package/types/components/Files/Files.container.d.ts +3 -0
  20. package/types/components/Files/Files.d.ts +4 -0
  21. package/types/components/Files/index.d.ts +2 -0
  22. package/types/components/Files/types.d.ts +5 -0
  23. package/types/components/LinkerPage/LinkerPage.container.d.ts +1 -1
  24. package/types/components/LinkerPage/LinkerPage.d.ts +1 -1
  25. package/types/components/LinkerPage/types.d.ts +6 -2
  26. package/types/components/Map/index.d.ts +4 -0
  27. package/types/components/Map/types.d.ts +9 -0
  28. package/types/config.d.ts +2 -15
  29. package/types/contracts.d.ts +2 -2
  30. package/types/modules/land/actions.d.ts +2 -2
  31. package/types/modules/server/actions.d.ts +38 -0
  32. package/types/modules/server/reducer.d.ts +34 -0
  33. package/types/modules/server/sagas.d.ts +1 -0
  34. package/types/modules/server/selectors.d.ts +5 -0
  35. package/types/modules/server/utils.d.ts +10 -10
  36. package/types/types.d.ts +2 -0
  37. package/static/css/main.6c8c18c2.chunk.css +0 -2
  38. package/static/css/main.6c8c18c2.chunk.css.map +0 -1
  39. package/static/js/2.4dca7197.chunk.js +0 -3
  40. package/static/js/main.d4b46897.chunk.js +0 -2
  41. package/static/js/main.d4b46897.chunk.js.map +0 -1
  42. package/static/js/runtime-main.4d07cd54.js +0 -2
  43. package/types/components/LandInfo/LandInfo.d.ts +0 -3
  44. package/types/components/LandInfo/types.d.ts +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["modules/land/actions.ts","modules/land/reducer.ts","modules/signature/actions.ts","modules/signature/reducer.ts","modules/authorization/actions.ts","modules/authorization/reducer.ts","modules/server/actions.ts","modules/server/reducer.ts","reducer.ts","config.ts","contracts.ts","modules/land/utils.ts","modules/server/selectors.ts","modules/land/sagas.ts","modules/wallet/sagas.ts","modules/server/utils.ts","modules/signature/sagas.ts","modules/authorization/sagas.ts","modules/server/sagas.ts","modules/signature/selectors.ts","components/Error.tsx","components/RenderWalletData/RenderWalletData.tsx","components/IdentityPage/IdentityPage.container.tsx","components/Files/Files.tsx","components/IdentityPage/index.ts","components/IdentityPage/IdentityPage.tsx","modules/land/selectors.ts","modules/authorization/selectors.ts","components/Files/Files.container.tsx","components/Files/index.ts","components/Map/index.tsx","components/DeploySuccess/DeploySuccess.container.tsx","components/LinkerPage/LinkerPage.tsx","components/DeploySuccess/DeploySuccess.tsx","components/LinkerPage/LinkerPage.container.tsx","components/LinkerPage/index.ts","components/Root.tsx","index.tsx","store.ts","sagas.ts"],"names":["FETCH_LAND_REQUEST","FETCH_LAND_SUCCESS","FETCH_LAND_FAILURE","fetchLandSuccess","land","action","INITIAL_STATE","data","loading","error","SIGN_CONTENT_REQUEST","SIGN_CONTENT_SUCCESS","SIGN_CONTENT_FAILURE","signContentFailure","CREATE_IDENTITY_REQUEST","CREATE_IDENTITY_SUCCESS","CREATE_IDENTITY_FAILURE","createIdentitySuccess","identity","FETCH_AUTHORIZATIONS_REQUEST","FETCH_AUTHORIZATIONS_SUCCESS","FETCH_AUTHORIZATIONS_FAILURE","fetchAuthorizationsSuccess","authorizations","FETCH_FILES_REQUEST","FETCH_FILES_SUCCESS","FETCH_FILES_FAILURE","FETCH_INFO_REQUEST","FETCH_INFO_SUCCESS","FETCH_INFO_FAILURE","FETCH_CATALYST_REQUEST","FETCH_CATALYST_SUCCESS","FETCH_CATALYST_FAILURE","fetchFilesSuccess","files","fetchInfoSuccess","info","fetchInfoFailure","fetchCatalystRequest","undefined","catalyst","parseCoords","query","map","c","split","x","y","parseInt","rootReducer","combineReducers","wallet","transaction","state","type","loadingReducer","payload","signature","authorization","api","catalysts","length","baseParcel","parcels","rootCID","isRopsten","window","ethereum","chainId","getChainId","ChainId","ETHEREUM_MAINNET","ETHEREUM_ROPSTEN","contractInstances","getLandContract","landRegistry","a","getConnectedProvider","provider","address","Contract","LANDRegistry","Web3Provider","getSigner","getEstateContract","estateRegistry","estate","EstateRegistry","coordsToString","getFiles","getInfo","landSaga","handleFetchLandRequest","handleConnectWalletSuccess","takeEvery","CONNECT_WALLET_SUCCESS","select","call","decodeLandData","version","name","description","put","message","charAt","CSV","cellDelimiter","ipns","Error","walletSaga","fullWalletSaga","handleWallet","baseWalletSaga","createWalletSaga","CHAIN_ID","all","CHANGE_NETWORK","CHANGE_ACCOUNT","location","reload","closeServer","ok","fetch","JSON","stringify","postDeploy","method","headers","body","getFilesRequest","json","getInfoRequest","getCatalystsPointer","signatureSaga","handleSignContentRequest","handleSignContentSuccess","handleCreateIdentityRequest","handleCreateIdentitySuccess","takeLatest","dataToSign","toUtf8Bytes","web3provider","signer","getAddress","addr","send","hexlify","toLowerCase","signedMessage","_action","createIdentity","responseType","authorizationSaga","handleFetchAuthorizationsRequest","take","assetIds","Map","pAuthorizations","parcel","pAuthorization","Promise","resolve","reject","then","assetId","isUpdateAuthorized","set","catch","push","f","parcelAuthorizations","notAllowedAuthorizations","filter","allowedAuthorizations","pEstateAuthorizations","get","estateAuthorizations","owner","apiSaga","handleFetchFilesRequest","handleFetchInfoRequest","handleFetchCatalystRequest","value","getState","getData","createSelector","isLoading","React","memo","children","style","color","RenderWalletData","isConnected","isConnecting","onConnectWallet","scale","seed","tooltip","strong","join","primary","onClick","disabled","Filter","IdentityPage","connect","getWallet","signed","getSignature","isSigning","isSigningTx","dispatch","enableWalletRequest","ProviderType","INJECTED","onRequestIdentity","props","className","e","preventDefault","getError","every","Files","useState","Size","setFilter","useMemo","sort","b","size","basic","Header","Row","HeaderCell","text","direction","Menu","Object","values","Item","Body","index","Cell","Number","toFixed","LinkScenePage","find","coords","s","isAuthorized","height","isDraggable","layers","Tab","status","onFetchCatalyst","entityIds","Set","entityId","deployedToAll","useEffect","interval","setInterval","clearInterval","Color","SUNISH","url","timestamp","Date","toLocaleString","LinkerPage","base","getLand","isLandLoading","getLandError","getAuthorizations","isAuthorizationLoading","onSignContent","cid","signContentRequest","onFetchFiles","onFetchInfo","tab","setTab","deployUrl","leftMenu","Left","textAlign","title","open","focus","SUMMER_RED","SHADOWS","Right","ToastType","ERROR","isFullscreen","t","active","Root","URLSearchParams","document","search","has","ReactDOM","render","store","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStorageMiddleware","storageKey","storageMiddleware","loadStorageMiddleware","sagasMiddleware","createSagasMiddleware","transactionMiddleware","createTransactionMiddleware","loggerMiddleware","createLogger","collapsed","predicate","_","enhancer","applyMiddleware","createStore","run","initStore","getElementById"],"mappings":"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","file":"static/js/main.df1e6f57.chunk.js","sourcesContent":["import { action } from 'typesafe-actions'\nimport { LANDMeta } from './types'\n\nexport const FETCH_LAND_REQUEST = '[Request] Fetch LAND'\nexport const FETCH_LAND_SUCCESS = '[Success] Fetch LAND'\nexport const FETCH_LAND_FAILURE = '[Failure] Fetch LAND'\n\nexport const fetchLandRequest = () => action(FETCH_LAND_REQUEST)\nexport const fetchLandSuccess = (land: LANDMeta) =>\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 { AuthIdentity } from 'dcl-crypto'\nimport { action } from 'typesafe-actions'\n\nexport const SIGN_CONTENT_REQUEST = '[Request] Sign Content'\nexport const SIGN_CONTENT_SUCCESS = '[Success] Sign Content'\nexport const SIGN_CONTENT_FAILURE = '[Failure] Sign Content'\n\nexport const signContentRequest = (cid: string) =>\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\nexport const CREATE_IDENTITY_REQUEST = '[Request] Create Identity'\nexport const CREATE_IDENTITY_SUCCESS = '[Success] Create Identity'\nexport const CREATE_IDENTITY_FAILURE = '[Failure] Create Identity'\n\nexport const createIdentityRequest = () => action(CREATE_IDENTITY_REQUEST, {})\nexport const createIdentitySuccess = (identity: AuthIdentity) =>\n action(CREATE_IDENTITY_SUCCESS, { identity })\nexport const createIdentityFailure = (error: string) =>\n action(CREATE_IDENTITY_FAILURE, { error })\n\nexport type CreateIdentityRequestAction = ReturnType<\n typeof createIdentityRequest\n>\nexport type CreateIdentitySuccessAction = ReturnType<\n typeof createIdentitySuccess\n>\nexport type CreateIdentityFailureAction = ReturnType<\n typeof createIdentityFailure\n>\n","import { AuthIdentity } from 'dcl-crypto'\nimport {\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 CreateIdentityRequestAction,\n CreateIdentitySuccessAction,\n CreateIdentityFailureAction,\n CREATE_IDENTITY_REQUEST,\n CREATE_IDENTITY_SUCCESS,\n CREATE_IDENTITY_FAILURE\n} from './actions'\n\nexport type SignatureState = {\n data: any\n identity: AuthIdentity | null\n loading: LoadingState\n error: string | null\n}\n\nconst INITIAL_STATE: SignatureState = {\n data: '',\n loading: [],\n identity: null,\n error: null\n}\n\nexport type SignatureReducerAction =\n | SignContentRequestAction\n | SignContentSuccessAction\n | SignContentFailureAction\n | CreateIdentityRequestAction\n | CreateIdentitySuccessAction\n | CreateIdentityFailureAction\n\nexport const signatureReducer = (\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 ...state,\n loading: loadingReducer(state.loading, action),\n data: action.payload.signature,\n error: null\n }\n case SIGN_CONTENT_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error\n }\n case CREATE_IDENTITY_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case CREATE_IDENTITY_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n identity: action.payload.identity,\n error: null\n }\n case CREATE_IDENTITY_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error\n }\n default: {\n return state\n }\n }\n}\n","import { action } from 'typesafe-actions'\nimport { Authorization } from './types'\n\nexport const FETCH_AUTHORIZATIONS_REQUEST =\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 { action } from 'typesafe-actions'\nimport { CatalystResponse, FileSize, Info } from './reducer'\n\nexport const FETCH_FILES_REQUEST = '[Request] Fetch Files'\nexport const FETCH_FILES_SUCCESS = '[Success] Fetch Files'\nexport const FETCH_FILES_FAILURE = '[Failure] Fetch Files'\n\nexport const FETCH_INFO_REQUEST = '[Request] Fetch info'\nexport const FETCH_INFO_SUCCESS = '[Success] Fetch info'\nexport const FETCH_INFO_FAILURE = '[Failure] Fetch info'\n\nexport const FETCH_CATALYST_REQUEST = '[Request] Fetch catalyst'\nexport const FETCH_CATALYST_SUCCESS = '[Success] Fetch catalyst'\nexport const FETCH_CATALYST_FAILURE = '[Failure] Fetch catalyst'\n\nexport const fetchFilesRequest = () => action(FETCH_FILES_REQUEST)\nexport const fetchFilesSuccess = (files: FileSize[]) =>\n action(FETCH_FILES_SUCCESS, { files })\nexport const fetchFilesFailure = (error: string) =>\n action(FETCH_FILES_FAILURE, { error })\n\nexport const fetchInfoRequest = () => action(FETCH_INFO_REQUEST)\nexport const fetchInfoSuccess = (info: Info) =>\n action(FETCH_INFO_SUCCESS, { info })\nexport const fetchInfoFailure = (error: string) =>\n action(FETCH_INFO_FAILURE, { error })\n\nexport const fetchCatalystRequest = () => action(FETCH_CATALYST_REQUEST)\nexport const fetchCatalystSuccess = (payload: CatalystResponse) =>\n action(FETCH_CATALYST_SUCCESS, payload)\nexport const fetchCatalystFailure = (error: string) =>\n action(FETCH_CATALYST_FAILURE, { error })\n\nexport type FetchFilesRequestAction = ReturnType<typeof fetchFilesRequest>\nexport type FetchFilesSuccessAction = ReturnType<typeof fetchFilesSuccess>\nexport type FetchFilesFailureAction = ReturnType<typeof fetchFilesFailure>\n\nexport type FetchInfoRequestAction = ReturnType<typeof fetchInfoRequest>\nexport type FetchInfoSuccessAction = ReturnType<typeof fetchInfoSuccess>\nexport type FetchInfoFailureAction = ReturnType<typeof fetchInfoFailure>\n\nexport type FetchCatalystRequest = ReturnType<typeof fetchCatalystRequest>\nexport type FetchCatalystSuccess = ReturnType<typeof fetchCatalystSuccess>\nexport type FetchCatalystFailure = ReturnType<typeof fetchCatalystFailure>\n","import {\n loadingReducer,\n LoadingState\n} from 'decentraland-dapps/dist/modules/loading/reducer'\nimport { Coords } from '../land/types'\n\nimport {\n FetchFilesRequestAction,\n FetchFilesSuccessAction,\n FetchFilesFailureAction,\n FETCH_FILES_REQUEST,\n FETCH_FILES_SUCCESS,\n FETCH_FILES_FAILURE,\n FETCH_INFO_REQUEST,\n FETCH_INFO_FAILURE,\n FETCH_INFO_SUCCESS,\n FetchInfoRequestAction,\n FetchInfoSuccessAction,\n FetchInfoFailureAction,\n FetchCatalystFailure,\n FetchCatalystRequest,\n FetchCatalystSuccess,\n FETCH_CATALYST_REQUEST,\n FETCH_CATALYST_SUCCESS,\n FETCH_CATALYST_FAILURE\n} from './actions'\n\nexport type Info = {\n baseParcel: Coords\n parcels: Coords[]\n rootCID: string\n debug: boolean\n estateRegistry?: string\n landRegistry?: string\n title?: string\n description?: string\n}\n\nexport type FileSize = {\n name: string\n size: string\n}\n\nexport type CatalystResponse = {\n catalysts: {\n url: string\n timestamp: number\n entityId: string\n }[]\n status: 'deploying' | 'success' | 'closed'\n}\n\nexport type ApiState = {\n files: FileSize[]\n loading: LoadingState\n error: string | null\n catalyst: CatalystResponse | undefined\n info: Info | undefined\n}\n\nconst INITIAL_STATE: ApiState = {\n info: undefined,\n files: [],\n loading: [],\n error: null,\n catalyst: undefined\n}\n\nexport type ApiReducerAction =\n | FetchFilesRequestAction\n | FetchFilesSuccessAction\n | FetchFilesFailureAction\n | FetchInfoRequestAction\n | FetchInfoSuccessAction\n | FetchInfoFailureAction\n | FetchCatalystFailure\n | FetchCatalystRequest\n | FetchCatalystSuccess\n\nexport const apiReducer = (\n state = INITIAL_STATE,\n action: ApiReducerAction\n): ApiState => {\n switch (action.type) {\n case FETCH_FILES_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_FILES_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n files: action.payload.files,\n error: null\n }\n case FETCH_FILES_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error,\n files: []\n }\n case FETCH_CATALYST_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_CATALYST_SUCCESS:\n if (!action.payload.catalysts.length) {\n return state\n }\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n catalyst: action.payload,\n error: null\n }\n case FETCH_CATALYST_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error,\n catalyst: undefined\n }\n case FETCH_INFO_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action)\n }\n case FETCH_INFO_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n info: {\n ...action.payload.info,\n baseParcel: parseCoords(\n (action.payload.info.baseParcel as any) as string\n )[0],\n parcels: parseCoords((action.payload.info.parcels as any) as string),\n rootCID:\n action.payload.info.rootCID ||\n 'QmPjpPyibbryTCi75zzcdeuPUBcujtEqj43shwKBAdMojy'\n },\n error: null\n }\n case FETCH_INFO_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error,\n info: undefined\n }\n default: {\n return state\n }\n }\n}\n\nfunction parseCoords(query: string | string[] | null): Coords[] {\n if (!query) return [{ x: 0, y: 0 }]\n const coords = typeof query === 'string' ? [query] : query\n return coords.map(c => {\n const [x, y] = c.split(',')\n return { x: parseInt(x, 10), y: parseInt(y, 10) }\n })\n}\n","import { combineReducers } from 'redux'\nimport { walletReducer as wallet } from 'decentraland-dapps/dist/modules/wallet/reducer'\nimport { transactionReducer as transaction } from 'decentraland-dapps/dist/modules/transaction/reducer'\n\nimport { landReducer as land } from './modules/land/reducer'\nimport { signatureReducer as signature } from './modules/signature/reducer'\nimport { authorizationReducer as authorization } from './modules/authorization/reducer'\nimport { apiReducer as api } from './modules/server/reducer'\nimport { RootState } from './types'\n\nexport const rootReducer = combineReducers<RootState>({\n wallet,\n transaction,\n land,\n signature,\n authorization,\n api\n})\n","import { ChainId } from '@dcl/builder-client/node_modules/@dcl/schemas'\n\nexport function isRopsten() {\n return (window?.ethereum as any)?.chainId !== '0x1'\n}\n\nexport function getChainId() {\n return (window?.ethereum as any)?.chainId === '0x1'\n ? ChainId.ETHEREUM_MAINNET\n : ChainId.ETHEREUM_ROPSTEN\n}\n\nexport function isDevelopment(): boolean {\n return false\n}\n","import { Contract } from '@ethersproject/contracts'\nimport { getConnectedProvider } from 'decentraland-dapps/dist/lib/eth'\nimport { Web3Provider } from '@ethersproject/providers'\n\nimport * as EstateRegistry from './abis/EstateRegistry.json'\nimport * as LANDRegistry from './abis/LANDRegistry.json'\nimport { isRopsten } from './config'\n\nconst contractInstances: {\n land?: Contract\n estate?: Contract\n} = {}\n\nexport async function getLandContract(landRegistry?: string) {\n if (!contractInstances.land) {\n const provider = await getConnectedProvider()\n if (provider) {\n const address =\n landRegistry ||\n (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(estateRegistry?: string) {\n if (!contractInstances.estate) {\n const provider = await getConnectedProvider()\n if (provider) {\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 { RootState } from '../../types'\n\nexport const getFiles = (state: RootState) => state.api.files\nexport const isLoading = (state: RootState) => !!state.api.loading.length\nexport const getError = (state: RootState) => state.api.error\nexport const getInfo = (state: RootState) => state.api.info\n","import { call, put, select, takeEvery } from 'redux-saga/effects'\nimport { CONNECT_WALLET_SUCCESS } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport * as CSV from 'comma-separated-values'\n\nimport { getLandContract } from '../../contracts'\nimport {\n FETCH_LAND_REQUEST,\n fetchLandSuccess,\n fetchLandFailure,\n fetchLandRequest\n} from './actions'\nimport { getEmptyLandData } from './utils'\nimport { Contract } from '@ethersproject/contracts'\nimport { LANDMeta } from './types'\nimport { Info } from '../server/reducer'\nimport { getInfo } from '../server/selectors'\n\nexport function* landSaga() {\n yield takeEvery(FETCH_LAND_REQUEST, handleFetchLandRequest)\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n}\n\nfunction* handleFetchLandRequest() {\n const info: Info = yield select(getInfo)\n const LANDRegistry: Contract = yield call(() =>\n getLandContract(info.landRegistry)\n )\n try {\n const { x, y } = info.baseParcel\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())\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 { getChainId } from '../../config'\n\nexport function* walletSaga() {\n const baseWalletSaga = createWalletSaga({\n CHAIN_ID: getChainId()\n })\n yield all([baseWalletSaga(), fullWalletSaga()])\n}\n\nfunction* fullWalletSaga() {\n yield takeEvery(CHANGE_NETWORK, handleWallet)\n yield takeEvery(CHANGE_ACCOUNT, handleWallet)\n}\n\nfunction* handleWallet() {\n yield call(() => window.location.reload())\n}\n","import { ChainId } from '@dcl/schemas'\nimport { AuthIdentity } from 'dcl-crypto'\n\nexport type DeployScene =\n | {\n address: string\n signature: string\n chainId: ChainId\n }\n | Record<string, never>\n\nexport type LinkerResponseIdentity = {\n responseType: 'identity'\n payload: {\n address: string\n chainId: ChainId\n identity: AuthIdentity\n }\n}\n\nexport async function closeServer(\n ok: boolean,\n message: LinkerResponseIdentity\n): Promise<void> {\n await fetch(`/api/close?ok=${ok}&reason=${JSON.stringify(message)}`)\n}\n\nexport async function postDeploy(payload: DeployScene): Promise<void> {\n await fetch('/api/deploy', {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload)\n })\n}\n\nexport async function getFilesRequest(): Promise<void> {\n return (await fetch('/api/files')).json()\n}\n\nexport async function getInfoRequest(): Promise<void> {\n return (await fetch('/api/info')).json()\n}\n\nexport async function getCatalystsPointer(): Promise<void> {\n return (await fetch('/api/catalyst-pointers')).json()\n}\n","import { call, put, takeLatest, takeEvery, select } from 'redux-saga/effects'\nimport { getConnectedProvider } from 'decentraland-dapps/dist/lib/eth'\nimport {\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'\nimport { closeServer, postDeploy } from '../server/utils'\nimport {\n SIGN_CONTENT_REQUEST,\n SIGN_CONTENT_SUCCESS,\n SignContentRequestAction,\n signContentSuccess,\n signContentFailure,\n SignContentSuccessAction,\n CREATE_IDENTITY_REQUEST,\n createIdentitySuccess,\n createIdentityFailure,\n CREATE_IDENTITY_SUCCESS,\n CreateIdentitySuccessAction\n} from './actions'\nimport { Provider } from 'decentraland-connect/dist'\nimport { AuthIdentity } from 'dcl-crypto'\nimport { createIdentity } from '@dcl/builder-client'\nimport { fetchCatalystRequest } from '../server/actions'\n\nexport function* signatureSaga() {\n yield takeLatest(SIGN_CONTENT_REQUEST, handleSignContentRequest)\n yield takeEvery(SIGN_CONTENT_SUCCESS, handleSignContentSuccess)\n\n yield takeLatest(CREATE_IDENTITY_REQUEST, handleCreateIdentityRequest)\n yield takeLatest(CREATE_IDENTITY_SUCCESS, handleCreateIdentitySuccess)\n}\n\nfunction* handleSignContentRequest(action: SignContentRequestAction) {\n try {\n const dataToSign = toUtf8Bytes(action.payload)\n\n const provider: Provider = yield call(() => getConnectedProvider())\n const web3provider = new Web3Provider(provider)\n const signer = web3provider.getSigner()\n\n const addr: string = yield call(() => signer.getAddress())\n\n const signedMessage: string = yield call(() =>\n provider.send('personal_sign', [hexlify(dataToSign), addr.toLowerCase()])\n )\n yield put(signContentSuccess(signedMessage))\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n\nfunction* handleSignContentSuccess(action: SignContentSuccessAction) {\n const address: string = yield select(getAddress)\n const chainId: ChainId = yield select(getChainId)\n const { signature } = action.payload\n\n try {\n yield call(postDeploy, { signature, address, chainId })\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n\nfunction* handleCreateIdentityRequest(_action: SignContentRequestAction) {\n try {\n const provider: Provider = yield call(() => getConnectedProvider())\n const web3provider = new Web3Provider(provider)\n const signer = web3provider.getSigner()\n const identity: AuthIdentity = yield call(() =>\n createIdentity(signer, 1000)\n )\n yield put(createIdentitySuccess(identity))\n yield put(fetchCatalystRequest())\n } catch (error) {\n yield put(createIdentityFailure((error as Error).message))\n }\n}\n\nfunction* handleCreateIdentitySuccess(action: CreateIdentitySuccessAction) {\n const { identity } = action.payload\n const address: string = yield select(getAddress)\n const chainId: ChainId = yield select(getChainId)\n\n try {\n yield call(closeServer, true, {\n responseType: 'identity',\n payload: { identity, address, chainId }\n })\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n","import { call, put, takeEvery, select, take } from 'redux-saga/effects'\nimport { CONNECT_WALLET_SUCCESS } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport { getAddress } from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport { getLandContract, getEstateContract } from '../../contracts'\nimport { coordsToString } from '../land/utils'\nimport {\n FETCH_AUTHORIZATIONS_REQUEST,\n fetchAuthorizationsRequest,\n fetchAuthorizationsFailure,\n fetchAuthorizationsSuccess\n} from './actions'\nimport { Authorization } from './types'\nimport { Contract } from '@ethersproject/contracts'\nimport { Info } from '../server/reducer'\nimport { FETCH_INFO_SUCCESS } from '../server/actions'\nimport { getInfo } from '../server/selectors'\n\nexport function* authorizationSaga() {\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n yield takeEvery(\n FETCH_AUTHORIZATIONS_REQUEST,\n handleFetchAuthorizationsRequest\n )\n}\n\nfunction* handleFetchAuthorizationsRequest() {\n const info: Info = yield select(getInfo)\n\n if (!info) {\n yield take(FETCH_INFO_SUCCESS)\n }\n\n const { parcels, landRegistry, estateRegistry } = info\n const LANDRegistry: Contract = yield call(() => getLandContract(landRegistry))\n const EstateRegistry: Contract = yield call(() =>\n getEstateContract(estateRegistry)\n )\n\n try {\n const address: string = yield select(getAddress)\n const assetIds = new Map<string, string>()\n\n const pAuthorizations: Promise<unknown>[] = []\n for (const parcel of parcels) {\n const { x, y } = parcel\n const pAuthorization = new Promise((resolve, reject) => {\n LANDRegistry['encodeTokenId'](x, y)\n .then((assetId: any) => {\n LANDRegistry['isUpdateAuthorized'](address, assetId)\n .then((isUpdateAuthorized: any) => {\n assetIds.set(coordsToString(parcel), assetId)\n resolve({ x, y, isUpdateAuthorized })\n })\n .catch(reject)\n })\n .catch(reject)\n })\n pAuthorizations.push(pAuthorization)\n }\n\n const parcelAuthorizations: Authorization[] = yield call(() =>\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 { takeEvery, call, put } from 'redux-saga/effects'\n\nimport {\n fetchCatalystSuccess,\n fetchFilesFailure,\n fetchFilesSuccess,\n fetchInfoFailure,\n fetchInfoSuccess,\n FETCH_CATALYST_REQUEST,\n FETCH_FILES_REQUEST,\n FETCH_INFO_REQUEST\n} from './actions'\nimport { CatalystResponse, FileSize, Info } from './reducer'\nimport { getCatalystsPointer, getFilesRequest, getInfoRequest } from './utils'\n\nexport function* apiSaga() {\n yield takeEvery(FETCH_FILES_REQUEST, handleFetchFilesRequest)\n yield takeEvery(FETCH_INFO_REQUEST, handleFetchInfoRequest)\n yield takeEvery(FETCH_CATALYST_REQUEST, handleFetchCatalystRequest)\n}\n\nfunction* handleFetchFilesRequest() {\n try {\n const files: FileSize[] = yield call(getFilesRequest)\n yield put(fetchFilesSuccess(files))\n } catch (e) {\n yield put(fetchFilesFailure((e as any).message))\n }\n}\n\nfunction* handleFetchInfoRequest() {\n try {\n const info: Info = yield call(getInfoRequest)\n yield put(fetchInfoSuccess(info))\n } catch (e) {\n yield put(fetchInfoFailure((e as any).message))\n }\n}\n\nfunction* handleFetchCatalystRequest() {\n try {\n const value: CatalystResponse = yield call(getCatalystsPointer)\n yield put(fetchCatalystSuccess(value))\n } catch (e) {\n yield put(fetchInfoFailure((e as any).message))\n }\n}\n","import { createSelector } from 'reselect'\nimport { RootState } from '../../types'\n\nexport const getState = (state: RootState) => state.signature\nexport const getData = createSelector(getState, state => state.data)\nexport const isLoading = createSelector(\n getState,\n state => state.loading.length > 0\n)\nexport const getError = createSelector(getState, state => state.error)\n","import React from 'react'\n\nexport default React.memo(({ children }: { children: string }) => (\n <p style={{ color: 'var(--primary)' }}> Error: {children}</p>\n))\n","import { Props } from './types'\nimport { Blockie, Address, Button } from 'decentraland-ui'\nimport { coordsToString } from '../../modules/land/utils'\nimport Error from '../Error'\n\nexport default function RenderWalletData({\n isConnected,\n isConnecting,\n wallet,\n authorizations,\n isUpdateAuthorized,\n onConnectWallet\n}: Props) {\n function getFormattedUnauthorized() {\n return (authorizations || [])\n .filter(a => !a.isUpdateAuthorized)\n .map(a => `\"${coordsToString(a)}\"`)\n .join(', ')\n }\n\n if (isConnected && wallet.address) {\n return (\n <>\n <p>\n Using address: &nbsp;\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&nbsp;\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 getData as getSignature,\n isLoading as isSigningTx\n} from '../../modules/signature/selectors'\n\nimport { createIdentityRequest } from '../../modules/signature/actions'\nimport { RootState } from '../../types'\nimport { MapStateProps, MapDispatchProps } from './types'\n\nimport IdentityPage from './IdentityPage'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n wallet: getWallet(state)!,\n isConnected: isConnected(state),\n isConnecting: isConnecting(state),\n signed: !!getSignature(state),\n isSigning: isSigningTx(state)\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: () => dispatch(enableWalletRequest(ProviderType.INJECTED)),\n onRequestIdentity: () => dispatch(createIdentityRequest())\n})\n\nexport default connect(mapState, mapDispatch)(IdentityPage)\n","import './style.css'\nimport { Container, Dropdown, Table } from 'decentraland-ui'\nimport { Props } from './types'\nimport { useMemo, useState } from 'react'\nimport { FileSize } from '../../modules/server/reducer'\n\nenum Filter {\n Size = 'Size',\n Name = 'Name'\n}\n\nexport default function FilesPage({ files }: Props) {\n const [filter, setFilter] = useState<Filter>(Filter.Size)\n const value = useMemo<FileSize[]>(\n () =>\n files.sort((a, b) => {\n if (filter === Filter.Size) {\n return b.size < a.size ? -1 : 1\n }\n return a.name < b.name ? -1 : 1\n }),\n [files, filter]\n )\n\n return (\n <Container>\n <Table basic=\"very\">\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>File Name</Table.HeaderCell>\n <Table.HeaderCell>Size</Table.HeaderCell>\n <Table.HeaderCell>\n <Dropdown text={filter} direction=\"right\">\n <Dropdown.Menu>\n {Object.values(Filter).map(f => (\n <Dropdown.Item\n key={f}\n onClick={() => setFilter(f)}\n text={f}\n />\n ))}\n </Dropdown.Menu>\n </Dropdown>\n </Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {value.map(({ name, size }, index) => (\n <Table.Row key={index}>\n <Table.Cell>{name}</Table.Cell>\n <Table.Cell>{(Number(size) * 1e-6).toFixed(2)} MB </Table.Cell>\n <Table.Cell />\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </Container>\n )\n}\n","import IdentityPage from './IdentityPage.container'\nexport default IdentityPage\n","import { SyntheticEvent } from 'react'\nimport './style.css'\nimport { Header, Button, Navbar } from 'decentraland-ui'\nimport { Props } from './types'\nimport RenderWalletData from '../RenderWalletData/RenderWalletData'\nimport { isRopsten } from '../../config'\n\nexport default function IdentityPage(props: Props) {\n const {\n isConnected,\n wallet,\n isConnecting,\n onConnectWallet,\n isSigning,\n onRequestIdentity\n } = props\n\n const handleSignature = (e: SyntheticEvent) => {\n e.preventDefault()\n onRequestIdentity()\n }\n\n return (\n <div className=\"LinkScenePage\">\n {isRopsten() && <div className=\"warning\">Using Ropsten test network</div>}\n <Navbar />\n <Header>Create an identity to sign deployments </Header>\n <RenderWalletData\n isUpdateAuthorized={true}\n isConnected={isConnected}\n isConnecting={isConnecting}\n wallet={wallet}\n onConnectWallet={onConnectWallet}\n />\n <form>\n <div>\n <Button\n primary\n onClick={handleSignature}\n disabled={!isConnected}\n loading={isSigning}\n >\n Sign ephemeral wallet\n </Button>\n </div>\n </form>\n </div>\n )\n}\n","import { createSelector } from 'reselect'\n\nimport { RootState } from '../../types'\n\nexport const getState = (state: RootState) => state.land\n\nexport const getData = createSelector(getState, state => state.data)\n\nexport const isLoading = createSelector(\n getState,\n state => state.loading.length > 0\n)\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 { connect } from 'react-redux'\nimport { RootState } from '../../types'\nimport { MapStateProps } from './types'\n\nimport FilesPage from './Files'\nimport { getFiles } from '../../modules/server/selectors'\n\nconst mapState = (state: RootState): MapStateProps => {\n return { files: getFiles(state) }\n}\n\nexport default connect(mapState)(FilesPage)\n","import Files from './Files.container'\nexport default Files\n","import './style.css'\nimport { Atlas, Container, Coord, Layer, Section, Table } from 'decentraland-ui'\nimport { Props } from './types'\n\nexport default function LinkScenePage({\n authorizations,\n parcels,\n baseParcel\n}: Props) {\n const find = <T extends Coord>(coords: T[]) => (\n x: number,\n y: number\n ): T | undefined => coords.find(s => s.x === x && s.y === y)\n\n const selectedFillLayer: Layer = (x: number, y: number) => {\n return find(parcels)(x, y) ? { color: '#ff99', scale: 1.2 } : null\n }\n\n const selectedStroke: Layer = (x: number, y: number) => {\n return find(parcels)(x, y) ? { color: '#ff0044', scale: 1.4 } : null\n }\n\n return (\n <Container>\n {!!parcels.length && (\n <Section size=\"large\" className=\"map-table\">\n <Table basic=\"very\">\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>Name</Table.HeaderCell>\n <Table.HeaderCell>Coordinates</Table.HeaderCell>\n <Table.HeaderCell>Permissions</Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {parcels.map((coords, index) => {\n const isAuthorized = !!find(authorizations || [])(\n coords.x,\n coords.y\n )?.isUpdateAuthorized\n return (\n <Table.Row key={index}>\n <Table.Cell>Parcel {index}</Table.Cell>\n <Table.Cell>\n {coords.x}, {coords.y}\n </Table.Cell>\n <Table.Cell\n className={!isAuthorized ? 'permission-not-granted' : ''}\n >\n {authorizations.length\n ? isAuthorized\n ? 'Granted'\n : 'Not granted'\n : ''}\n </Table.Cell>\n </Table.Row>\n )\n })}\n </Table.Body>\n </Table>\n </Section>\n )}\n <Container>\n <Section size=\"large\" className=\"map-canvas\">\n <Atlas\n height={300}\n x={baseParcel.x}\n y={baseParcel.y}\n isDraggable={false}\n layers={[selectedStroke, selectedFillLayer]}\n />\n </Section>\n </Container>\n </Container>\n )\n}\n","import { AnyAction, Dispatch } from 'redux'\nimport { connect } from 'react-redux'\nimport { RootState } from '../../types'\nimport { MapStateProps, MapDispatchProps } from './types'\n\nimport DeploySuccess from './DeploySuccess'\nimport { fetchCatalystRequest } from '../../modules/server/actions'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n status: state.api.catalyst?.status,\n catalysts: state.api.catalyst?.catalysts || []\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => {\n return {\n onFetchCatalyst: () => dispatch(fetchCatalystRequest())\n }\n}\n\nexport default connect(mapState, mapDispatch)(DeploySuccess)\n","import {\n Navbar,\n Tabs,\n Footer,\n Page,\n Header,\n Icon,\n Button,\n Container,\n HeaderMenu,\n Color,\n Badge,\n Address,\n Blockie,\n Toast,\n ToastType,\n Loader\n} from 'decentraland-ui'\nimport { Props } from './types'\nimport { useEffect, useState } from 'react'\nimport Files from '../Files'\nimport Map from '../Map'\n\nimport './style.css'\nimport { ChainId } from '@dcl/schemas'\nimport DeploySuccess from '../DeploySuccess/DeploySuccess.container'\n\nenum Tab {\n Map = 'Map',\n Files = 'Files'\n}\n\nexport default function LinkScenePage(props: Props) {\n const [tab, setTab] = useState<Tab>(Tab.Map)\n const {\n isConnected,\n wallet,\n authorizations,\n isUpdateAuthorized,\n isConnecting,\n onConnectWallet,\n onSignContent,\n onFetchFiles,\n onFetchInfo,\n isSigning,\n error,\n isAuthorizationLoading,\n signed,\n info\n } = props\n\n const { x, y } = info?.baseParcel || { x: 0, y: 0 }\n const isRopsten = wallet?.chainId === ChainId.ETHEREUM_ROPSTEN\n const networkName = isRopsten ? 'zone' : 'org'\n const deployUrl = `https://play.decentraland.${networkName}/?position=${x},${y}`\n\n useEffect(() => {\n onFetchInfo()\n onFetchFiles()\n }, [onFetchFiles, onFetchInfo])\n\n return (\n <div className=\"Page-story-container\">\n <Navbar\n leftMenu={<></>}\n isConnected={isConnected}\n isConnecting={isConnecting}\n address={wallet?.address}\n />\n <Page>\n <Container>\n <HeaderMenu>\n <HeaderMenu.Left>\n <Container textAlign=\"center\">\n <Header size=\"large\">\n Deploying {info?.title || 'Untitled Scene'}\n </Header>\n {info?.description && (\n <Header size=\"medium\">\n {info?.description || 'Some description'}\n </Header>\n )}\n </Container>\n </HeaderMenu.Left>\n </HeaderMenu>\n <HeaderMenu>\n <HeaderMenu.Left>\n <div\n className=\"address-header url\"\n onClick={() =>\n deployUrl && window.open(deployUrl!, '_blank')?.focus()\n }\n >\n <Badge color={Color.SUMMER_RED}>\n <Icon name=\"point\" />\n {x}, {y}\n </Badge>\n </div>\n {!!isConnected && (\n <div className=\"address-header\">\n <Badge color={Color.SHADOWS}>\n {isRopsten ? 'Ropsten' : 'Mainnet'}\n </Badge>\n </div>\n )}\n <div className=\"address-header\">\n {!!wallet?.address && (\n <Blockie scale={3} seed={wallet.address}>\n <Address tooltip strong value={wallet.address} />\n </Blockie>\n )}\n </div>\n </HeaderMenu.Left>\n {!signed && (\n <HeaderMenu.Right>\n <Button\n primary\n size=\"medium\"\n loading={\n isConnecting ||\n isSigning ||\n (isConnected && isAuthorizationLoading)\n }\n disabled={!!error || (isConnected && !isUpdateAuthorized)}\n onClick={\n isConnected\n ? () => onSignContent(info!.rootCID)\n : onConnectWallet\n }\n >\n {isConnected ? 'Sign & Deploy' : 'Connect Wallet'}\n </Button>\n </HeaderMenu.Right>\n )}\n </HeaderMenu>\n </Container>\n {!!(authorizations?.length && !isUpdateAuthorized) && (\n <Toast\n type={ToastType.ERROR}\n title=\"Check LAND permissions\"\n body=\"You dont have permissions to update some of the coords\"\n />\n )}\n {!signed && (\n <Tabs isFullscreen>\n {Object.values(Tab).map(t => (\n <Tabs.Tab key={t} onClick={() => setTab(t)} active={tab === t}>\n {t}\n </Tabs.Tab>\n ))}\n </Tabs>\n )}\n {!info && <Loader />}\n {signed && <DeploySuccess />}\n {!signed && tab === Tab.Files && <Files />}\n {!signed && info && tab === Tab.Map && (\n <Map\n authorizations={authorizations}\n parcels={info!.parcels}\n baseParcel={info!.baseParcel}\n />\n )}\n </Page>\n <Footer />\n </div>\n )\n}\n","import { Badge, Color, Container, HeaderMenu, Table } from 'decentraland-ui'\nimport { Props } from './types'\nimport { useEffect } from 'react'\n\nimport './style.css'\n\nexport default function DeploySuccess({\n onFetchCatalyst,\n catalysts = [],\n status\n}: Props) {\n const entityIds = new Set(catalysts.map(c => c.entityId))\n const deployedToAll = status === 'success' && entityIds.size === 1\n\n useEffect(() => {\n if (deployedToAll) return\n const interval = setInterval(() => {\n onFetchCatalyst()\n }, 5_000)\n return () => clearInterval(interval)\n }, [onFetchCatalyst, deployedToAll])\n\n return (\n <Container>\n <HeaderMenu>\n <Badge color={deployedToAll ? '#20913e' : Color.SUNISH}>\n {deployedToAll\n ? 'Deployed successfully to Catalyst servers'\n : 'Deploying..'}\n </Badge>\n </HeaderMenu>\n <Table basic=\"very\">\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>Catalyst Server</Table.HeaderCell>\n <Table.HeaderCell>Time</Table.HeaderCell>\n <Table.HeaderCell>Entity Id</Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {(catalysts || []).map(({ url, timestamp, entityId }) => (\n <Table.Row key={url}>\n <Table.Cell>{url}</Table.Cell>\n <Table.Cell>{new Date(timestamp).toLocaleString()}</Table.Cell>\n <Table.Cell>{entityId}</Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </Container>\n )\n}\n","import { AnyAction, Dispatch } from 'redux'\nimport { connect } from 'react-redux'\nimport { ProviderType } from 'decentraland-connect'\nimport { enableWalletRequest } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport {\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'\nimport {\n fetchFilesRequest,\n fetchInfoRequest\n} from '../../modules/server/actions'\nimport { getInfo } from '../../modules/server/selectors'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n base: getLand(state),\n wallet: getWallet(state)!,\n isLandLoading: isLandLoading(state),\n isConnected: isConnected(state),\n isConnecting: isConnecting(state),\n error: getLandError(state)!,\n signed: !!getSignature(state),\n isUpdateAuthorized: isUpdateAuthorized(state),\n authorizations: getAuthorizations(state),\n isAuthorizationLoading: isAuthorizationLoading(state),\n isSigning: isSigningTx(state),\n info: getInfo(state)\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: () => dispatch(enableWalletRequest(ProviderType.INJECTED)),\n onSignContent: (cid: string) => dispatch(signContentRequest(cid)),\n onFetchFiles: () => dispatch(fetchFilesRequest()),\n onFetchInfo: () => dispatch(fetchInfoRequest())\n})\n\nexport default connect(mapState, mapDispatch)(LinkerPage)\n","import LinkerPage from './LinkerPage.container'\nexport default LinkerPage\n","import IdentityPage from './IdentityPage'\nimport LinkerPage from './LinkerPage'\n\nconst Root = (props: any) => {\n const qs = new URLSearchParams(document.location.search)\n\n if (qs.has('wearableId')) {\n return <IdentityPage {...props} />\n }\n\n return <LinkerPage {...props} />\n}\n\nexport default Root\n","import ReactDOM from 'react-dom'\nimport WalletProvider from 'decentraland-dapps/dist/providers/WalletProvider'\nimport { Provider } from 'react-redux'\n\nimport { initStore } from './store'\n\nimport Root from './components/Root'\n\n// Do not move these before other imports\nimport 'decentraland-ui/lib/styles.css'\nimport 'decentraland-ui/lib/dark-theme.css'\n\n// tslint:disable-next-line: no-floating-promises\nReactDOM.render(\n <Provider store={initStore()}>\n <WalletProvider>\n <Root />\n </WalletProvider>\n </Provider>,\n document.getElementById('root')\n)\n","import { applyMiddleware, compose, createStore } from 'redux'\nimport createSagasMiddleware from 'redux-saga'\nimport { createLogger } from 'redux-logger'\nimport { createTransactionMiddleware } from 'decentraland-dapps/dist/modules/transaction/middleware'\nimport { createStorageMiddleware } from 'decentraland-dapps/dist/modules/storage/middleware'\n\nimport { rootReducer } from './reducer'\nimport { rootSaga } from './sagas'\n\nexport function initStore() {\n const composeEnhancers =\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'\nimport { apiSaga } from './modules/server/sagas'\n\nexport function rootSaga() {\n return function*() {\n yield all([\n walletSaga(),\n landSaga(),\n signatureSaga(),\n authorizationSaga(),\n apiSaga()\n ])\n }\n}\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ !function(e){function r(r){for(var n,a,i=r[0],c=r[1],l=r[2],f=0,s=[];f<i.length;f++)a=i[f],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&s.push(o[a][0]),o[a]=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,i=1;i<t.length;i++){var c=t[i];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={1:0},u=[];function a(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,a),t.l=!0,t.exports}a.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,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+"static/js/"+({}[e]||e)+"."+{3:"3326aaa8"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){i.onerror=i.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:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,function(r){return e[r]}.bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/",a.oe=function(e){throw console.error(e),e};var i=this["webpackJsonp@dcl/linker-dapp"]=this["webpackJsonp@dcl/linker-dapp"]||[],c=i.push.bind(i);i.push=r,i=i.slice();for(var l=0;l<i.length;l++)r(i[l]);var p=c;t()}([]);
2
+ //# sourceMappingURL=runtime-main.62771ab4.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.4d07cd54.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\":\"deb33fb3\"}[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.62771ab4.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\":\"3326aaa8\"}[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":""}
@@ -0,0 +1,3 @@
1
+ import DeploySuccess from './DeploySuccess';
2
+ declare const _default: import("react-redux").ConnectedComponent<typeof DeploySuccess, import("react-redux").Omit<import("./types").Props, "status" | "catalysts" | "onFetchCatalyst">>;
3
+ export default _default;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { Props } from './types';
3
+ import './style.css';
4
+ export default function DeploySuccess({ onFetchCatalyst, catalysts, status }: Props): JSX.Element;
@@ -0,0 +1,2 @@
1
+ import Deploysuccess from './DeploySuccess.container';
2
+ export default Deploysuccess;
@@ -0,0 +1,8 @@
1
+ import { CatalystResponse } from '../../modules/server/reducer';
2
+ export declare type Props = {
3
+ catalysts?: CatalystResponse['catalysts'];
4
+ status?: CatalystResponse['status'];
5
+ onFetchCatalyst: () => void;
6
+ };
7
+ export declare type MapStateProps = Pick<Props, 'catalysts' | 'status'>;
8
+ export declare type MapDispatchProps = Pick<Props, 'onFetchCatalyst'>;
@@ -0,0 +1,3 @@
1
+ import FilesPage from './Files';
2
+ declare const _default: import("react-redux").ConnectedComponent<typeof FilesPage, import("react-redux").Omit<import("./types").Props, "files">>;
3
+ export default _default;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import './style.css';
3
+ import { Props } from './types';
4
+ export default function FilesPage({ files }: Props): JSX.Element;
@@ -0,0 +1,2 @@
1
+ import Files from './Files.container';
2
+ export default Files;
@@ -0,0 +1,5 @@
1
+ import { FileSize } from '../../modules/server/reducer';
2
+ export declare type Props = {
3
+ files: FileSize[];
4
+ };
5
+ export declare type MapStateProps = Pick<Props, 'files'>;
@@ -1,3 +1,3 @@
1
1
  import LinkerPage from './LinkerPage';
2
- declare const _default: import("react-redux").ConnectedComponent<typeof LinkerPage, import("react-redux").Omit<import("./types").Props, "isUpdateAuthorized" | "wallet" | "isConnected" | "isConnecting" | "signed" | "isSigning" | "onConnectWallet" | "base" | "authorizations" | "isLandLoading" | "error" | "isAuthorizationLoading" | "onSignContent">>;
2
+ declare const _default: import("react-redux").ConnectedComponent<typeof LinkerPage, import("react-redux").Omit<import("./types").Props, "isUpdateAuthorized" | "wallet" | "isConnected" | "isConnecting" | "signed" | "isSigning" | "onConnectWallet" | "base" | "authorizations" | "isLandLoading" | "error" | "isAuthorizationLoading" | "info" | "onFetchInfo" | "onSignContent" | "onFetchFiles">>;
3
3
  export default _default;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- import './style.css';
3
2
  import { Props } from './types';
3
+ import './style.css';
4
4
  export default function LinkScenePage(props: Props): JSX.Element;
@@ -4,6 +4,7 @@ import { Transaction } from 'decentraland-dapps/dist/modules/transaction/types';
4
4
  import { LANDMeta } from '../../modules/land/types';
5
5
  import { SignContentRequestAction } from '../../modules/signature/actions';
6
6
  import { Authorization } from '../../modules/authorization/types';
7
+ import { Info } from '../../modules/server/reducer';
7
8
  export declare type Props = {
8
9
  sceneOwner?: string;
9
10
  base: LANDMeta;
@@ -19,7 +20,10 @@ export declare type Props = {
19
20
  authorizations: Authorization[];
20
21
  isAuthorizationLoading: boolean;
21
22
  onConnectWallet: () => EnableWalletRequestAction;
23
+ onFetchInfo: () => void;
24
+ info?: Info;
22
25
  onSignContent: (cid: string) => SignContentRequestAction;
26
+ onFetchFiles: () => void;
23
27
  };
24
- export declare type MapStateProps = Pick<Props, 'base' | 'wallet' | 'isLandLoading' | 'isConnected' | 'isConnecting' | 'error' | 'signed' | 'isUpdateAuthorized' | 'authorizations' | 'isAuthorizationLoading' | 'isSigning'>;
25
- export declare type MapDispatchProps = Pick<Props, 'onConnectWallet' | 'onSignContent'>;
28
+ export declare type MapStateProps = Pick<Props, 'base' | 'wallet' | 'isLandLoading' | 'isConnected' | 'isConnecting' | 'error' | 'signed' | 'isUpdateAuthorized' | 'authorizations' | 'isAuthorizationLoading' | 'isSigning' | 'info'>;
29
+ export declare type MapDispatchProps = Pick<Props, 'onConnectWallet' | 'onSignContent' | 'onFetchFiles' | 'onFetchInfo'>;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import './style.css';
3
+ import { Props } from './types';
4
+ export default function LinkScenePage({ authorizations, parcels, baseParcel }: Props): JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { Coord } from 'decentraland-ui';
2
+ import { Authorization } from '../../modules/authorization/types';
3
+ export declare type Props = {
4
+ authorizations: Authorization[];
5
+ parcels: Coord[];
6
+ baseParcel: Coord;
7
+ };
8
+ export declare type MapStateProps = Props;
9
+ export declare type MapDispatchProps = Props;
package/types/config.d.ts CHANGED
@@ -1,17 +1,4 @@
1
- import { ChainId } from '@dcl/schemas';
2
- import { Coords } from './modules/land/types';
3
- declare type Config = {
4
- baseParcel: Coords;
5
- parcels: Coords[];
6
- rootCID: string;
7
- debug: boolean;
8
- estateRegistry?: string;
9
- landRegistry?: string;
10
- chainId: ChainId;
11
- wearableId?: string;
12
- };
13
- export declare function init(): void;
1
+ import { ChainId } from '@dcl/builder-client/node_modules/@dcl/schemas';
14
2
  export declare function isRopsten(): boolean;
3
+ export declare function getChainId(): ChainId.ETHEREUM_MAINNET | ChainId.ETHEREUM_ROPSTEN;
15
4
  export declare function isDevelopment(): boolean;
16
- export declare function getConfig<T extends keyof Config>(key: T): Config[T];
17
- export {};
@@ -1,3 +1,3 @@
1
1
  import { Contract } from '@ethersproject/contracts';
2
- export declare function getLandContract(): Promise<Contract | undefined>;
3
- export declare function getEstateContract(): Promise<Contract | undefined>;
2
+ export declare function getLandContract(landRegistry?: string): Promise<Contract | undefined>;
3
+ export declare function getEstateContract(estateRegistry?: string): Promise<Contract | undefined>;
@@ -1,8 +1,8 @@
1
- import { LANDMeta, Coords } from './types';
1
+ import { LANDMeta } from './types';
2
2
  export declare const FETCH_LAND_REQUEST = "[Request] Fetch LAND";
3
3
  export declare const FETCH_LAND_SUCCESS = "[Success] Fetch LAND";
4
4
  export declare const FETCH_LAND_FAILURE = "[Failure] Fetch LAND";
5
- export declare const fetchLandRequest: (coords: Coords) => import("typesafe-actions/dist/types").PayloadAction<"[Request] Fetch LAND", Coords>;
5
+ export declare const fetchLandRequest: () => import("typesafe-actions/dist/types").EmptyAction<"[Request] Fetch LAND">;
6
6
  export declare const fetchLandSuccess: (land: LANDMeta) => import("typesafe-actions/dist/types").PayloadAction<"[Success] Fetch LAND", {
7
7
  land: LANDMeta;
8
8
  }>;
@@ -0,0 +1,38 @@
1
+ import { CatalystResponse, FileSize, Info } from './reducer';
2
+ export declare const FETCH_FILES_REQUEST = "[Request] Fetch Files";
3
+ export declare const FETCH_FILES_SUCCESS = "[Success] Fetch Files";
4
+ export declare const FETCH_FILES_FAILURE = "[Failure] Fetch Files";
5
+ export declare const FETCH_INFO_REQUEST = "[Request] Fetch info";
6
+ export declare const FETCH_INFO_SUCCESS = "[Success] Fetch info";
7
+ export declare const FETCH_INFO_FAILURE = "[Failure] Fetch info";
8
+ export declare const FETCH_CATALYST_REQUEST = "[Request] Fetch catalyst";
9
+ export declare const FETCH_CATALYST_SUCCESS = "[Success] Fetch catalyst";
10
+ export declare const FETCH_CATALYST_FAILURE = "[Failure] Fetch catalyst";
11
+ export declare const fetchFilesRequest: () => import("typesafe-actions/dist/types").EmptyAction<"[Request] Fetch Files">;
12
+ export declare const fetchFilesSuccess: (files: FileSize[]) => import("typesafe-actions/dist/types").PayloadAction<"[Success] Fetch Files", {
13
+ files: FileSize[];
14
+ }>;
15
+ export declare const fetchFilesFailure: (error: string) => import("typesafe-actions/dist/types").PayloadAction<"[Failure] Fetch Files", {
16
+ error: string;
17
+ }>;
18
+ export declare const fetchInfoRequest: () => import("typesafe-actions/dist/types").EmptyAction<"[Request] Fetch info">;
19
+ export declare const fetchInfoSuccess: (info: Info) => import("typesafe-actions/dist/types").PayloadAction<"[Success] Fetch info", {
20
+ info: Info;
21
+ }>;
22
+ export declare const fetchInfoFailure: (error: string) => import("typesafe-actions/dist/types").PayloadAction<"[Failure] Fetch info", {
23
+ error: string;
24
+ }>;
25
+ export declare const fetchCatalystRequest: () => import("typesafe-actions/dist/types").EmptyAction<"[Request] Fetch catalyst">;
26
+ export declare const fetchCatalystSuccess: (payload: CatalystResponse) => import("typesafe-actions/dist/types").PayloadAction<"[Success] Fetch catalyst", CatalystResponse>;
27
+ export declare const fetchCatalystFailure: (error: string) => import("typesafe-actions/dist/types").PayloadAction<"[Failure] Fetch catalyst", {
28
+ error: string;
29
+ }>;
30
+ export declare type FetchFilesRequestAction = ReturnType<typeof fetchFilesRequest>;
31
+ export declare type FetchFilesSuccessAction = ReturnType<typeof fetchFilesSuccess>;
32
+ export declare type FetchFilesFailureAction = ReturnType<typeof fetchFilesFailure>;
33
+ export declare type FetchInfoRequestAction = ReturnType<typeof fetchInfoRequest>;
34
+ export declare type FetchInfoSuccessAction = ReturnType<typeof fetchInfoSuccess>;
35
+ export declare type FetchInfoFailureAction = ReturnType<typeof fetchInfoFailure>;
36
+ export declare type FetchCatalystRequest = ReturnType<typeof fetchCatalystRequest>;
37
+ export declare type FetchCatalystSuccess = ReturnType<typeof fetchCatalystSuccess>;
38
+ export declare type FetchCatalystFailure = ReturnType<typeof fetchCatalystFailure>;
@@ -0,0 +1,34 @@
1
+ import { LoadingState } from 'decentraland-dapps/dist/modules/loading/reducer';
2
+ import { Coords } from '../land/types';
3
+ import { FetchFilesRequestAction, FetchFilesSuccessAction, FetchFilesFailureAction, FetchInfoRequestAction, FetchInfoSuccessAction, FetchInfoFailureAction, FetchCatalystFailure, FetchCatalystRequest, FetchCatalystSuccess } from './actions';
4
+ export declare type Info = {
5
+ baseParcel: Coords;
6
+ parcels: Coords[];
7
+ rootCID: string;
8
+ debug: boolean;
9
+ estateRegistry?: string;
10
+ landRegistry?: string;
11
+ title?: string;
12
+ description?: string;
13
+ };
14
+ export declare type FileSize = {
15
+ name: string;
16
+ size: string;
17
+ };
18
+ export declare type CatalystResponse = {
19
+ catalysts: {
20
+ url: string;
21
+ timestamp: number;
22
+ entityId: string;
23
+ }[];
24
+ status: 'deploying' | 'success' | 'closed';
25
+ };
26
+ export declare type ApiState = {
27
+ files: FileSize[];
28
+ loading: LoadingState;
29
+ error: string | null;
30
+ catalyst: CatalystResponse | undefined;
31
+ info: Info | undefined;
32
+ };
33
+ export declare type ApiReducerAction = FetchFilesRequestAction | FetchFilesSuccessAction | FetchFilesFailureAction | FetchInfoRequestAction | FetchInfoSuccessAction | FetchInfoFailureAction | FetchCatalystFailure | FetchCatalystRequest | FetchCatalystSuccess;
34
+ export declare const apiReducer: (state: ApiState | undefined, action: ApiReducerAction) => ApiState;
@@ -0,0 +1 @@
1
+ export declare function apiSaga(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
@@ -0,0 +1,5 @@
1
+ import { RootState } from '../../types';
2
+ export declare const getFiles: (state: RootState) => import("./reducer").FileSize[];
3
+ export declare const isLoading: (state: RootState) => boolean;
4
+ export declare const getError: (state: RootState) => string | null;
5
+ export declare const getInfo: (state: RootState) => import("./reducer").Info | undefined;
@@ -1,13 +1,10 @@
1
1
  import { ChainId } from '@dcl/schemas';
2
2
  import { AuthIdentity } from 'dcl-crypto';
3
- export declare type LinkerResponseScenenDeploy = {
4
- responseType: 'scene-deploy';
5
- payload: {
6
- address: string;
7
- signature: string;
8
- chainId: ChainId;
9
- };
10
- };
3
+ export declare type DeployScene = {
4
+ address: string;
5
+ signature: string;
6
+ chainId: ChainId;
7
+ } | Record<string, never>;
11
8
  export declare type LinkerResponseIdentity = {
12
9
  responseType: 'identity';
13
10
  payload: {
@@ -16,5 +13,8 @@ export declare type LinkerResponseIdentity = {
16
13
  identity: AuthIdentity;
17
14
  };
18
15
  };
19
- export declare type LinkerResponse = LinkerResponseScenenDeploy | LinkerResponseIdentity;
20
- export declare function closeServer(ok: boolean, message: LinkerResponse): Promise<void>;
16
+ export declare function closeServer(ok: boolean, message: LinkerResponseIdentity): Promise<void>;
17
+ export declare function postDeploy(payload: DeployScene): Promise<void>;
18
+ export declare function getFilesRequest(): Promise<void>;
19
+ export declare function getInfoRequest(): Promise<void>;
20
+ export declare function getCatalystsPointer(): Promise<void>;
package/types/types.d.ts CHANGED
@@ -4,11 +4,13 @@ import { TransactionState } from 'decentraland-dapps/dist/modules/transaction/re
4
4
  import { LandState } from './modules/land/reducer';
5
5
  import { SignatureState } from './modules/signature/reducer';
6
6
  import { AuthorizationState } from './modules/authorization/reducer';
7
+ import { ApiState } from './modules/server/reducer';
7
8
  export declare type RootState = {
8
9
  wallet: WalletState;
9
10
  transaction: TransactionState;
10
11
  land: LandState;
11
12
  authorization: AuthorizationState;
12
13
  signature: SignatureState;
14
+ api: ApiState;
13
15
  };
14
16
  export declare type RootReducer = Reducer<Store<RootState>>;
@@ -1,2 +0,0 @@
1
- .LinkScenePage{text-align:center}.map{padding:15px}.options div input,.warning{color:#fff}.warning{background:var(--primary);text-align:center;text-transform:uppercase;height:24px;width:100%;position:fixed;top:0;padding-top:2px}.LinkScenePage{padding-top:24px}
2
- /*# sourceMappingURL=main.6c8c18c2.chunk.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://src/components/LinkerPage/style.css"],"names":[],"mappings":"AAAA,eACE,iBACF,CACA,KACE,YACF,CAKA,4BAHE,UAaA,CAVF,SACI,yBAA0B,CAE1B,iBAAkB,CAClB,wBAAyB,CACzB,WAAY,CACZ,UAAW,CACX,cAAe,CACf,KAAM,CACN,eACF,CACA,eACE,gBACF","file":"main.6c8c18c2.chunk.css","sourcesContent":[".LinkScenePage {\n text-align: center;\n}\n.map {\n padding: 15px;\n}\n.options div input {\n color: white;\n}\n\n.warning {\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 top: 0;\n padding-top: 2px;\n }\n .LinkScenePage {\n padding-top: 24px;\n }\n"]}