@dcl/linker-dapp 0.10.0 → 0.10.1
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.
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/react-semantic-ui-datepickers/dist/locales sync /^/.//.*/.json$","modules/signature/actions.ts","modules/signature/reducer.ts","modules/authorization/actions.ts","modules/authorization/reducer.ts","modules/server/actions.ts","modules/server/reducer.ts","modules/acl/actions.ts","modules/acl/reducer.ts","modules/quests/action.ts","modules/quests/reducer.ts","reducer.ts","config/index.ts","modules/wallet/sagas.ts","modules/server/utils.ts","modules/signature/sagas.ts","modules/server/selectors.ts","contracts.ts","modules/authorization/utils.ts","modules/authorization/sagas.ts","modules/server/sagas.ts","modules/translation/sagas.ts","modules/nps/sagas.ts","modules/acl/utils.ts","modules/acl/sagas.ts","modules/quests/utils.ts","modules/quests/sagas.ts","modules/signature/selectors.ts","components/Error.tsx","components/RenderWalletData/RenderWalletData.tsx","modules/land/utils.ts","components/IdentityPage/IdentityPage.container.tsx","components/IdentityPage/index.ts","components/IdentityPage/IdentityPage.tsx","modules/authorization/selectors.ts","components/Files/Files.tsx","components/Files/Files.container.tsx","components/Files/index.ts","components/Map/index.tsx","components/DeploySuccess/DeploySuccess.container.tsx","components/DeploySuccess/DeploySuccess.tsx","components/LinkerPage/LinkerPage.tsx","components/LinkerPage/LinkerPage.container.tsx","components/LinkerPage/index.ts","components/Root.tsx","components/WorldACLPage/ACLStatus/types.ts","modules/acl/selectors.ts","components/Chip/Chip.tsx","components/WorldACLPage/ACLStatus/ACLStatus.container.tsx","components/WorldACLPage/ACLStatus/index.ts","components/WorldACLPage/ACLStatus/ACLStatus.tsx","components/WorldACLPage/WorldACLPage.tsx","components/WorldACLPage/WorldACLPage.container.tsx","components/WorldACLPage/index.ts","components/QuestsPage/QuestsPage.tsx","modules/quests/selector.ts","components/QuestsPage/index.ts","components/QuestsPage/QuestsPage.container.tsx","index.tsx","store.ts","sagas.ts"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","SIGN_CONTENT_REQUEST","SIGN_CONTENT_SUCCESS","SIGN_CONTENT_FAILURE","signContentSuccess","signature","action","signContentFailure","error","CREATE_IDENTITY_REQUEST","CREATE_IDENTITY_SUCCESS","CREATE_IDENTITY_FAILURE","createIdentitySuccess","identity","createIdentityFailure","SIGN_WORLD_ACL_REQUEST","SIGN_WORLD_ACL_SUCCESS","SIGN_WORLD_ACL_FAILURE","signWorldACLSuccess","signWorldACLFailure","SIGN_QUESTS_REQUEST","SIGN_QUESTS_SUCCESS","signQuestsSuccess","signQuestsFailure","INITIAL_STATE","data","loading","FETCH_AUTHORIZATIONS_REQUEST","FETCH_AUTHORIZATIONS_SUCCESS","FETCH_AUTHORIZATIONS_FAILURE","fetchAuthorizationsRequest","owner","fetchAuthorizationsSuccess","authorizations","fetchAuthorizationsFailure","FETCH_FILES_REQUEST","FETCH_FILES_SUCCESS","FETCH_FILES_FAILURE","FETCH_INFO_REQUEST","FETCH_INFO_SUCCESS","FETCH_INFO_FAILURE","FETCH_CATALYST_REQUEST","FETCH_CATALYST_SUCCESS","FETCH_CATALYST_FAILURE","fetchFilesSuccess","files","fetchFilesFailure","fetchInfoSuccess","info","fetchInfoFailure","fetchCatalystRequest","fetchCatalystSuccess","payload","fetchCatalystFailure","DEPLOY_SUCCESS","deploySuccess","undefined","catalyst","parseCoords","query","c","_c$split","split","_c$split2","_slicedToArray","x","y","parseInt","FETCH_WORLD_ACL_REQUEST","FETCH_WORLD_ACL_SUCCESS","FETCH_WORLD_ACL_FAILURE","UPDATE_WORLD_ACL_REQUEST","UPDATE_WORLD_ACL_SUCCESS","UPDATE_WORLD_ACL_FAILURE","fetchWorldACLSuccess","acl","fetchWorldACLFailure","updateWorldACLRequest","updateWorldACLSuccess","updateWorldACLFailure","FETCH_QUESTS_INFO_REQUEST","FETCH_QUESTS_INFO_SUCCESS","FETCH_QUESTS_INFO_FAILURE","fetchQuestsInfoSuccess","fetchQuestsInfoFailure","SIGN_QUESTS_FETCH_REQUEST","signQuestsFetchRequest","signQuestsFetchSuccess","signQuestsFetchFailure","rootReducer","storageReducerWrapper","combineReducers","storage","wallet","transaction","translation","state","arguments","length","type","_objectSpread","loadingReducer","authorization","api","catalysts","baseParcel","parcels","rootCID","quests","config","createConfig","dev","prod","walletSaga","_marked2","_regeneratorRuntime","mark","fullWalletSaga","_marked3","handleWallet","_marked4","handleConnectWalletSuccess","baseWalletSaga","wrap","_context","prev","next","createWalletSaga","CHAIN_ID","get","ChainId","ETHEREUM_MAINNET","toString","all","stop","_marked","_context2","takeEvery","CHANGE_NETWORK","CHANGE_ACCOUNT","CONNECT_WALLET_SUCCESS","_context3","call","window","location","reload","address","_context4","select","getAddress","sent","put","closeServer","_x","_x2","_closeServer","apply","_asyncToGenerator","_callee","ok","message","fetch","concat","JSON","stringify","postDeploy","_x3","_postDeploy","_callee2","response","method","headers","body","abrupt","json","getFilesRequest","_getFilesRequest","_callee3","getInfoRequest","_getInfoRequest","_callee4","getCatalystsPointer","_getCatalystsPointer","_callee5","_context5","signatureSaga","sign","handleSignContentRequest","handleSignContentSuccess","_marked5","handleCreateIdentityRequest","_marked6","handleCreateIdentitySuccess","_marked7","handleSignWorldACLRequest","_marked8","handleSignWorldACLSuccess","_marked9","handleQuestsSignRequest","_marked10","handleQuestsSignSuccess","takeLatest","dataToSign","provider","web3provider","signer","addr","signedMessage","toUtf8Bytes","getConnectedProvider","Web3Provider","getSigner","send","hexlify","toLowerCase","t0","chainId","getChainId","_action","createIdentity","_context6","responseType","_context7","_context8","_context9","_context10","getFiles","getInfo","ContractName","contractsByChainId","_contractsByChainId","_defineProperty","LANDRegistry","_ContractName$LANDReg","abi","ETHEREUM_SEPOLIA","EstateRegistry","_ContractName$EstateR","getProvider","_getProvider","getContract","name","contract","getContractByName","_getContractByName","_yield$provider$getNe","getNetwork","getLandContract","_getLandContract","landRegistry","_yield$getContractByN","Contract","getEstateContract","_getEstateContract","estateRegistry","_yield$getContractByN2","t1","t2","t3","isAuthorized","_x4","_x5","_isAuthorized","land","landTokenId","isUpdateAuthorized","estate","estateTokenId","_isUpdateAuthorized","unlockRegeneratorRuntime","encodeTokenId","getLandEstateId","_unlockRegeneratorRuntime","m","_ref","n","_x6","authorizationSaga","handleFetchAuthorizationsRequest","qs","_parcels","promises","take","URLSearchParams","document","search","parcel","Promise","apiSaga","handleFetchFilesRequest","handleFetchInfoRequest","handleFetchCatalystRequest","value","translationSaga","createTranslationSaga","translations","npsSaga","windowWithNps","delightedNps4","survey","getWorldACL","_getWorldACL","targetContent","worldName","updateWorldACL","_updateWorldACL","aclSaga","handleFetchWorldACLRequest","handleUpdateWorldACLRequest","_action$payload","getQuestsInfoRequest","_getQuestsInfoRequest","sendSignedFetch","_sendSignedFetch","questsSaga","handleFetchQuestsInfoRequest","handleCreateQuest","questsInfo","getState","getData","createSelector","isLoading","React","memo","children","_jsxs","style","color","RenderWalletData","isConnected","isConnecting","onConnectWallet","_Fragment","_jsx","Blockie","scale","seed","Address","tooltip","strong","filter","a","coordsToString","join","Button","primary","onClick","disabled","IdentityPage","connect","getWallet","signed","getSignature","isSigning","isSigningTx","dispatch","providerType","enableWalletRequest","onRequestIdentity","props","_useState","useState","_useState2","isModalOpen","setIsModalOpen","useEffect","className","Navbar","Header","preventDefault","LoginModal","onClose","onConnect","every","Filter","Files","Size","setFilter","useMemo","sort","b","size","Container","Table","basic","Row","HeaderCell","Dropdown","text","direction","Menu","values","f","Item","Body","_ref2","index","Cell","Number","toFixed","LinkScenePage","find","coords","s","Section","_find","Atlas","height","isDraggable","layers","_state$api$catalyst","_state$api$catalyst2","status","apiError","onFetchCatalyst","_ref$catalysts","deployedToAll","Set","entityId","isWorld","interval","setInterval","clearInterval","HeaderMenu","Badge","Color","SUNISH","url","timestamp","Date","toLocaleString","Tab","LinkerPage","getAuthorizations","isAuthorizationLoading","deployError","onSignContent","cid","signContentRequest","onFetchFiles","onFetchInfo","Map","tab","setTab","_useState3","_useState4","isTestNet","networkName","deployUrl","leftMenu","Page","Left","textAlign","title","description","_window$open","open","focus","SUMMER_RED","Icon","SHADOWS","Right","Toast","ToastType","ERROR","isPortableExperience","WARN","Tabs","isFullscreen","t","active","Loader","DeploySuccess","Footer","Root","has","ACLStatus","getACLStatus","getACL","resource","allowed","includes","UPDATED","UPDATING","Chip","icon","isActive","isDisabled","containerClass","classNames","clickeable","tabIndex","onKeyDown","evt","key","defaultProps","aclStatus","onFetchWorldACL","fetchWorldACLRequest","aclUpdated","Status","Allowed","addresses","WorldACLPage","signWorldACLRequest","_info$allowed","isPayloadExpired","setIsPayloadExpired","allowedDifference","oldAllowed","expiration","clearTimeout","getChainName","CreateQuestComponent","_info$extraData4","_info$extraData5","extraData","questName","createQuest","ListQuestsComponent","_ref3","messageToSign","ActivateQuestsComponent","_ref4","_info$extraData6","DeactivateQuestsComponent","_ref5","_info$extraData7","getQuestsInfo","QuestsPage","onSign","signQuestsRequest","_info$extraData","_info$extraData2","_info$extraData3","actionType","questId","router","createBrowserRouter","path","element","ReactDOM","render","Provider","store","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","_createStorageMiddlew","createStorageMiddleware","storageKey","storageMiddleware","loadStorageMiddleware","sagasMiddleware","createSagasMiddleware","transactionMiddleware","createTransactionMiddleware","loggerMiddleware","createLogger","collapsed","predicate","_","enhancer","applyMiddleware","createStore","run","initStore","TranslationProvider","locales","WalletProvider","RouterProvider","getElementById"],"mappings":"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","file":"static/js/main.ed34ac14.chunk.js","sourcesContent":["var map = {\n\t\"./bg-BG.json\": 2217,\n\t\"./ca-ES.json\": 2218,\n\t\"./cs-CZ.json\": 2219,\n\t\"./de-DE.json\": 2220,\n\t\"./el-GR.json\": 2221,\n\t\"./en-US.json\": 1083,\n\t\"./es-ES.json\": 2222,\n\t\"./et-EE.json\": 2223,\n\t\"./fi-FI.json\": 2224,\n\t\"./fr-FR.json\": 2225,\n\t\"./he-IL.json\": 2226,\n\t\"./it-IT.json\": 2227,\n\t\"./ja-JP.json\": 2228,\n\t\"./ko-KR.json\": 2229,\n\t\"./nb-NO.json\": 2230,\n\t\"./nl-NL.json\": 2231,\n\t\"./nn-NO.json\": 2232,\n\t\"./pl-PL.json\": 2233,\n\t\"./pt-BR.json\": 2234,\n\t\"./ro-RO.json\": 2235,\n\t\"./ru-RU.json\": 2236,\n\t\"./sk-SK.json\": 2237,\n\t\"./sv-SE.json\": 2238,\n\t\"./tr-TR.json\": 2239,\n\t\"./zh-CN.json\": 2240\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 2216;","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\nexport const SIGN_WORLD_ACL_REQUEST = '[Request] Sign World ACL'\nexport const SIGN_WORLD_ACL_SUCCESS = '[Success] Sign World ACL'\nexport const SIGN_WORLD_ACL_FAILURE = '[Failure] Sign World ACL'\n\nexport const signWorldACLRequest = (payload: string) =>\n action(SIGN_WORLD_ACL_REQUEST, payload)\nexport const signWorldACLSuccess = (signature: string) =>\n action(SIGN_WORLD_ACL_SUCCESS, { signature })\nexport const signWorldACLFailure = (error: string) =>\n action(SIGN_WORLD_ACL_FAILURE, { error })\n\nexport type SignWorldACLRequestAction = ReturnType<typeof signWorldACLRequest>\nexport type SignWorldACLSuccessAction = ReturnType<typeof signWorldACLSuccess>\nexport type SignWorldACLFailureAction = ReturnType<typeof signWorldACLFailure>\n\nexport const SIGN_QUESTS_REQUEST = '[Request] Sign Quests'\nexport const SIGN_QUESTS_SUCCESS = '[Success] Sign Quests'\nexport const SIGN_QUESTS_FAILURE = '[Failure] Sign Quests'\n\nexport const signQuestsRequest = (payload: string) =>\n action(SIGN_QUESTS_REQUEST, payload)\nexport const signQuestsSuccess = (signature: string) =>\n action(SIGN_QUESTS_SUCCESS, { signature })\nexport const signQuestsFailure = (error: string) =>\n action(SIGN_QUESTS_FAILURE, { error })\n\nexport type SignQuestsRequestAction = ReturnType<typeof signQuestsRequest>\nexport type SignQuestsSuccessAction = ReturnType<typeof signQuestsSuccess>\nexport type SignQuestsFailureAction = ReturnType<typeof signQuestsFailure>\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 SignWorldACLRequestAction,\n SignWorldACLSuccessAction,\n SignWorldACLFailureAction,\n SIGN_WORLD_ACL_REQUEST,\n SIGN_WORLD_ACL_SUCCESS,\n SIGN_WORLD_ACL_FAILURE,\n} from './actions'\n\nexport type SignatureState = {\n data: any\n identity: AuthIdentity | null\n loading: LoadingState\n error: string | null\n}\n\nexport const 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 | SignWorldACLRequestAction\n | SignWorldACLSuccessAction\n | SignWorldACLFailureAction\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 case SIGN_WORLD_ACL_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n }\n case SIGN_WORLD_ACL_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n data: action.payload.signature,\n error: null,\n }\n case SIGN_WORLD_ACL_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error,\n }\n default: {\n return state\n }\n }\n}\n","import { action } from 'typesafe-actions'\nimport { Authorization } from './types'\n\nexport const FETCH_AUTHORIZATIONS_REQUEST = '[Request] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_SUCCESS = '[Success] Fetch LAND Authorizations'\nexport const FETCH_AUTHORIZATIONS_FAILURE = '[Failure] Fetch LAND Authorizations'\n\nexport const fetchAuthorizationsRequest = (owner: string) => action(FETCH_AUTHORIZATIONS_REQUEST, { owner })\n\nexport const fetchAuthorizationsSuccess = (authorizations: Authorization[]) =>\n action(FETCH_AUTHORIZATIONS_SUCCESS, { authorizations })\n\nexport const fetchAuthorizationsFailure = (error: string) => action(FETCH_AUTHORIZATIONS_FAILURE, { error })\n\nexport type FetchAuthorizationsRequestAction = ReturnType<typeof fetchAuthorizationsRequest>\nexport type FetchAuthorizationsSuccessAction = ReturnType<typeof fetchAuthorizationsSuccess>\nexport type FetchAuthorizationsFailureAction = ReturnType<typeof fetchAuthorizationsFailure>\n","import {\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\nexport const 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 } from './reducer'\nimport { InfoResponse } from './types'\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: InfoResponse) =>\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\nexport const DEPLOY_SUCCESS = '[Success] Deploy content'\nexport const deploySuccess = () => action(DEPLOY_SUCCESS)\nexport type DeploySuccessAction = ReturnType<typeof deploySuccess>\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 DEPLOY_SUCCESS,\n DeploySuccessAction,\n} from './actions'\n\nexport type Info = {\n rootCID: string\n debug: boolean\n estateRegistry?: string\n landRegistry?: string\n title?: string\n description?: string\n baseParcel: Coords\n parcels: Coords[]\n isPortableExperience: boolean\n isWorld: boolean\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 deploySuccess: boolean\n}\n\nexport const INITIAL_STATE: ApiState = {\n info: undefined,\n files: [],\n loading: [],\n error: null,\n catalyst: undefined,\n deploySuccess: false\n}\n\nexport type ApiReducerAction =\n | FetchFilesRequestAction\n | FetchFilesSuccessAction\n | FetchFilesFailureAction\n | FetchInfoRequestAction\n | FetchInfoSuccessAction\n | FetchInfoFailureAction\n | FetchCatalystFailure\n | FetchCatalystRequest\n | FetchCatalystSuccess\n | DeploySuccessAction\n\nexport const apiReducer = (\n state = INITIAL_STATE,\n action: ApiReducerAction\n): ApiState => {\n switch (action.type) {\n case DEPLOY_SUCCESS: {\n return {\n ...state,\n deploySuccess: true\n }\n }\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 }\n case FETCH_INFO_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n }\n case FETCH_INFO_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n info: {\n ...action.payload.info,\n baseParcel: parseCoords(action.payload.info.baseParcel)[0],\n parcels: parseCoords(action.payload.info.parcels),\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 { action } from 'typesafe-actions'\nimport { ACLResponse } from './reducer'\nimport { InfoResponse } from './types'\n\nexport const FETCH_INFO_REQUEST = '[Request] Fetch World ACL info'\nexport const FETCH_INFO_SUCCESS = '[Success] Fetch World ACL info'\nexport const FETCH_INFO_FAILURE = '[Failure] Fetch World ACL info'\n\nexport const FETCH_WORLD_ACL_REQUEST = '[Request] Fetch World ACL'\nexport const FETCH_WORLD_ACL_SUCCESS = '[Success] Fetch World ACL'\nexport const FETCH_WORLD_ACL_FAILURE = '[Failure] Fetch World ACL'\n\nexport const UPDATE_WORLD_ACL_REQUEST = '[Request] Update World ACL'\nexport const UPDATE_WORLD_ACL_SUCCESS = '[Success] Update World ACL'\nexport const UPDATE_WORLD_ACL_FAILURE = '[Failure] Update World ACL'\n\nexport const fetchInfoRequest = () => action(FETCH_INFO_REQUEST)\nexport const fetchInfoSuccess = (info: InfoResponse) =>\n action(FETCH_INFO_SUCCESS, { info })\nexport const fetchInfoFailure = (error: string) =>\n action(FETCH_INFO_FAILURE, { error })\n\nexport const fetchWorldACLRequest = (targetContent: string, worldName: string) =>\n action(FETCH_WORLD_ACL_REQUEST, { targetContent, worldName })\nexport const fetchWorldACLSuccess = (acl: ACLResponse) =>\n action(FETCH_WORLD_ACL_SUCCESS, { acl })\nexport const fetchWorldACLFailure = (error: string) =>\n action(FETCH_WORLD_ACL_FAILURE, { error })\n\nexport const updateWorldACLRequest = (signature: string) =>\n action(UPDATE_WORLD_ACL_REQUEST, { signature })\nexport const updateWorldACLSuccess = () => action(UPDATE_WORLD_ACL_SUCCESS)\nexport const updateWorldACLFailure = (error: string) =>\n action(UPDATE_WORLD_ACL_FAILURE, { error })\n\nexport type FetchInfoRequestAction = ReturnType<typeof fetchInfoRequest>\nexport type FetchInfoSuccessAction = ReturnType<typeof fetchInfoSuccess>\nexport type FetchInfoFailureAction = ReturnType<typeof fetchInfoFailure>\n\nexport type FetchWorldACLRequestAction = ReturnType<typeof fetchWorldACLRequest>\nexport type FetchWorldACLSuccessAction = ReturnType<typeof fetchWorldACLSuccess>\nexport type FetchWorldACLFailureAction = ReturnType<typeof fetchWorldACLFailure>\n\nexport type UpdateWorldACLRequestAction = ReturnType<\n typeof updateWorldACLRequest\n>\nexport type UpdateWorldACLSuccessAction = ReturnType<\n typeof updateWorldACLSuccess\n>\nexport type UpdateWorldACLFailureAction = ReturnType<\n typeof updateWorldACLFailure\n>\n","import {\n loadingReducer,\n LoadingState,\n} from 'decentraland-dapps/dist/modules/loading/reducer'\nimport {\n FETCH_INFO_REQUEST,\n FETCH_INFO_FAILURE,\n FETCH_INFO_SUCCESS,\n FetchInfoRequestAction,\n FetchInfoSuccessAction,\n FetchInfoFailureAction,\n FetchWorldACLFailureAction,\n FetchWorldACLRequestAction,\n FetchWorldACLSuccessAction,\n FETCH_WORLD_ACL_REQUEST,\n FETCH_WORLD_ACL_SUCCESS,\n FETCH_WORLD_ACL_FAILURE,\n UpdateWorldACLFailureAction,\n UpdateWorldACLRequestAction,\n UpdateWorldACLSuccessAction,\n UPDATE_WORLD_ACL_FAILURE,\n UPDATE_WORLD_ACL_REQUEST,\n UPDATE_WORLD_ACL_SUCCESS,\n} from './actions'\nimport { InfoResponse } from './types'\n\nexport type ACLResponse = {\n resource: string\n allowed: string[]\n}\n\nexport type ACLState = {\n loading: LoadingState\n error: string | null\n info: InfoResponse | undefined\n acl: ACLResponse | undefined\n}\n\nexport const INITIAL_STATE: ACLState = {\n info: undefined,\n acl: undefined,\n loading: [],\n error: null,\n}\n\nexport type ApiReducerAction =\n | FetchInfoRequestAction\n | FetchInfoSuccessAction\n | FetchInfoFailureAction\n | FetchWorldACLFailureAction\n | FetchWorldACLRequestAction\n | FetchWorldACLSuccessAction\n | UpdateWorldACLFailureAction\n | UpdateWorldACLRequestAction\n | UpdateWorldACLSuccessAction\n\nexport const aclReducer = (\n state = INITIAL_STATE,\n action: ApiReducerAction\n): ACLState => {\n switch (action.type) {\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: action.payload.info,\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 case FETCH_WORLD_ACL_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n }\n case FETCH_WORLD_ACL_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n acl: action.payload.acl,\n error: null,\n }\n case FETCH_WORLD_ACL_FAILURE:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: action.payload.error,\n acl: undefined,\n }\n case UPDATE_WORLD_ACL_REQUEST:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n }\n case UPDATE_WORLD_ACL_SUCCESS:\n return {\n ...state,\n loading: loadingReducer(state.loading, action),\n error: null,\n }\n case UPDATE_WORLD_ACL_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 { QuestInfoResponse } from \"./types\"\n\nexport const FETCH_QUESTS_INFO_REQUEST = '[Request] Fetch Quests info'\nexport const FETCH_QUESTS_INFO_SUCCESS = '[Success] Fetch Quests info'\nexport const FETCH_QUESTS_INFO_FAILURE = '[Failure] Fetch Quests info'\n\nexport const fetchQuestsInfoRequest = () => action(FETCH_QUESTS_INFO_REQUEST)\nexport const fetchQuestsInfoSuccess = (info: QuestInfoResponse) => action(FETCH_QUESTS_INFO_SUCCESS, { info })\nexport const fetchQuestsInfoFailure = (error: string) => action(FETCH_QUESTS_INFO_FAILURE, { error })\n\nexport type FetchQuestsInfoRequestAction = ReturnType<typeof fetchQuestsInfoRequest>\nexport type FetchQuestsInfoSuccessAction = ReturnType<typeof fetchQuestsInfoSuccess>\nexport type FetchQuestsInfoFailureAction = ReturnType<typeof fetchQuestsInfoFailure>\n\nexport const SIGN_QUESTS_FETCH_REQUEST = '[Request] Sign Quest Request'\nexport const SIGN_QUESTS_FETCH_SUCCESS = '[Success] Sign Quest Request'\nexport const SIGN_QUESTS_FETCH_FAILURE = '[Failure] Sign Quest Request'\n\nexport const signQuestsFetchRequest = (signature: string) => action(SIGN_QUESTS_FETCH_REQUEST, { signature })\nexport const signQuestsFetchSuccess = () => action(SIGN_QUESTS_FETCH_SUCCESS)\nexport const signQuestsFetchFailure = (error: string) => action(SIGN_QUESTS_FETCH_FAILURE, { error })\n\nexport type SignQuestsFetchRequestAction = ReturnType<typeof signQuestsFetchRequest>\nexport type SignQuestsFetchSuccessAction = ReturnType<typeof signQuestsFetchSuccess>\nexport type SignQuestsFetchFailureAction = ReturnType<typeof signQuestsFetchFailure>","import { LoadingState, loadingReducer } from \"decentraland-dapps/dist/modules/loading/reducer\"\nimport { QuestInfoResponse } from \"./types\"\nimport { FETCH_QUESTS_INFO_FAILURE, FETCH_QUESTS_INFO_REQUEST, FETCH_QUESTS_INFO_SUCCESS, FetchQuestsInfoFailureAction, FetchQuestsInfoRequestAction, FetchQuestsInfoSuccessAction } from \"./action\"\n\nexport type QuestsState = {\n\tloading: LoadingState,\n\terror: string | null,\n\tinfo: QuestInfoResponse | undefined,\n}\n\n\nexport const INITIAL_STATE: QuestsState = {\n\tinfo: undefined,\n\tloading: [],\n\terror: null,\n}\n\nexport type ApiReducerAction = \n \t| FetchQuestsInfoRequestAction \n\t| FetchQuestsInfoSuccessAction \n\t| FetchQuestsInfoFailureAction\n\nexport const questsReducer = (state = INITIAL_STATE, action: ApiReducerAction): QuestsState => {\n\tswitch (action.type) {\n\t\tcase FETCH_QUESTS_INFO_REQUEST:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloading: loadingReducer(state.loading, action)\n\t\t\t}\n\t\tcase FETCH_QUESTS_INFO_SUCCESS:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloading: loadingReducer(state.loading, action),\n\t\t\t\tinfo: action.payload.info,\n\t\t\t\terror: null\n\t\t\t}\n\t\tcase FETCH_QUESTS_INFO_FAILURE: \n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tloading: loadingReducer(state.loading, action),\n\t\t\t\terror: action.payload.error,\n\t\t\t\tinfo: undefined\n\t\t\t}\n\t\tdefault:\n\t\t\treturn state\n\t}\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'\nimport { translationReducer as translation } from 'decentraland-dapps/dist/modules/translation/reducer'\nimport {\n storageReducer as storage,\n storageReducerWrapper,\n} from 'decentraland-dapps/dist/modules/storage/reducer'\n\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 { aclReducer as acl } from './modules/acl/reducer'\nimport { questsReducer as quests } from './modules/quests/reducer'\nimport { RootState } from './types'\n\nexport const rootReducer = storageReducerWrapper(\n combineReducers<RootState>({\n storage,\n wallet,\n transaction,\n translation,\n signature,\n authorization,\n api,\n acl,\n quests\n })\n)\n","import { createConfig } from '@dcl/ui-env'\nimport dev from './env/dev.json'\nimport prod from './env/prod.json'\n\nexport const config = createConfig({\n dev,\n prod\n})","import { takeEvery, all, call, select, put } from 'redux-saga/effects'\nimport { ChainId } from '@dcl/schemas'\nimport { createWalletSaga } from 'decentraland-dapps/dist/modules/wallet/sagas'\nimport {\n CHANGE_NETWORK,\n CHANGE_ACCOUNT,\n CONNECT_WALLET_SUCCESS,\n} from 'decentraland-dapps/dist/modules/wallet/actions'\nimport { getAddress } from 'decentraland-dapps/dist/modules/wallet/selectors'\nimport { config } from '../../config'\nimport { fetchAuthorizationsRequest } from '../authorization/actions'\n\nexport function* walletSaga() {\n const baseWalletSaga = createWalletSaga({\n CHAIN_ID: config.get('CHAIN_ID', ChainId.ETHEREUM_MAINNET.toString()),\n })\n yield all([baseWalletSaga(), fullWalletSaga()])\n}\n\nfunction* fullWalletSaga() {\n yield takeEvery(CHANGE_NETWORK, handleWallet)\n yield takeEvery(CHANGE_ACCOUNT, handleWallet)\n yield takeEvery(CONNECT_WALLET_SUCCESS, handleConnectWalletSuccess)\n}\n\nfunction* handleWallet() {\n yield call(() => window.location.reload())\n}\n\nfunction* handleConnectWalletSuccess() {\n const address: string = yield select(getAddress)\n yield put(fetchAuthorizationsRequest(address))\n}\n","import { ChainId } from '@dcl/schemas'\nimport { AuthIdentity } from 'dcl-crypto'\nimport { InfoResponse } from './types'\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 const response = await fetch(`/api/deploy`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n })\n if (response.ok) {\n return\n }\n const error = (await response.json()).message as string\n throw new Error(error)\n}\n\nexport async function getFilesRequest(): Promise<void> {\n return (await fetch(`/api/files`)).json()\n}\n\nexport async function getInfoRequest(): Promise<InfoResponse> {\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 { Web3Provider } from '@ethersproject/providers'\nimport { toUtf8Bytes } from '@ethersproject/strings'\nimport { hexlify } from '@ethersproject/bytes'\nimport { getConnectedProvider } from 'decentraland-dapps/dist/lib/eth'\nimport {\n getAddress,\n getChainId,\n} from 'decentraland-dapps/dist/modules/wallet/selectors'\nimport { Provider } from 'decentraland-connect/dist'\nimport { AuthIdentity } from 'dcl-crypto'\nimport { createIdentity } from '@dcl/builder-client'\nimport { ChainId } from '@dcl/schemas'\nimport { closeServer, postDeploy } from '../server/utils'\nimport { deploySuccess, fetchCatalystRequest } from '../server/actions'\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 SignWorldACLRequestAction,\n SignWorldACLSuccessAction,\n SIGN_WORLD_ACL_REQUEST,\n SIGN_WORLD_ACL_SUCCESS,\n signWorldACLSuccess,\n signWorldACLFailure,\n CreateIdentityRequestAction,\n SIGN_QUESTS_REQUEST,\n SIGN_QUESTS_SUCCESS,\n SignQuestsRequestAction,\n signQuestsSuccess,\n signQuestsFailure,\n SignQuestsSuccessAction,\n} from './actions'\nimport { updateWorldACLRequest } from '../acl/actions'\nimport { signQuestsFetchRequest } from '../quests/action'\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 yield takeLatest(SIGN_WORLD_ACL_REQUEST, handleSignWorldACLRequest)\n yield takeEvery(SIGN_WORLD_ACL_SUCCESS, handleSignWorldACLSuccess)\n\n yield takeLatest(SIGN_QUESTS_REQUEST, handleQuestsSignRequest)\n yield takeEvery(SIGN_QUESTS_SUCCESS, handleQuestsSignSuccess)\n}\n\nfunction* sign(action: SignContentRequestAction | SignWorldACLRequestAction | SignQuestsRequestAction) {\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 return signedMessage\n}\n\nfunction* handleSignContentRequest(action: SignContentRequestAction) {\n try {\n const signedMessage: string = yield call(sign, action)\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 yield put(deploySuccess())\n } catch (error) {\n yield put(signContentFailure((error as Error).message))\n }\n}\n\nfunction* handleCreateIdentityRequest(_action: CreateIdentityRequestAction) {\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(createIdentityFailure((error as Error).message))\n }\n}\n\nfunction* handleSignWorldACLRequest(action: SignWorldACLRequestAction) {\n try {\n const signedMessage: string = yield call(sign, action)\n yield put(signWorldACLSuccess(signedMessage))\n } catch (error) {\n yield put(signWorldACLFailure((error as Error).message))\n }\n}\n\nfunction* handleSignWorldACLSuccess(action: SignWorldACLSuccessAction) {\n const { signature } = action.payload\n yield put(updateWorldACLRequest(signature))\n}\n\nfunction* handleQuestsSignRequest(action: SignQuestsRequestAction) {\n try {\n const signedMessage: string = yield call(sign, action)\n yield put(signQuestsSuccess(signedMessage))\n } catch (error) {\n yield put(signQuestsFailure((error as Error).message))\n }\n}\n\nfunction* handleQuestsSignSuccess(action: SignQuestsSuccessAction) {\n const { signature } = action.payload\n yield put(signQuestsFetchRequest(signature))\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 { Contract } from '@ethersproject/contracts'\nimport { Web3Provider } from '@ethersproject/providers'\nimport { ChainId } from '@dcl/schemas'\nimport { getConnectedProvider } from 'decentraland-dapps/dist/lib/eth'\n\nimport * as EstateRegistry from './abis/EstateRegistry.json'\nimport * as LANDRegistry from './abis/LANDRegistry.json'\n\nexport enum ContractName {\n LANDRegistry = 'land',\n EstateRegistry = 'estate'\n}\n\nconst contractsByChainId: Record<ContractName, Partial<Record<ChainId, { abi: any[], address: string }>>> = {\n [ContractName.LANDRegistry]: {\n [ChainId.ETHEREUM_MAINNET]: {\n address: '0xf87e31492faf9a91b02ee0deaad50d51d56d5d4d',\n abi: LANDRegistry.abi\n },\n [ChainId.ETHEREUM_SEPOLIA]: {\n address: '0x42f4ba48791e2de32f5fbf553441c2672864bb33',\n abi: LANDRegistry.abi\n },\n },\n [ContractName.EstateRegistry]: {\n [ChainId.ETHEREUM_MAINNET]: {\n address: '0x959e104e1a4db6317fa58f8295f586e1a978c297',\n abi: EstateRegistry.abi\n },\n [ChainId.ETHEREUM_SEPOLIA]: {\n address: '0x369a7fbe718c870c79f99fb423882e8dd8b20486',\n abi: EstateRegistry.abi\n }\n }\n}\n\nexport async function getProvider() {\n const provider = await getConnectedProvider()\n if (!provider) {\n throw new Error('no provider')\n }\n return new Web3Provider(provider)\n}\n\nexport function getContract(name: ContractName, chainId: ChainId) {\n const contract = contractsByChainId[name][chainId]\n if (!contract) {\n throw new Error(`Contract \"${name}\" not found for chain id \"${chainId}\"`)\n }\n return contract\n}\n\nexport async function getContractByName(name: ContractName) {\n const provider = await getProvider()\n const { chainId } = await provider.getNetwork()\n return getContract(name, chainId)\n}\n\nexport async function getLandContract(landRegistry?: string) {\n const { address, abi } = await getContractByName(ContractName.LANDRegistry)\n const provider = await getProvider()\n const contract = new Contract(landRegistry || address, abi, provider)\n return contract\n}\n\nexport async function getEstateContract(estateRegistry?: string) {\n const { address, abi } = await getContractByName(ContractName.EstateRegistry)\n return new Contract(estateRegistry || address, abi, await getProvider())\n}\n","import { getEstateContract, getLandContract } from \"../../contracts\"\nimport { BigNumber } from \"ethers\"\n\nexport async function isAuthorized(x: number, y: number, address: string, landRegistry?: string, estateRegistry?: string) {\n // Do not delete me\n await unlockRegeneratorRuntime()\n\n const land = await getLandContract(landRegistry)\n const landTokenId: BigNumber = await land.encodeTokenId(x, y)\n const isUpdateAuthorized = await land.isUpdateAuthorized(address, landTokenId)\n \n if (!isUpdateAuthorized) {\n // check if estate is authorized\n const estate = await getEstateContract(estateRegistry)\n const estateTokenId = await estate.getLandEstateId(landTokenId)\n if (estateTokenId && estateTokenId > 0) {\n const isUpdateAuthorized = await estate.isUpdateAuthorized(address, estateTokenId)\n return { x, y, isUpdateAuthorized }\n } \n }\n return { x, y, isUpdateAuthorized }\n}\n\nasync function unlockRegeneratorRuntime() {\n // For some reason, without these awaits, the ones below never resolve. They don't throw either, they just get stuck...\n \n // BEGIN DRAGONS 🐉\n const m = async (n: number) => n\n await m(1)\n await m(2)\n await m(3)\n await m(4)\n // END DRAGONS 🐉\n}","import { call, put, takeEvery, select, take } from 'redux-saga/effects'\nimport { getAddress } from 'decentraland-dapps/dist/modules/wallet/selectors'\nimport {\n FETCH_AUTHORIZATIONS_REQUEST,\n fetchAuthorizationsFailure,\n fetchAuthorizationsSuccess,\n} from './actions'\nimport { Authorization } from './types'\nimport { Info } from '../server/reducer'\nimport { FETCH_INFO_SUCCESS } from '../server/actions'\nimport { getInfo } from '../server/selectors'\nimport { isAuthorized } from './utils'\n\nexport function* authorizationSaga() {\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 qs = new URLSearchParams(document.location.search)\n\n const skipValidations = qs.get('skipValidations')\n if (skipValidations === 'true') {\n try {\n const { parcels } = info\n yield put(\n fetchAuthorizationsSuccess(\n parcels.map(({ x, y }) => ({\n x,\n y,\n isUpdateAuthorized: true,\n }))\n )\n )\n } catch (error) {\n yield put(fetchAuthorizationsFailure((error as Error).message))\n }\n } else {\n const { parcels, landRegistry, estateRegistry } = info\n\n try {\n const address: string = yield select(getAddress)\n const promises: Promise<Authorization>[] = parcels.map((parcel) =>\n isAuthorized(parcel.x, parcel.y, address, landRegistry, estateRegistry)\n )\n const authorizations: Authorization[] = yield call(() =>\n Promise.all(promises)\n )\n yield put(fetchAuthorizationsSuccess(authorizations))\n } catch (error) {\n yield put(fetchAuthorizationsFailure((error as Error).message))\n }\n }\n}\n","import { takeEvery, call, put } from 'redux-saga/effects'\n\nimport {\n fetchCatalystFailure,\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 } from './reducer'\nimport { InfoResponse } from './types'\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: InfoResponse = 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(fetchCatalystFailure((e as any).message))\n }\n}\n","import { createTranslationSaga } from 'decentraland-dapps/dist/modules/translation/sagas'\nimport * as translations from './locales'\n\nexport const translationSaga = createTranslationSaga({\n translations\n})\n","import { call, takeEvery } from 'redux-saga/effects'\nimport {\n SignContentSuccessAction,\n SIGN_CONTENT_SUCCESS,\n} from '../signature/actions'\nimport { WindowWithNps } from './types'\n\nexport function* npsSaga() {\n yield takeEvery(SIGN_CONTENT_SUCCESS, handleSignContentSuccess)\n}\n\nfunction* handleSignContentSuccess(_action: SignContentSuccessAction) {\n const windowWithNps = window as unknown as WindowWithNps\n if ('delightedNps4' in window) {\n yield call(windowWithNps.delightedNps4.survey)\n }\n}\n","import { ACLResponse } from './reducer'\nimport { InfoResponse, UpdatePayload } from './types'\n\nexport async function getInfoRequest(): Promise<InfoResponse> {\n return (await fetch('/api/acl')).json()\n}\n\nexport async function getWorldACL(\n targetContent: string,\n worldName: string\n): Promise<ACLResponse> {\n return (await fetch(`${targetContent}/acl/${worldName}`)).json()\n}\n\nexport async function updateWorldACL(payload: UpdatePayload): Promise<void> {\n await fetch(`/api/acl`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n })\n}\n","import { getAddress } from 'decentraland-dapps/dist/modules/wallet/selectors'\nimport { takeEvery, call, put, select } from 'redux-saga/effects'\n\nimport {\n fetchWorldACLSuccess,\n fetchInfoFailure,\n fetchInfoSuccess,\n FETCH_WORLD_ACL_REQUEST,\n FETCH_INFO_REQUEST,\n FetchWorldACLRequestAction,\n fetchWorldACLFailure,\n UpdateWorldACLRequestAction,\n UPDATE_WORLD_ACL_REQUEST,\n updateWorldACLFailure,\n updateWorldACLSuccess,\n} from './actions'\nimport { ACLResponse } from './reducer'\nimport { InfoResponse } from './types'\nimport { getWorldACL, getInfoRequest, updateWorldACL } from './utils'\n\nexport function* aclSaga() {\n yield takeEvery(FETCH_INFO_REQUEST, handleFetchInfoRequest)\n yield takeEvery(FETCH_WORLD_ACL_REQUEST, handleFetchWorldACLRequest)\n yield takeEvery(UPDATE_WORLD_ACL_REQUEST, handleUpdateWorldACLRequest)\n}\n\nfunction* handleFetchInfoRequest() {\n try {\n const info: InfoResponse = yield call(getInfoRequest)\n yield put(fetchInfoSuccess(info))\n } catch (e) {\n yield put(fetchInfoFailure((e as any).message))\n }\n}\n\nfunction* handleFetchWorldACLRequest(action: FetchWorldACLRequestAction) {\n const { targetContent, worldName } = action.payload\n try {\n const acl: ACLResponse = yield call(getWorldACL, targetContent, worldName)\n yield put(fetchWorldACLSuccess(acl))\n } catch (e) {\n yield put(fetchWorldACLFailure((e as any).message))\n }\n}\n\nfunction* handleUpdateWorldACLRequest(action: UpdateWorldACLRequestAction) {\n const { signature } = action.payload\n\n const address: string = yield select(getAddress)\n\n try {\n yield call(updateWorldACL, { signature, address })\n yield put(updateWorldACLSuccess())\n } catch (e) {\n yield put(updateWorldACLFailure((e as any).message))\n }\n}\n","import { QuestInfoResponse } from \"./types\";\n\n\nexport async function getQuestsInfoRequest(): Promise<QuestInfoResponse> {\n\treturn (await fetch(`http://localhost:3003/api/info`)).json()\n}\n\nexport async function sendSignedFetch(payload: { address: string, signature: string }): Promise<void> {\n\tawait fetch(`http://localhost:3003/api/quests`, {\n\t\tmethod: 'post',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json'\n\t\t},\n\t\tbody: JSON.stringify(payload)\n\t})\n}","import { takeEvery, call, put, select } from \"redux-saga/effects\";\nimport { SIGN_QUESTS_FETCH_REQUEST, SignQuestsFetchRequestAction, signQuestsFetchFailure, signQuestsFetchSuccess, fetchQuestsInfoFailure, fetchQuestsInfoSuccess, FETCH_QUESTS_INFO_REQUEST } from \"./action\";\nimport { sendSignedFetch, getQuestsInfoRequest } from \"./utils\";\nimport { QuestInfoResponse } from \"./types\";\nimport { getAddress } from \"decentraland-dapps/dist/modules/wallet/selectors\";\n\nexport function* questsSaga() {\n\tyield takeEvery(FETCH_QUESTS_INFO_REQUEST, handleFetchQuestsInfoRequest)\n\tyield takeEvery(SIGN_QUESTS_FETCH_REQUEST, handleCreateQuest)\n}\n\nfunction* handleFetchQuestsInfoRequest() {\n\ttry {\n\t\tconst questsInfo: QuestInfoResponse = yield call(getQuestsInfoRequest)\n\t\tyield put(fetchQuestsInfoSuccess(questsInfo))\n\t} catch (e) {\n\t\tyield put(fetchQuestsInfoFailure((e as any).message))\n\t}\n}\n\nfunction* handleCreateQuest(action: SignQuestsFetchRequestAction) {\n\tconst { signature } = action.payload\n\n\ttry {\n\t\tconst address: string = yield select(getAddress)\n\t\tyield call(sendSignedFetch, { address, signature })\n\t\tyield put(signQuestsFetchSuccess())\n\t} catch (error) {\n\t\tyield put(signQuestsFetchFailure((error as any).message))\n\t}\n}","import { createSelector } from 'reselect'\nimport { RootState } from '../../types'\n\nexport const getState = (state: RootState) => state.signature\nexport const getData = createSelector(getState, state => state.data)\nexport const isLoading = createSelector(getState, state => state.loading.length > 0)\nexport const getError = createSelector(getState, state => state.error)\n","import React from 'react'\n\nexport default React.memo(({ children }: { children: string }) => (\n <p style={{ color: 'var(--primary)' }}> Error: {children}</p>\n))\n","import { Props } from './types'\nimport { Blockie, Address, Button } from 'decentraland-ui'\nimport { coordsToString } from '../../modules/land/utils'\nimport Error from '../Error'\n\nexport default function RenderWalletData({\n isConnected,\n isConnecting,\n wallet,\n authorizations,\n isUpdateAuthorized,\n onConnectWallet\n}: Props) {\n function getFormattedUnauthorized() {\n return (authorizations || [])\n .filter(a => !a.isUpdateAuthorized)\n .map(a => `\"${coordsToString(a)}\"`)\n .join(', ')\n }\n\n if (isConnected && wallet.address) {\n return (\n <>\n <p>\n Using address: \n <Blockie scale={3} seed={wallet.address}>\n <Address tooltip strong value={wallet.address} />\n </Blockie>\n </p>\n {authorizations?.length && !isUpdateAuthorized ? (\n <Error>\n {`You don't have permissions to update The following LANDs that are part of the scene: ${getFormattedUnauthorized()}`}\n </Error>\n ) : null}\n </>\n )\n }\n\n return (\n <>\n {isConnecting ? null : <p>Could not find any wallet</p>}\n <p>\n <Button primary onClick={onConnectWallet} loading={isConnecting} disabled={isConnecting}>\n Reconnect \n </Button>\n </p>\n </>\n )\n}\n","import { Coords } from './types'\n\nexport function coordsToString({ x, y }: Coords): string {\n return `${x},${y}`\n}\n","import { AnyAction, Dispatch } from 'redux'\nimport { connect } from 'react-redux'\nimport { enableWalletRequest } from 'decentraland-dapps/dist/modules/wallet/actions'\nimport { getData as getWallet, isConnected, isConnecting } from 'decentraland-dapps/dist/modules/wallet/selectors'\n\nimport { getData as getSignature, isLoading as isSigningTx } from '../../modules/signature/selectors'\n\nimport { createIdentityRequest } from '../../modules/signature/actions'\nimport { RootState } from '../../types'\nimport { MapStateProps, MapDispatchProps } from './types'\n\nimport IdentityPage from './IdentityPage'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n wallet: getWallet(state)!,\n isConnected: isConnected(state),\n isConnecting: isConnecting(state),\n signed: !!getSignature(state),\n isSigning: isSigningTx(state)\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: providerType => dispatch(enableWalletRequest(providerType)),\n onRequestIdentity: () => dispatch(createIdentityRequest())\n})\n\nexport default connect(mapState, mapDispatch)(IdentityPage)\n","import IdentityPage from './IdentityPage.container'\nexport default IdentityPage\n","import { BaseSyntheticEvent, useEffect, useState } from 'react'\nimport { ChainId } from '@dcl/schemas'\nimport { Header, Button, Navbar } from 'decentraland-ui'\nimport LoginModal from 'decentraland-dapps/dist/containers/LoginModal'\nimport RenderWalletData from '../RenderWalletData/RenderWalletData'\nimport { Props } from './types'\nimport './style.css'\n\nexport default function IdentityPage(props: Props) {\n const { isConnected, wallet, isConnecting, onConnectWallet, isSigning, onRequestIdentity } = props\n\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n const handleSignature = (e: BaseSyntheticEvent) => {\n e.preventDefault()\n onRequestIdentity()\n }\n\n // Close modal once the wallet is connected\n useEffect(() => {\n if (isConnected && isModalOpen) {\n setIsModalOpen(false)\n }\n }, [isConnected, isModalOpen])\n\n return (\n <div className=\"LinkScenePage\">\n {wallet.chainId === ChainId.ETHEREUM_SEPOLIA && <div className=\"warning\">Using Sepolia 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={() => setIsModalOpen(true)}\n />\n <form>\n <div>\n <Button primary onClick={handleSignature} disabled={!isConnected} loading={isSigning}>\n Sign ephemeral wallet\n </Button>\n </div>\n </form>\n {isModalOpen ? <LoginModal\n name='IdentityPageLoginModal'\n onClose={() => setIsModalOpen(false)}\n onConnect={onConnectWallet}\n isLoading={isConnecting}\n /> : null}\n </div>\n )\n}\n","import { createSelector } from 'reselect'\n\nimport { RootState } from '../../types'\nimport { Authorization } from './types'\n\nexport const getState = (state: RootState) => state.authorization\n\nexport const getData = createSelector(getState, state => state.data)\n\nexport const isLoading = createSelector(getState, state => state.loading.length > 0)\n\nexport const getError = createSelector(getState, state => state.error)\n\nexport const isUpdateAuthorized = createSelector(getData, authorizations => {\n if (!authorizations?.length) {\n return\n }\n\n return authorizations.every((a: Authorization) => a.isUpdateAuthorized)\n})\n","import './style.css'\nimport { Container, Dropdown, Table } from 'decentraland-ui'\nimport { Props } from './types'\nimport { useMemo, useState } from 'react'\nimport { FileSize } from '../../modules/server/reducer'\n\nenum Filter {\n Size = 'Size',\n Name = 'Name'\n}\n\nexport default function FilesPage({ files }: Props) {\n const [filter, setFilter] = useState<Filter>(Filter.Size)\n const value = useMemo<FileSize[]>(\n () =>\n files.sort((a, b) => {\n if (filter === Filter.Size) {\n return b.size < a.size ? -1 : 1\n }\n return a.name < b.name ? -1 : 1\n }),\n [files, filter]\n )\n\n return (\n <Container>\n <Table basic=\"very\">\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>File Name</Table.HeaderCell>\n <Table.HeaderCell>Size</Table.HeaderCell>\n <Table.HeaderCell>\n <Dropdown text={filter} direction=\"right\">\n <Dropdown.Menu>\n {Object.values(Filter).map(f => (\n <Dropdown.Item key={f} onClick={() => setFilter(f)} text={f} />\n ))}\n </Dropdown.Menu>\n </Dropdown>\n </Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {value.map(({ name, size }, index) => (\n <Table.Row key={index}>\n <Table.Cell>{name}</Table.Cell>\n <Table.Cell>{(Number(size) * 1e-6).toFixed(2)} MB </Table.Cell>\n <Table.Cell />\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </Container>\n )\n}\n","import { connect } from 'react-redux'\nimport { RootState } from '../../types'\nimport { MapStateProps } from './types'\n\nimport FilesPage from './Files'\nimport { getFiles } from '../../modules/server/selectors'\n\nconst mapState = (state: RootState): MapStateProps => {\n return { files: getFiles(state) }\n}\n\nexport default connect(mapState)(FilesPage)\n","import Files from './Files.container'\nexport default Files\n","import './style.css'\nimport { Atlas, Container, Coord, Layer, Section, Table } from 'decentraland-ui'\nimport { Props } from './types'\n\nexport default function LinkScenePage({ authorizations, parcels, baseParcel }: Props) {\n const find = <T extends Coord>(coords: T[]) => (x: number, y: number): T | undefined =>\n coords.find(s => s.x === x && s.y === y)\n\n const selectedFillLayer: Layer = (x: number, y: number) => {\n return find(parcels)(x, y) ? { color: '#ff99', scale: 1.2 } : null\n }\n\n const selectedStroke: Layer = (x: number, y: number) => {\n return find(parcels)(x, y) ? { color: '#ff0044', scale: 1.4 } : null\n }\n\n return (\n <Container>\n {!!parcels.length && (\n <Section size=\"large\" className=\"map-table\">\n <Table basic=\"very\">\n <Table.Header>\n <Table.Row>\n <Table.HeaderCell>Name</Table.HeaderCell>\n <Table.HeaderCell>Coordinates</Table.HeaderCell>\n <Table.HeaderCell>Permissions</Table.HeaderCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {parcels.map((coords, index) => {\n const isAuthorized = !!find(authorizations || [])(coords.x, coords.y)?.isUpdateAuthorized\n return (\n <Table.Row key={index}>\n <Table.Cell>Parcel {index}</Table.Cell>\n <Table.Cell>\n {coords.x}, {coords.y}\n </Table.Cell>\n <Table.Cell className={!isAuthorized ? 'permission-not-granted' : ''}>\n {authorizations.length ? (isAuthorized ? 'Granted' : 'Not granted') : ''}\n </Table.Cell>\n </Table.Row>\n )\n })}\n </Table.Body>\n </Table>\n </Section>\n )}\n <Container>\n <Section size=\"large\" className=\"map-canvas\">\n <Atlas\n height={300}\n x={baseParcel.x}\n y={baseParcel.y}\n isDraggable={false}\n layers={[selectedStroke, selectedFillLayer]}\n />\n </Section>\n </Container>\n </Container>\n )\n}\n","import { AnyAction, Dispatch } from 'redux'\nimport { connect } from 'react-redux'\nimport { RootState } from '../../types'\nimport { MapStateProps, MapDispatchProps } from './types'\n\nimport DeploySuccess from './DeploySuccess'\nimport { fetchCatalystRequest } from '../../modules/server/actions'\nimport { getInfo } from '../../modules/server/selectors'\n\nconst mapState = (state: RootState): MapStateProps => {\n return {\n status: state.api.catalyst?.status,\n catalysts: state.api.catalyst?.catalysts || [],\n info: getInfo(state),\n deploySuccess: state.api.deploySuccess,\n apiError: state.api.error\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 { Badge, Color, Container, HeaderMenu, Table } from 'decentraland-ui'\nimport { Props } from './types'\nimport { useEffect } from 'react'\n\nimport './style.css'\n\nexport default function DeploySuccess({ onFetchCatalyst, catalysts = [], status, info, deploySuccess, apiError }: Props) {\n const entityIds = new Set(catalysts.map(c => c.entityId))\n const deployedToAll = (entityIds.size === 1) || (deploySuccess && info?.isWorld)\n\n useEffect(() => {\n if (deployedToAll || info?.isWorld || apiError) return\n const interval = setInterval(() => {\n onFetchCatalyst()\n }, 5_000)\n return () => clearInterval(interval)\n }, [onFetchCatalyst, deployedToAll, info, apiError])\n\n return (\n <Container>\n <HeaderMenu>\n <Badge color={deploySuccess ? '#20913e' : Color.SUNISH}>\n {deploySuccess ? 'Deployed successfully' : 'Deploying...'}\n </Badge>\n </HeaderMenu>\n { !info?.isWorld && <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 }\n </Container>\n )\n}\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 LoginModal from 'decentraland-dapps/dist/containers/LoginModal'\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 [isModalOpen, setIsModalOpen] = useState(false)\n const {\n isConnected,\n wallet,\n authorizations,\n isUpdateAuthorized,\n isConnecting,\n onConnectWallet,\n onSignContent,\n onFetchFiles,\n onFetchInfo,\n isSigning,\n isAuthorizationLoading,\n signed,\n info,\n deployError,\n } = props\n\n const { x, y } = info?.baseParcel || { x: 0, y: 0 }\n const isTestNet = wallet?.chainId !== ChainId.ETHEREUM_MAINNET\n const networkName = isTestNet && `&NETWORK=sepolia`\n const networkDomain = isTestNet ? 'zone' : 'org'\n const deployUrl = `https://play.decentraland.${networkDomain}/?position=${x},${y}${networkName}`\n\n useEffect(() => {\n onFetchInfo()\n onFetchFiles()\n }, [onFetchFiles, onFetchInfo])\n\n // Close modal once the wallet is connected\n useEffect(() => {\n if (isConnected && isModalOpen) {\n setIsModalOpen(false)\n }\n }, [isConnected, isModalOpen])\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 {isTestNet ? 'Sepolia' : '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={isConnected && !isUpdateAuthorized}\n onClick={\n isConnected\n ? () => onSignContent(info!.rootCID)\n : () => setIsModalOpen(true)\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 {info?.isPortableExperience && info?.isWorld && (\n <Toast\n type={ToastType.WARN}\n title=\"Scene override\"\n body=\"Deploying a Portable Experience might override your current Scene\"\n />\n )}\n {deployError && (\n <div className='toast-full-with'>\n <Toast\n type={ToastType.ERROR}\n title=\"Failed to deploy scene\"\n body={deployError ?? 'Look at the terminal for more info'}\n />\n </div>\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 && !deployError && <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 {isModalOpen ? <LoginModal\n name='LinkerPageLoginModal'\n open={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n onConnect={onConnectWallet}\n isLoading={isConnecting}\n /> : null}\n </Page>\n <Footer />\n </div>\n )\n}\n","import { AnyAction, Dispatch } from 'redux'\nimport { connect } from 'react-redux'\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'\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 wallet: getWallet(state)!,\n isConnected: isConnected(state),\n isConnecting: isConnecting(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 deployError: state.signature.error\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: (providerType) =>\n dispatch(enableWalletRequest(providerType)),\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 // TODO: I think we are not using this.\n if (qs.has('wearableId')) {\n return <IdentityPage {...props} />\n }\n\n return <LinkerPage {...props} />\n}\n\nexport default Root\n","import { fetchWorldACLRequest } from '../../../modules/acl/actions'\nimport { InfoResponse } from '../../../modules/acl/types'\n\nexport enum ACLStatus {\n UPDATING = 'updating',\n UPDATED = 'updated',\n}\n\nexport type Props = {\n aclStatus: ACLStatus\n info: InfoResponse\n onFetchWorldACL: typeof fetchWorldACLRequest\n}\n\nexport type MapStateProps = Pick<Props, 'aclStatus'>\nexport type MapDispatchProps = Pick<Props, 'onFetchWorldACL'>\n\nexport type OwnProps = Pick<Props, 'info'>\n","import { ACLStatus } from '../../components/WorldACLPage/ACLStatus/types'\nimport { RootState } from '../../types'\n\nexport const getState = (state: RootState) => state.acl\n\nexport const getInfo = (state: RootState) => getState(state).info\nexport const getACL = (state: RootState) => getState(state).acl\nexport const getError = (state: RootState) => getState(state).error\n\nexport const isLoading = (state: RootState) => !!getState(state).loading.length\n\nexport const getACLStatus = (state: RootState) => {\n const info = getInfo(state)\n const acl = getACL(state)\n\n return info &&\n acl &&\n info.worldName === acl.resource &&\n info.allowed.every((address) => acl.allowed.includes(address))\n ? ACLStatus.UPDATED\n : ACLStatus.UPDATING\n}\n","import * as React from 'react'\nimport { Icon } from 'decentraland-ui'\nimport classNames from 'classnames'\n\nimport { Props } from './Chip.types'\n\nimport './styles.css'\n\nconst Chip = (props: Props) => {\n const { type, text, icon, className, isActive, isDisabled, onClick } = props\n\n if (!text && !icon) {\n throw new Error('You need to provide at least one prop: text or icon')\n }\n\n const handleKeyDown = (evt: React.KeyboardEvent<HTMLDivElement>) => {\n if (evt.key === 'Enter' && onClick) {\n onClick(evt)\n }\n }\n\n const containerClass = classNames('Chip', type, className, {\n active: isActive,\n disabled: isDisabled,\n clickeable: onClick && !isDisabled,\n })\n\n return (\n <div\n className={containerClass}\n tabIndex={0}\n onClick={isActive || isDisabled ? undefined : onClick}\n onKeyDown={handleKeyDown}\n >\n {text ? (\n <span className=\"text\">{text}</span>\n ) : icon ? (\n <Icon name={icon} />\n ) : null}\n </div>\n )\n}\n\nChip.defaultProps = {\n text: '',\n icon: '',\n type: 'square',\n isDisabled: false,\n isActive: false,\n}\n\nexport default React.memo(Chip)\n","import { AnyAction, Dispatch } from 'redux'\nimport { connect } from 'react-redux'\nimport { RootState } from '../../../types'\nimport { fetchWorldACLRequest } from '../../../modules/acl/actions'\nimport { getACLStatus } from '../../../modules/acl/selectors'\nimport { MapStateProps, MapDispatchProps } from './types'\nimport ACLStatus from './ACLStatus'\n\nconst mapState = (state: RootState): MapStateProps => ({\n aclStatus: getACLStatus(state),\n})\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => {\n return {\n onFetchWorldACL: (targetContent: string, worldName: string) =>\n dispatch(fetchWorldACLRequest(targetContent, worldName)),\n }\n}\n\nexport default connect(mapState, mapDispatch)(ACLStatus)\n","import ACLStatus from './ACLStatus.container'\nexport default ACLStatus\n","import { useEffect } from 'react'\nimport { Badge, Color, Container, HeaderMenu } from 'decentraland-ui'\nimport { ACLStatus as Status, Props } from './types'\n\nimport './style.css'\n\nexport default function ACLStatus({ aclStatus, info, onFetchWorldACL }: Props) {\n const aclUpdated = aclStatus === Status.UPDATED\n\n useEffect(() => {\n if (aclUpdated || !info) return\n const interval = setInterval(() => {\n onFetchWorldACL(info.targetContent, info.worldName)\n }, 5_000)\n return () => clearInterval(interval)\n }, [aclUpdated, info, onFetchWorldACL])\n\n return (\n <Container>\n <HeaderMenu>\n <Badge color={aclUpdated ? '#20913e' : Color.SUNISH}>\n {aclUpdated\n ? `World ACL updated successfully to ${info?.targetContent}`\n : 'Updating ACL..'}\n </Badge>\n </HeaderMenu>\n </Container>\n )\n}\n","import React, { useEffect, useMemo, useState } from 'react'\nimport { getChainName } from '@dcl/schemas'\nimport {\n Navbar,\n Footer,\n Page,\n Header,\n Button,\n Container,\n HeaderMenu,\n Color,\n Badge,\n Address,\n Blockie,\n Loader,\n} from 'decentraland-ui'\nimport LoginModal from 'decentraland-dapps/dist/containers/LoginModal'\nimport { Chip } from '../Chip'\nimport { Props } from './types'\nimport ACLStatus from './ACLStatus'\nimport './style.css'\n\nfunction Allowed(props: {\n className: string\n description: string\n addresses: string[]\n}) {\n const { className, description, addresses } = props\n return (\n <div className={className}>\n <span className=\"description\">{description}</span>\n <div className=\"addresses\">\n {addresses.map((address) => (\n <Chip text={address} type=\"square\" />\n ))}\n </div>\n </div>\n )\n}\n\nexport default function WorldACLPage(props: Props) {\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [isPayloadExpired, setIsPayloadExpired] = useState(false)\n\n const {\n isConnected,\n wallet,\n isConnecting,\n isSigning,\n signed,\n info,\n onConnectWallet,\n onSignContent,\n onFetchInfo,\n } = props\n\n const allowedDifference = useMemo(() => {\n if (!info) return []\n\n const { allowed, oldAllowed } = info\n\n return allowed.length > oldAllowed.length\n ? allowed.filter((address) => !oldAllowed.includes(address))\n : oldAllowed.filter((address) => !allowed.includes(address))\n }, [info])\n\n useEffect(() => {\n onFetchInfo()\n }, [onFetchInfo])\n\n // Close modal once the wallet is connected\n useEffect(() => {\n if (isConnected && isModalOpen) {\n setIsModalOpen(false)\n }\n }, [isConnected, isModalOpen])\n\n useEffect(() => {\n if (!info) return\n\n const interval = setInterval(() => {\n setIsPayloadExpired(true)\n }, info.expiration * 1000)\n\n return () => {\n clearTimeout(interval)\n }\n }, [info])\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 Updating {info?.worldName || 'Untitled World'} ACL\n </Header>\n </Container>\n </HeaderMenu.Left>\n </HeaderMenu>\n <HeaderMenu>\n <HeaderMenu.Left>\n {!isConnected && (\n <Button\n primary\n size=\"medium\"\n loading={isConnecting}\n onClick={() => setIsModalOpen(true)}\n >\n Connect Wallet\n </Button>\n )}\n {!!isConnected && wallet?.chainId && (\n <div className=\"address-header\">\n <Badge color={Color.SHADOWS}>\n {getChainName(wallet.chainId)}\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 </HeaderMenu>\n </Container>\n {!info && <Loader />}\n {info && signed && <ACLStatus info={info} />}\n {isConnected && !signed && info && !info.allowed?.length && (\n <p>\n After this change, only you will be able to deploy scenes into the\n world.\n </p>\n )}\n {isConnected &&\n wallet.address &&\n !signed &&\n info &&\n info.allowed.length > 0 && (\n <>\n <p>\n You are about to{' '}\n <span>\n <strong>\n {info.allowed.length > info.oldAllowed.length\n ? 'grant'\n : 'revoke'}\n </strong>\n </span>{' '}\n the permissions to deploy to your world to the following{' '}\n {allowedDifference.length > 1 ? 'addresses' : ' address'}:{' '}\n <ul className=\"changes\">\n {allowedDifference.map((address) => (\n <li>\n <Chip text={address} type=\"square\" />\n </li>\n ))}\n </ul>\n </p>\n <div className=\"allowed\">\n <h3>Access control list</h3>\n <Allowed\n className=\"owner\"\n description=\"Owner\"\n addresses={[wallet.address]}\n />\n <Allowed\n className=\"deployers\"\n description=\"Deployers\"\n addresses={info.allowed}\n />\n </div>\n </>\n )}\n {isConnected && !signed && info && (\n <Container className=\"sign-submit-container\">\n <div>\n <Button\n primary\n size=\"medium\"\n loading={isSigning}\n disabled={isPayloadExpired}\n onClick={() => onSignContent(info!.payload)}\n >\n Sign & Submit\n </Button>\n {isPayloadExpired ? (\n <p className=\"expired-message\">The payload has expired</p>\n ) : null}\n </div>\n </Container>\n )}\n {isModalOpen ? <LoginModal\n name='WorldACLPageLoginModal'\n onClose={() => setIsModalOpen(false)}\n onConnect={onConnectWallet}\n isLoading={isConnecting}\n /> : null}\n </Page>\n <Footer />\n </div>\n )\n}\n","import { AnyAction, Dispatch } from 'redux'\nimport { connect } from 'react-redux'\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'\nimport {\n getData as getSignature,\n isLoading as isSigningTx,\n} from '../../modules/signature/selectors'\nimport { signWorldACLRequest } from '../../modules/signature/actions'\nimport { RootState } from '../../types'\nimport { fetchInfoRequest } from '../../modules/acl/actions'\nimport { getInfo } from '../../modules/acl/selectors'\nimport WorldACLPage from './WorldACLPage'\nimport { MapStateProps, MapDispatchProps } from './types'\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 info: getInfo(state),\n }\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n onConnectWallet: (providerType) =>\n dispatch(enableWalletRequest(providerType)),\n onSignContent: (payload: string) => dispatch(signWorldACLRequest(payload)),\n onFetchInfo: () => dispatch(fetchInfoRequest()),\n})\n\nexport default connect(mapState, mapDispatch)(WorldACLPage)\n","import WorldACLPage from './WorldACLPage.container'\nexport default WorldACLPage\n","import { Address, Badge, Blockie, Button, Color, Container, Header, HeaderMenu, Loader, Navbar, Page } from \"decentraland-ui\";\nimport LoginModal from \"decentraland-dapps/dist/containers/LoginModal\";\nimport { Props } from './types'\nimport { useEffect, useState } from \"react\";\nimport { getChainName } from \"@dcl/schemas\";\nimport { QuestInfoResponse } from \"../../modules/quests/types\";\n\nexport default function QuestsPage({ wallet, isConnected, isConnecting, info, signed, isSigning, onConnectWallet, onFetchInfo, onSign }: Props) {\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n useEffect(() => {\n onFetchInfo()\n }, [onFetchInfo])\n\n useEffect(() => {\n if (isConnected && isModalOpen) {\n setIsModalOpen(false)\n }\n }, [isConnected, isModalOpen])\n\n useEffect(() => {\n if (!info) return\n }, [info])\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 {\n info?.actionType === \"create\" ? \n `Create ${info?.extraData?.questName} Quest` : \n info?.actionType === \"list\" ? \n \"List your Quests\" : \n info?.actionType === \"activate\" ? \n `Activate Quest ${info?.extraData?.questId}` : \n info?.actionType === \"deactivate\" ? \n `Deactivate Quest ${info?.extraData?.questId}}`\n : \"Unknown\"\n }\n </Header>\n </Container>\n </HeaderMenu.Left>\n </HeaderMenu>\n <HeaderMenu>\n <HeaderMenu.Left>\n {\n !isConnected && (\n <Button\n primary\n size=\"medium\"\n loading={isConnecting}\n onClick={() => setIsModalOpen(true)}\n >\n Connect Wallet\n </Button>\n )\n }\n {!!isConnected && wallet?.chainId && (\n <div className=\"address-header\">\n <Badge color={Color.SHADOWS}>\n {getChainName(wallet.chainId)}\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 </HeaderMenu>\n </Container>\n {!info && <Loader />}\n {isConnected && wallet.address && !signed && info?.actionType === \"create\" && info && (\n <CreateQuestComponent info={info} />\n )}\n {isConnected && wallet.address && !signed && info?.actionType === \"list\" && info && (\n <ListQuestsComponent info={info} />\n )}\n {isConnected && wallet.address && !signed && info?.actionType === \"activate\" && info && (\n <ActivateQuestsComponent info={info} />\n )}\n {isConnected && wallet.address && !signed && info?.actionType === \"deactivate\" && info && (\n <DeactivateQuestsComponent info={info} />\n )}\n {isConnected && !signed && info && (\n <Container className=\"sign-submit-container\">\n <div>\n <Button\n primary\n size=\"medium\"\n loading={isSigning}\n onClick={() => onSign(info!.messageToSign)}\n >\n Sign & Submit\n </Button>\n </div>\n </Container>\n )}\n {isModalOpen ? \n <LoginModal\n name='QuestsPageLoginModal'\n onClose={() => setIsModalOpen(false)}\n isLoading={isConnecting}\n onConnect={onConnectWallet}\n /> \n : null\n }\n </Page>\n </div>\n )\n}\n\nconst CreateQuestComponent = ({ info }: { info: QuestInfoResponse }) => (\n <>\n <p>You're about to create a new Quest with name {info.extraData?.questName}.</p>\n <p>You will be the creator of the Quest and you will be the only one with access to\n <strong> modify, deactivate, activate and see the defintion</strong>\n </p>\n <p>Let's check if you're okay with the Quest that will be created. Otherwise, you can cancel this from your SDK console.</p>\n <code>\n {JSON.stringify(info.extraData?.createQuest, null, 2)}\n </code>\n </>\n)\n\nconst ListQuestsComponent = ({ info }: { info: QuestInfoResponse }) => (\n <>\n <p>You're about to sign a request to get a list of all your Quests</p>\n <code>\n {info.messageToSign}\n </code>\n </>\n)\n\nconst ActivateQuestsComponent = ({ info }: { info: QuestInfoResponse }) => (\n <>\n <p>You're about to sign a request to activate your Quest {info.extraData?.questName}</p>\n <code>\n {info.messageToSign}\n </code>\n </>\n)\n\nconst DeactivateQuestsComponent = ({ info }: { info: QuestInfoResponse }) => (\n <>\n <p>You're about to sign a request to deactivate your Quest {info.extraData?.questName}</p>\n <code>\n {info.messageToSign}\n </code>\n </>\n)","import { RootState } from \"../../types\";\n\nexport const getState = (state: RootState) => state.quests\n\nexport const getQuestsInfo = (state: RootState) => getState(state).info","import QuestsPage from './QuestsPage.container'\nexport default QuestsPage\n","import { AnyAction, Dispatch } from \"redux\";\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'\nimport { RootState } from \"../../types\";\nimport { MapDispatchProps, MapStateProps } from \"./types\";\nimport {\n getData as getSignature,\n isLoading as isSigningTx,\n} from '../../modules/signature/selectors'\nimport { connect } from \"react-redux\";\nimport QuestsPage from \"./QuestsPage\";\nimport { fetchQuestsInfoRequest } from \"../../modules/quests/action\";\nimport { getQuestsInfo } from \"../../modules/quests/selector\";\nimport { signQuestsRequest } from \"../../modules/signature/actions\";\n\n\nconst mapState = (state: RootState): MapStateProps => {\n\treturn {\n\t\twallet: getWallet(state)!,\t\t\t\n\t\tisConnected: isConnected(state),\n\t\tisConnecting: isConnecting(state),\n\t\tsigned: !!getSignature(state),\n\t\tisSigning: isSigningTx(state),\n\t\tinfo: getQuestsInfo(state),\n\t}\n}\n\nconst mapDispatch = (dispatch: Dispatch<AnyAction>): MapDispatchProps => ({\n\tonConnectWallet: (providerType) => dispatch(enableWalletRequest(providerType)),\n\tonSign: (payload) => dispatch(signQuestsRequest(payload)),\n\tonFetchInfo: () => dispatch(fetchQuestsInfoRequest()),\n})\n\nexport default connect(mapState, mapDispatch)(QuestsPage)","import ReactDOM from 'react-dom'\nimport { Provider } from 'react-redux'\nimport { createBrowserRouter, RouterProvider } from 'react-router-dom'\nimport {\n TranslationProvider,\n WalletProvider,\n} from 'decentraland-dapps/dist/providers'\n\nimport { initStore } from './store'\n\nimport Root from './components/Root'\nimport WorldACLPage from './components/WorldACLPage'\nimport QuestsPage from './components/QuestsPage'\n\nimport * as locales from './modules/translation/locales'\n\n// Do not move these before other imports\nimport 'decentraland-ui/lib/styles.css'\nimport 'decentraland-ui/lib/dark-theme.css'\n\nconst router = createBrowserRouter([\n {\n path: '/',\n element: <Root />,\n },\n {\n path: '/acl',\n element: <WorldACLPage />,\n },\n {\n path: '/quests',\n element: <QuestsPage />,\n },\n])\n\n// tslint:disable-next-line: no-floating-promises\nReactDOM.render(\n <Provider store={initStore()}>\n <TranslationProvider locales={Object.keys(locales)}>\n <WalletProvider>\n <RouterProvider router={router} />\n </WalletProvider>\n </TranslationProvider>\n </Provider>,\n document.getElementById('root')\n)\n","import { applyMiddleware, compose, createStore } from 'redux'\nimport createSagasMiddleware from 'redux-saga'\nimport { createLogger } from 'redux-logger'\nimport { createTransactionMiddleware } from 'decentraland-dapps/dist/modules/transaction/middleware'\nimport { createStorageMiddleware } from 'decentraland-dapps/dist/modules/storage/middleware'\n\nimport { rootReducer } from './reducer'\nimport { rootSaga } from './sagas'\n\nexport function initStore() {\n const composeEnhancers = (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose\n\n const { storageMiddleware, loadStorageMiddleware } = createStorageMiddleware({\n storageKey: 'decentraland-linker'\n })\n const sagasMiddleware = createSagasMiddleware()\n const transactionMiddleware = createTransactionMiddleware()\n const loggerMiddleware = createLogger({\n collapsed: () => true,\n predicate: (_, _action) => true\n })\n\n const middleware = applyMiddleware(sagasMiddleware, loggerMiddleware, storageMiddleware, transactionMiddleware)\n\n const enhancer = composeEnhancers(middleware)\n const store = createStore(rootReducer, enhancer)\n\n sagasMiddleware.run(rootSaga())\n loadStorageMiddleware(store)\n\n return store\n}\n","import { all } from 'redux-saga/effects'\n\nimport { walletSaga } from './modules/wallet/sagas'\nimport { signatureSaga } from './modules/signature/sagas'\nimport { authorizationSaga } from './modules/authorization/sagas'\nimport { apiSaga } from './modules/server/sagas'\nimport { translationSaga } from './modules/translation/sagas'\nimport { npsSaga } from './modules/nps/sagas'\nimport { aclSaga } from './modules/acl/sagas'\nimport { questsSaga } from './modules/quests/sagas'\n\nexport function rootSaga() {\n return function* () {\n yield all([\n walletSaga(),\n signatureSaga(),\n authorizationSaga(),\n apiSaga(),\n translationSaga(),\n npsSaga(),\n aclSaga(),\n questsSaga(),\n ])\n }\n}\n"],"sourceRoot":""}
|