Conversation
includes the credential id, which is hopefully available
|
Visit the preview URL for this PR (updated for commit 91722da): https://zksync-auth-server-staging--pr58-multi-domain-passkey-liioqojv.web.app (expires Sat, 15 Mar 2025 19:03:36 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 509a9c9ea42583076f531c53cf2979c544d5d0b7 |
Also update contracts locally
It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing
When deploying the contracts, it should create the file, blocking the build
Can have a different test to make sure this gets updated or put the contract build step into the other builds
Try encoding the local contracts directly instead of via env vars doesn't appear to work locally...
This was correct on creation, but wrong on signing
This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds
You just have to know that the quest address is added via .env.local so the object in the config isn't used
Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible
Picks up a fix from the publish function for the correct abi
It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented?
problem was not the file format, but the file name change
* feat: provide auth-server metadata Can be helpful for custom auth-server implementions that want extra data * fix: use a record instead of an array of records There's not really much extra flexibility here, so just keep it simple * fix: update demo app with new metadata format * Update packages/auth-server/components/session/Metadata.vue --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com>
This was already fixed during guardian module work
breaking name and argument changes were not published Added publish step to readme
now automatically checked via types!
The log parsing format is broken because the return type changed, but regenerating the log format is non-trival so that can be updated later. introducing #84
Updating the tests to match
The connection between the dapp and the auth-server isn't a trusted one so we should be careful providing that data without context
|
What's the reason for the message? |
So the message is a proof of concept to show that we can pass specific data from the client SDK to the auth server. It's designed to pass user information for custom auth servers that can use this user information to work with their own identity provider services! |
|
Then it doesn't seem that we need to display the message on the UI |
@JackHamer09 I've updated this to remove the proof of concept so this is an entirely hidden functionality. Was the concern that the SSO login screen would have the message support baked in where the intention is to have it be entirely optional? I'm most concerned that I have no other method of verification that this does pass the data. We only have e2e test coverage for this and without a way to show this on the UI we'd need a different test framework to see that the data provided to the SDK does arrive in the auth-server. Because there's no usage examples, I'd also be concerned this could be accidentally removed, as it looks unused! I might add this to my documentation PR here: #63 |
This might have been confused as a suggestion to use this instead of an optional parameter. The only concern now is that this critical feature functionality looks unused.
* feat: new passkey signature format includes the credential id, which is hopefully available * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * [wip] Add application metadata (#82) * feat: provide auth-server metadata Can be helpful for custom auth-server implementions that want extra data * fix: use a record instead of an array of records There's not really much extra flexibility here, so just keep it simple * fix: update demo app with new metadata format * Update packages/auth-server/components/session/Metadata.vue --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * fix: update to breaking factory change This was already fixed during guardian module work * fix: update ABI breaking name and argument changes were not published Added publish step to readme * fix: update new variable name now automatically checked via types! * fix: update test mock The log parsing format is broken because the return type changed, but regenerating the log format is non-trival so that can be updated later. introducing #84 * fix: update account id length Updating the tests to match --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com>
* feat: add initial guardian recovery views * feat: add confirm guardian view * feat: improve guardian view with edge cases * fix: remove commented code * feat: improve component imports * feat: add logout icon in desktop breakpoint * fix: naming * fix: pnpm lock * fix: wrong nav component import * fix: add missing package to cspell * feat: add recover account views * feat: add unknown account page * feat: improve account init recovery start * feat: reorganize routes with typed routes * feat: add recovery process warning when logged in * feat: add account not ready page * fix: confirm-guardian page * feat: add base guardian recovery module * chore: update contracts submodule * chore: update contracts submodule * chore: update contracts submodule * feat: add sso account validation * Update packages/auth-server/pages/recovery/guardian/index.vue Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> * feat: add integration with /recovery/guardian/find-account * feat: integrate contracts in guardians settings page * feat: set proper path to confirm-guardian page * feat: add guardian confirmation integration * feat: add ui improvements * feat: address pr comments * feat: update contracts submodule * chore: update contract submodule * feat: add integration to confirm recovery view * feat: add integration with cancel recovery (#53) * feat: add integration with cancel recovery * feat: update contracts submodule and abi * feat: add verify recovery view on the main page * chore: update contracts * feat: add missing nuxt config * feat: new passkey signature format includes the credential id, which is hopefully available * feat: custom paymaster handler & zyfi integration (#51) * feat: custom paymaster handler & zyfi integration * feat: export paymaster package * fix: bigint serializer * feat: passkey paymaster handler & general paymaster handler & fix types * fix: import path * chore: add new words to cspell * chore: fix zyfi input data * fix: ci (#60) * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: improve confirm guardian flow * chore: update contracts package * feat: execute pending recovery on login (#57) * feat: execute pending recovery on login * feat: move recovery client to sdk * feat: add account-not-ready view * chore: fix pnpm lock --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> * fix: parse newly created account address from events (#66) * fix: parse newly created account address from events * fix: unit tests * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: pad bytes32 values for proper abi encoding (#61) Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * feat: improve recovery flow (#71) * feat: add placeholder to account select component * feat: add init recovery method to be used by any client * feat: improve recovery flow * feat: improve confirm recovery flow * feat: improve styles * Feat/update to match contracts (#81) * feat: update to work with new guardian validator * chore: update contracts submodule * chore: remove duplicated hooks * chore: update guardian validator abi * feat: update to match new contracts * chore: update contracts repo * feat: use recovery guardian sso contracts deployment * chore: temporarily hardcode appkit project id * chore: temporarily change app url * feat: unify encoding of credential id * feat: unify encoding of credential id * feat: use provider from appkit * feat: new passkey signature format (#58) * feat: new passkey signature format includes the credential id, which is hopefully available * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * [wip] Add application metadata (#82) * feat: provide auth-server metadata Can be helpful for custom auth-server implementions that want extra data * fix: use a record instead of an array of records There's not really much extra flexibility here, so just keep it simple * fix: update demo app with new metadata format * Update packages/auth-server/components/session/Metadata.vue --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * fix: update to breaking factory change This was already fixed during guardian module work * fix: update ABI breaking name and argument changes were not published Added publish step to readme * fix: update new variable name now automatically checked via types! * fix: update test mock The log parsing format is broken because the return type changed, but regenerating the log format is non-trival so that can be updated later. introducing #84 * fix: update account id length Updating the tests to match --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * feat: update to latest contracts version * chore: fix build * feat: upgrate paymaster * chore: bump submodules * chore: bump contract submodule * fix: fixes after merge oidc working lots of testing missing * fix: fix nft app wip * feat: remove aud and iss from pub inputs (#90) * feat: remove aud and iss from pub inputs remove aud and iss from pub inputs * fix: test should deploy all contracts test should deploy all contracts * fix: fixed sdk tests --------- Co-authored-by: calvo.generico <miguelfeliped@gmail.com> * fix: more fixes * fix: more fixes --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> Co-authored-by: cbe <cbe@matterlabs.dev> Co-authored-by: Utkir S. <sobirovutkir@gmail.com> Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> Co-authored-by: Lyova Potyomkin <lyova.potyomkin@gmail.com> Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* feat: add initial guardian recovery views * feat: add confirm guardian view * feat: improve guardian view with edge cases * fix: remove commented code * feat: improve component imports * feat: add logout icon in desktop breakpoint * fix: naming * fix: pnpm lock * fix: wrong nav component import * fix: add missing package to cspell * feat: add recover account views * feat: add unknown account page * feat: improve account init recovery start * feat: reorganize routes with typed routes * feat: add recovery process warning when logged in * feat: add account not ready page * fix: confirm-guardian page * feat: add base guardian recovery module * chore: update contracts submodule * chore: update contracts submodule * chore: update contracts submodule * feat: add sso account validation * Update packages/auth-server/pages/recovery/guardian/index.vue Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> * feat: add integration with /recovery/guardian/find-account * feat: integrate contracts in guardians settings page * feat: set proper path to confirm-guardian page * feat: add guardian confirmation integration * feat: add ui improvements * feat: address pr comments * feat: update contracts submodule * chore: update contract submodule * feat: add integration to confirm recovery view * feat: add integration with cancel recovery (#53) * feat: add integration with cancel recovery * feat: update contracts submodule and abi * feat: add verify recovery view on the main page * chore: update contracts * feat: add missing nuxt config * feat: new passkey signature format includes the credential id, which is hopefully available * feat: custom paymaster handler & zyfi integration (#51) * feat: custom paymaster handler & zyfi integration * feat: export paymaster package * fix: bigint serializer * feat: passkey paymaster handler & general paymaster handler & fix types * fix: import path * chore: add new words to cspell * chore: fix zyfi input data * fix: ci (#60) * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: improve confirm guardian flow * chore: update contracts package * feat: execute pending recovery on login (#57) * feat: execute pending recovery on login * feat: move recovery client to sdk * feat: add account-not-ready view * chore: fix pnpm lock --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> * fix: parse newly created account address from events (#66) * fix: parse newly created account address from events * fix: unit tests * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: pad bytes32 values for proper abi encoding (#61) Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * feat: improve recovery flow (#71) * feat: add placeholder to account select component * feat: add init recovery method to be used by any client * feat: improve recovery flow * feat: improve confirm recovery flow * feat: improve styles * Feat/update to match contracts (#81) * feat: update to work with new guardian validator * chore: update contracts submodule * chore: remove duplicated hooks * chore: update guardian validator abi * feat: update to match new contracts * chore: update contracts repo * feat: use recovery guardian sso contracts deployment * chore: temporarily hardcode appkit project id * chore: temporarily change app url * feat: unify encoding of credential id * feat: unify encoding of credential id * feat: use provider from appkit * feat: new passkey signature format (#58) * feat: new passkey signature format includes the credential id, which is hopefully available * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * [wip] Add application metadata (#82) * feat: provide auth-server metadata Can be helpful for custom auth-server implementions that want extra data * fix: use a record instead of an array of records There's not really much extra flexibility here, so just keep it simple * fix: update demo app with new metadata format * Update packages/auth-server/components/session/Metadata.vue --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * fix: update to breaking factory change This was already fixed during guardian module work * fix: update ABI breaking name and argument changes were not published Added publish step to readme * fix: update new variable name now automatically checked via types! * fix: update test mock The log parsing format is broken because the return type changed, but regenerating the log format is non-trival so that can be updated later. introducing #84 * fix: update account id length Updating the tests to match --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * feat: update to latest contracts version * chore: fix build * feat: upgrate paymaster * chore: bump submodules * chore: bump contract submodule * fix: fixes after merge oidc working lots of testing missing * fix: fix nft app wip * feat: remove aud and iss from pub inputs (#90) * feat: remove aud and iss from pub inputs remove aud and iss from pub inputs * fix: test should deploy all contracts test should deploy all contracts * fix: fixed sdk tests --------- Co-authored-by: calvo.generico <miguelfeliped@gmail.com> * fix: more fixes * fix: more fixes --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> Co-authored-by: cbe <cbe@matterlabs.dev> Co-authored-by: Utkir S. <sobirovutkir@gmail.com> Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> Co-authored-by: Lyova Potyomkin <lyova.potyomkin@gmail.com> Co-authored-by: calvo.generico <miguelfeliped@gmail.com>
* feat: new passkey signature format includes the credential id, which is hopefully available * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * [wip] Add application metadata (#82) * feat: provide auth-server metadata Can be helpful for custom auth-server implementions that want extra data * fix: use a record instead of an array of records There's not really much extra flexibility here, so just keep it simple * fix: update demo app with new metadata format * Update packages/auth-server/components/session/Metadata.vue --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * fix: update to breaking factory change This was already fixed during guardian module work * fix: update ABI breaking name and argument changes were not published Added publish step to readme * fix: update new variable name now automatically checked via types! * fix: update test mock The log parsing format is broken because the return type changed, but regenerating the log format is non-trival so that can be updated later. introducing #84 * fix: update account id length Updating the tests to match --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com>
* feat: add initial guardian recovery views * feat: add confirm guardian view * feat: improve guardian view with edge cases * fix: remove commented code * feat: improve component imports * feat: add logout icon in desktop breakpoint * fix: naming * fix: pnpm lock * fix: wrong nav component import * fix: add missing package to cspell * feat: add recover account views * feat: add unknown account page * feat: improve account init recovery start * feat: reorganize routes with typed routes * feat: add recovery process warning when logged in * feat: add account not ready page * fix: confirm-guardian page * feat: add base guardian recovery module * chore: update contracts submodule * chore: update contracts submodule * chore: update contracts submodule * feat: add sso account validation * Update packages/auth-server/pages/recovery/guardian/index.vue Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> * feat: add integration with /recovery/guardian/find-account * feat: integrate contracts in guardians settings page * feat: set proper path to confirm-guardian page * feat: add guardian confirmation integration * feat: add ui improvements * feat: address pr comments * feat: update contracts submodule * chore: update contract submodule * feat: add integration to confirm recovery view * feat: add integration with cancel recovery (#53) * feat: add integration with cancel recovery * feat: update contracts submodule and abi * feat: add verify recovery view on the main page * chore: update contracts * feat: add missing nuxt config * feat: new passkey signature format includes the credential id, which is hopefully available * feat: custom paymaster handler & zyfi integration (#51) * feat: custom paymaster handler & zyfi integration * feat: export paymaster package * fix: bigint serializer * feat: passkey paymaster handler & general paymaster handler & fix types * fix: import path * chore: add new words to cspell * chore: fix zyfi input data * fix: ci (#60) * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: improve confirm guardian flow * chore: update contracts package * feat: execute pending recovery on login (#57) * feat: execute pending recovery on login * feat: move recovery client to sdk * feat: add account-not-ready view * chore: fix pnpm lock --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> * fix: parse newly created account address from events (#66) * fix: parse newly created account address from events * fix: unit tests * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: pad bytes32 values for proper abi encoding (#61) Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * feat: improve recovery flow (#71) * feat: add placeholder to account select component * feat: add init recovery method to be used by any client * feat: improve recovery flow * feat: improve confirm recovery flow * feat: improve styles * Feat/update to match contracts (#81) * feat: update to work with new guardian validator * chore: update contracts submodule * chore: remove duplicated hooks * chore: update guardian validator abi * feat: update to match new contracts * chore: update contracts repo * feat: use recovery guardian sso contracts deployment * chore: temporarily hardcode appkit project id * chore: temporarily change app url * feat: unify encoding of credential id * feat: unify encoding of credential id * feat: use provider from appkit * feat: new passkey signature format (#58) * feat: new passkey signature format includes the credential id, which is hopefully available * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * [wip] Add application metadata (#82) * feat: provide auth-server metadata Can be helpful for custom auth-server implementions that want extra data * fix: use a record instead of an array of records There's not really much extra flexibility here, so just keep it simple * fix: update demo app with new metadata format * Update packages/auth-server/components/session/Metadata.vue --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * fix: update to breaking factory change This was already fixed during guardian module work * fix: update ABI breaking name and argument changes were not published Added publish step to readme * fix: update new variable name now automatically checked via types! * fix: update test mock The log parsing format is broken because the return type changed, but regenerating the log format is non-trival so that can be updated later. introducing #84 * fix: update account id length Updating the tests to match --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * feat: update to latest contracts version * chore: fix build * feat: upgrate paymaster * chore: bump submodules * chore: bump contract submodule * fix: fixes after merge oidc working lots of testing missing * fix: fix nft app wip * feat: remove aud and iss from pub inputs (#90) * feat: remove aud and iss from pub inputs remove aud and iss from pub inputs * fix: test should deploy all contracts test should deploy all contracts * fix: fixed sdk tests --------- Co-authored-by: calvo.generico <miguelfeliped@gmail.com> * fix: more fixes * fix: more fixes --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> Co-authored-by: cbe <cbe@matterlabs.dev> Co-authored-by: Utkir S. <sobirovutkir@gmail.com> Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> Co-authored-by: Lyova Potyomkin <lyova.potyomkin@gmail.com> Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* feat: add initial guardian recovery views * feat: add confirm guardian view * feat: improve guardian view with edge cases * fix: remove commented code * feat: improve component imports * feat: add logout icon in desktop breakpoint * fix: naming * fix: pnpm lock * fix: wrong nav component import * fix: add missing package to cspell * feat: add recover account views * feat: add unknown account page * feat: improve account init recovery start * feat: reorganize routes with typed routes * feat: add recovery process warning when logged in * feat: add account not ready page * fix: confirm-guardian page * feat: add base guardian recovery module * chore: update contracts submodule * chore: update contracts submodule * chore: update contracts submodule * feat: add sso account validation * Update packages/auth-server/pages/recovery/guardian/index.vue Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> * feat: add integration with /recovery/guardian/find-account * feat: integrate contracts in guardians settings page * feat: set proper path to confirm-guardian page * feat: add guardian confirmation integration * feat: add ui improvements * feat: address pr comments * feat: update contracts submodule * chore: update contract submodule * feat: add integration to confirm recovery view * feat: add integration with cancel recovery (#53) * feat: add integration with cancel recovery * feat: update contracts submodule and abi * feat: add verify recovery view on the main page * chore: update contracts * feat: add missing nuxt config * feat: new passkey signature format includes the credential id, which is hopefully available * feat: custom paymaster handler & zyfi integration (#51) * feat: custom paymaster handler & zyfi integration * feat: export paymaster package * fix: bigint serializer * feat: passkey paymaster handler & general paymaster handler & fix types * fix: import path * chore: add new words to cspell * chore: fix zyfi input data * fix: ci (#60) * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: improve confirm guardian flow * chore: update contracts package * feat: execute pending recovery on login (#57) * feat: execute pending recovery on login * feat: move recovery client to sdk * feat: add account-not-ready view * chore: fix pnpm lock --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> * fix: parse newly created account address from events (#66) * fix: parse newly created account address from events * fix: unit tests * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: pad bytes32 values for proper abi encoding (#61) Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * feat: improve recovery flow (#71) * feat: add placeholder to account select component * feat: add init recovery method to be used by any client * feat: improve recovery flow * feat: improve confirm recovery flow * feat: improve styles * Feat/update to match contracts (#81) * feat: update to work with new guardian validator * chore: update contracts submodule * chore: remove duplicated hooks * chore: update guardian validator abi * feat: update to match new contracts * chore: update contracts repo * feat: use recovery guardian sso contracts deployment * chore: temporarily hardcode appkit project id * chore: temporarily change app url * feat: unify encoding of credential id * feat: unify encoding of credential id * feat: use provider from appkit * feat: new passkey signature format (#58) * feat: new passkey signature format includes the credential id, which is hopefully available * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * [wip] Add application metadata (#82) * feat: provide auth-server metadata Can be helpful for custom auth-server implementions that want extra data * fix: use a record instead of an array of records There's not really much extra flexibility here, so just keep it simple * fix: update demo app with new metadata format * Update packages/auth-server/components/session/Metadata.vue --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * fix: update to breaking factory change This was already fixed during guardian module work * fix: update ABI breaking name and argument changes were not published Added publish step to readme * fix: update new variable name now automatically checked via types! * fix: update test mock The log parsing format is broken because the return type changed, but regenerating the log format is non-trival so that can be updated later. introducing #84 * fix: update account id length Updating the tests to match --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * feat: update to latest contracts version * chore: fix build * feat: upgrate paymaster * chore: bump submodules * chore: bump contract submodule * fix: fixes after merge oidc working lots of testing missing * fix: fix nft app wip * feat: remove aud and iss from pub inputs (#90) * feat: remove aud and iss from pub inputs remove aud and iss from pub inputs * fix: test should deploy all contracts test should deploy all contracts * fix: fixed sdk tests --------- Co-authored-by: calvo.generico <miguelfeliped@gmail.com> * fix: more fixes * fix: more fixes --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> Co-authored-by: cbe <cbe@matterlabs.dev> Co-authored-by: Utkir S. <sobirovutkir@gmail.com> Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> Co-authored-by: Lyova Potyomkin <lyova.potyomkin@gmail.com> Co-authored-by: calvo.generico <miguelfeliped@gmail.com>
* feat: add initial guardian recovery views * feat: add confirm guardian view * feat: improve guardian view with edge cases * fix: remove commented code * feat: improve component imports * feat: add logout icon in desktop breakpoint * fix: naming * fix: pnpm lock * fix: wrong nav component import * fix: add missing package to cspell * feat: add recover account views * feat: add unknown account page * feat: improve account init recovery start * feat: reorganize routes with typed routes * feat: add recovery process warning when logged in * feat: add account not ready page * fix: confirm-guardian page * feat: add base guardian recovery module * chore: update contracts submodule * chore: update contracts submodule * chore: update contracts submodule * feat: add sso account validation * Update packages/auth-server/pages/recovery/guardian/index.vue Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> * feat: add integration with /recovery/guardian/find-account * feat: integrate contracts in guardians settings page * feat: set proper path to confirm-guardian page * feat: add guardian confirmation integration * feat: add ui improvements * feat: address pr comments * feat: update contracts submodule * chore: update contract submodule * feat: add integration to confirm recovery view * feat: add integration with cancel recovery (#53) * feat: add integration with cancel recovery * feat: update contracts submodule and abi * feat: add verify recovery view on the main page * chore: update contracts * feat: add missing nuxt config * feat: new passkey signature format includes the credential id, which is hopefully available * feat: custom paymaster handler & zyfi integration (#51) * feat: custom paymaster handler & zyfi integration * feat: export paymaster package * fix: bigint serializer * feat: passkey paymaster handler & general paymaster handler & fix types * fix: import path * chore: add new words to cspell * chore: fix zyfi input data * fix: ci (#60) * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: improve confirm guardian flow * chore: update contracts package * feat: execute pending recovery on login (#57) * feat: execute pending recovery on login * feat: move recovery client to sdk * feat: add account-not-ready view * chore: fix pnpm lock --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> * fix: parse newly created account address from events (#66) * fix: parse newly created account address from events * fix: unit tests * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: pad bytes32 values for proper abi encoding (#61) Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * feat: improve recovery flow (#71) * feat: add placeholder to account select component * feat: add init recovery method to be used by any client * feat: improve recovery flow * feat: improve confirm recovery flow * feat: improve styles * Feat/update to match contracts (#81) * feat: update to work with new guardian validator * chore: update contracts submodule * chore: remove duplicated hooks * chore: update guardian validator abi * feat: update to match new contracts * chore: update contracts repo * feat: use recovery guardian sso contracts deployment * chore: temporarily hardcode appkit project id * chore: temporarily change app url * feat: unify encoding of credential id * feat: unify encoding of credential id * feat: use provider from appkit * feat: new passkey signature format (#58) * feat: new passkey signature format includes the credential id, which is hopefully available * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * [wip] Add application metadata (#82) * feat: provide auth-server metadata Can be helpful for custom auth-server implementions that want extra data * fix: use a record instead of an array of records There's not really much extra flexibility here, so just keep it simple * fix: update demo app with new metadata format * Update packages/auth-server/components/session/Metadata.vue --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * fix: update to breaking factory change This was already fixed during guardian module work * fix: update ABI breaking name and argument changes were not published Added publish step to readme * fix: update new variable name now automatically checked via types! * fix: update test mock The log parsing format is broken because the return type changed, but regenerating the log format is non-trival so that can be updated later. introducing #84 * fix: update account id length Updating the tests to match --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * feat: update to latest contracts version * chore: fix build * feat: upgrate paymaster * chore: bump submodules * chore: bump contract submodule * fix: fixes after merge oidc working lots of testing missing * fix: fix nft app wip * feat: remove aud and iss from pub inputs (#90) * feat: remove aud and iss from pub inputs remove aud and iss from pub inputs * fix: test should deploy all contracts test should deploy all contracts * fix: fixed sdk tests --------- Co-authored-by: calvo.generico <miguelfeliped@gmail.com> * fix: more fixes * fix: more fixes --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> Co-authored-by: cbe <cbe@matterlabs.dev> Co-authored-by: Utkir S. <sobirovutkir@gmail.com> Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> Co-authored-by: Lyova Potyomkin <lyova.potyomkin@gmail.com> Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* feat: add initial guardian recovery views * feat: add confirm guardian view * feat: improve guardian view with edge cases * fix: remove commented code * feat: improve component imports * feat: add logout icon in desktop breakpoint * fix: naming * fix: pnpm lock * fix: wrong nav component import * fix: add missing package to cspell * feat: add recover account views * feat: add unknown account page * feat: improve account init recovery start * feat: reorganize routes with typed routes * feat: add recovery process warning when logged in * feat: add account not ready page * fix: confirm-guardian page * feat: add base guardian recovery module * chore: update contracts submodule * chore: update contracts submodule * chore: update contracts submodule * feat: add sso account validation * Update packages/auth-server/pages/recovery/guardian/index.vue Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> * feat: add integration with /recovery/guardian/find-account * feat: integrate contracts in guardians settings page * feat: set proper path to confirm-guardian page * feat: add guardian confirmation integration * feat: add ui improvements * feat: address pr comments * feat: update contracts submodule * chore: update contract submodule * feat: add integration to confirm recovery view * feat: add integration with cancel recovery (#53) * feat: add integration with cancel recovery * feat: update contracts submodule and abi * feat: add verify recovery view on the main page * chore: update contracts * feat: add missing nuxt config * feat: new passkey signature format includes the credential id, which is hopefully available * feat: custom paymaster handler & zyfi integration (#51) * feat: custom paymaster handler & zyfi integration * feat: export paymaster package * fix: bigint serializer * feat: passkey paymaster handler & general paymaster handler & fix types * fix: import path * chore: add new words to cspell * chore: fix zyfi input data * fix: ci (#60) * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: improve confirm guardian flow * chore: update contracts package * feat: execute pending recovery on login (#57) * feat: execute pending recovery on login * feat: move recovery client to sdk * feat: add account-not-ready view * chore: fix pnpm lock --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> * fix: parse newly created account address from events (#66) * fix: parse newly created account address from events * fix: unit tests * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: pad bytes32 values for proper abi encoding (#61) Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * feat: improve recovery flow (#71) * feat: add placeholder to account select component * feat: add init recovery method to be used by any client * feat: improve recovery flow * feat: improve confirm recovery flow * feat: improve styles * Feat/update to match contracts (#81) * feat: update to work with new guardian validator * chore: update contracts submodule * chore: remove duplicated hooks * chore: update guardian validator abi * feat: update to match new contracts * chore: update contracts repo * feat: use recovery guardian sso contracts deployment * chore: temporarily hardcode appkit project id * chore: temporarily change app url * feat: unify encoding of credential id * feat: unify encoding of credential id * feat: use provider from appkit * feat: new passkey signature format (#58) * feat: new passkey signature format includes the credential id, which is hopefully available * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * [wip] Add application metadata (#82) * feat: provide auth-server metadata Can be helpful for custom auth-server implementions that want extra data * fix: use a record instead of an array of records There's not really much extra flexibility here, so just keep it simple * fix: update demo app with new metadata format * Update packages/auth-server/components/session/Metadata.vue --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * fix: update to breaking factory change This was already fixed during guardian module work * fix: update ABI breaking name and argument changes were not published Added publish step to readme * fix: update new variable name now automatically checked via types! * fix: update test mock The log parsing format is broken because the return type changed, but regenerating the log format is non-trival so that can be updated later. introducing #84 * fix: update account id length Updating the tests to match --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * feat: update to latest contracts version * chore: fix build * feat: upgrate paymaster * chore: bump submodules * chore: bump contract submodule * fix: fixes after merge oidc working lots of testing missing * fix: fix nft app wip * feat: remove aud and iss from pub inputs (#90) * feat: remove aud and iss from pub inputs remove aud and iss from pub inputs * fix: test should deploy all contracts test should deploy all contracts * fix: fixed sdk tests --------- Co-authored-by: calvo.generico <miguelfeliped@gmail.com> * fix: more fixes * fix: more fixes --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> Co-authored-by: cbe <cbe@matterlabs.dev> Co-authored-by: Utkir S. <sobirovutkir@gmail.com> Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> Co-authored-by: Lyova Potyomkin <lyova.potyomkin@gmail.com> Co-authored-by: calvo.generico <miguelfeliped@gmail.com>
* feat: add initial guardian recovery views * feat: add confirm guardian view * feat: improve guardian view with edge cases * fix: remove commented code * feat: improve component imports * feat: add logout icon in desktop breakpoint * fix: naming * fix: pnpm lock * fix: wrong nav component import * fix: add missing package to cspell * feat: add recover account views * feat: add unknown account page * feat: improve account init recovery start * feat: reorganize routes with typed routes * feat: add recovery process warning when logged in * feat: add account not ready page * fix: confirm-guardian page * feat: add base guardian recovery module * chore: update contracts submodule * chore: update contracts submodule * chore: update contracts submodule * feat: add sso account validation * Update packages/auth-server/pages/recovery/guardian/index.vue Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> * feat: add integration with /recovery/guardian/find-account * feat: integrate contracts in guardians settings page * feat: set proper path to confirm-guardian page * feat: add guardian confirmation integration * feat: add ui improvements * feat: address pr comments * feat: update contracts submodule * chore: update contract submodule * feat: add integration to confirm recovery view * feat: add integration with cancel recovery (#53) * feat: add integration with cancel recovery * feat: update contracts submodule and abi * feat: add verify recovery view on the main page * chore: update contracts * feat: add missing nuxt config * feat: new passkey signature format includes the credential id, which is hopefully available * feat: custom paymaster handler & zyfi integration (#51) * feat: custom paymaster handler & zyfi integration * feat: export paymaster package * fix: bigint serializer * feat: passkey paymaster handler & general paymaster handler & fix types * fix: import path * chore: add new words to cspell * chore: fix zyfi input data * fix: ci (#60) * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: improve confirm guardian flow * chore: update contracts package * feat: execute pending recovery on login (#57) * feat: execute pending recovery on login * feat: move recovery client to sdk * feat: add account-not-ready view * chore: fix pnpm lock --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> * fix: parse newly created account address from events (#66) * fix: parse newly created account address from events * fix: unit tests * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: pad bytes32 values for proper abi encoding (#61) Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * feat: improve recovery flow (#71) * feat: add placeholder to account select component * feat: add init recovery method to be used by any client * feat: improve recovery flow * feat: improve confirm recovery flow * feat: improve styles * Feat/update to match contracts (#81) * feat: update to work with new guardian validator * chore: update contracts submodule * chore: remove duplicated hooks * chore: update guardian validator abi * feat: update to match new contracts * chore: update contracts repo * feat: use recovery guardian sso contracts deployment * chore: temporarily hardcode appkit project id * chore: temporarily change app url * feat: unify encoding of credential id * feat: unify encoding of credential id * feat: use provider from appkit * feat: new passkey signature format (#58) * feat: new passkey signature format includes the credential id, which is hopefully available * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * [wip] Add application metadata (#82) * feat: provide auth-server metadata Can be helpful for custom auth-server implementions that want extra data * fix: use a record instead of an array of records There's not really much extra flexibility here, so just keep it simple * fix: update demo app with new metadata format * Update packages/auth-server/components/session/Metadata.vue --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * fix: update to breaking factory change This was already fixed during guardian module work * fix: update ABI breaking name and argument changes were not published Added publish step to readme * fix: update new variable name now automatically checked via types! * fix: update test mock The log parsing format is broken because the return type changed, but regenerating the log format is non-trival so that can be updated later. introducing #84 * fix: update account id length Updating the tests to match --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * feat: update to latest contracts version * chore: fix build * feat: upgrate paymaster * chore: bump submodules * chore: bump contract submodule * fix: fixes after merge oidc working lots of testing missing * fix: fix nft app wip * feat: remove aud and iss from pub inputs (#90) * feat: remove aud and iss from pub inputs remove aud and iss from pub inputs * fix: test should deploy all contracts test should deploy all contracts * fix: fixed sdk tests --------- Co-authored-by: calvo.generico <miguelfeliped@gmail.com> * fix: more fixes * fix: more fixes --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> Co-authored-by: cbe <cbe@matterlabs.dev> Co-authored-by: Utkir S. <sobirovutkir@gmail.com> Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> Co-authored-by: Lyova Potyomkin <lyova.potyomkin@gmail.com> Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* feat: add initial guardian recovery views * feat: add confirm guardian view * feat: improve guardian view with edge cases * fix: remove commented code * feat: improve component imports * feat: add logout icon in desktop breakpoint * fix: naming * fix: pnpm lock * fix: wrong nav component import * fix: add missing package to cspell * feat: add recover account views * feat: add unknown account page * feat: improve account init recovery start * feat: reorganize routes with typed routes * feat: add recovery process warning when logged in * feat: add account not ready page * fix: confirm-guardian page * feat: add base guardian recovery module * chore: update contracts submodule * chore: update contracts submodule * chore: update contracts submodule * feat: add sso account validation * Update packages/auth-server/pages/recovery/guardian/index.vue Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> * feat: add integration with /recovery/guardian/find-account * feat: integrate contracts in guardians settings page * feat: set proper path to confirm-guardian page * feat: add guardian confirmation integration * feat: add ui improvements * feat: address pr comments * feat: update contracts submodule * chore: update contract submodule * feat: add integration to confirm recovery view * feat: add integration with cancel recovery (#53) * feat: add integration with cancel recovery * feat: update contracts submodule and abi * feat: add verify recovery view on the main page * chore: update contracts * feat: add missing nuxt config * feat: new passkey signature format includes the credential id, which is hopefully available * feat: custom paymaster handler & zyfi integration (#51) * feat: custom paymaster handler & zyfi integration * feat: export paymaster package * fix: bigint serializer * feat: passkey paymaster handler & general paymaster handler & fix types * fix: import path * chore: add new words to cspell * chore: fix zyfi input data * fix: ci (#60) * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: improve confirm guardian flow * chore: update contracts package * feat: execute pending recovery on login (#57) * feat: execute pending recovery on login * feat: move recovery client to sdk * feat: add account-not-ready view * chore: fix pnpm lock --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> * fix: parse newly created account address from events (#66) * fix: parse newly created account address from events * fix: unit tests * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: pad bytes32 values for proper abi encoding (#61) Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * feat: improve recovery flow (#71) * feat: add placeholder to account select component * feat: add init recovery method to be used by any client * feat: improve recovery flow * feat: improve confirm recovery flow * feat: improve styles * Feat/update to match contracts (#81) * feat: update to work with new guardian validator * chore: update contracts submodule * chore: remove duplicated hooks * chore: update guardian validator abi * feat: update to match new contracts * chore: update contracts repo * feat: use recovery guardian sso contracts deployment * chore: temporarily hardcode appkit project id * chore: temporarily change app url * feat: unify encoding of credential id * feat: unify encoding of credential id * feat: use provider from appkit * feat: new passkey signature format (#58) * feat: new passkey signature format includes the credential id, which is hopefully available * fix: update to include credential id on creation Also update contracts locally * chore: update to latest contracts * fix: update lockfile from contract dep change * fix: import for utils * fix: update signature format tests It doesn't look correct visually, but it's mocked on both ends so it's not super clear on what it's testing * feat: attempt to use new dynamic contract addresses When deploying the contracts, it should create the file, blocking the build * fix: provide an example file Can have a different test to make sure this gets updated or put the contract build step into the other builds * fix: add create2 to nft deploy Try encoding the local contracts directly instead of via env vars doesn't appear to work locally... * fix: encode passkey id as bytes This was correct on creation, but wrong on signing * chore: update to latest contract * fix: update hardcoded signatures for passkey view This was super tough to find and would have been a compile error had we imported the abi directly from the contracts! This is something I'm going to look into so we don't lose our minds * fix: remove debugging changes You just have to know that the quest address is added via .env.local so the object in the config isn't used * feat: attempt to import abi automatically Having to manually update the ABI kinda defeats the point of type safety, but it's clear the auto-generated one doesn't play nice with the existing file so more work will be necessary to update it so it's compatible * fix: use view function to get key Picks up a fix from the publish function for the correct abi * fix: remove publish from CI It looks like nuxt builds don't like the poorly formatted json, so instead of trying to pretty print the abi automatically we'll rely on the editor tools to do this. At the very least the publish step is documented? * fix: update import names problem was not the file format, but the file name change * fix: use pnpm run build instead of build CI is behaving strange? * fix: use correct contract branch * fix: pull contract directory in CI This explains why the build was failing * feat: setup local node for deploy This should be fine because we aren't actually using it * [wip] Add application metadata (#82) * feat: provide auth-server metadata Can be helpful for custom auth-server implementions that want extra data * fix: use a record instead of an array of records There's not really much extra flexibility here, so just keep it simple * fix: update demo app with new metadata format * Update packages/auth-server/components/session/Metadata.vue --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * fix: update to breaking factory change This was already fixed during guardian module work * fix: update ABI breaking name and argument changes were not published Added publish step to readme * fix: update new variable name now automatically checked via types! * fix: update test mock The log parsing format is broken because the return type changed, but regenerating the log format is non-trival so that can be updated later. introducing #84 * fix: update account id length Updating the tests to match --------- Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> * feat: update to latest contracts version * chore: fix build * feat: upgrate paymaster * chore: bump submodules * chore: bump contract submodule * fix: fixes after merge oidc working lots of testing missing * fix: fix nft app wip * feat: remove aud and iss from pub inputs (#90) * feat: remove aud and iss from pub inputs remove aud and iss from pub inputs * fix: test should deploy all contracts test should deploy all contracts * fix: fixed sdk tests --------- Co-authored-by: calvo.generico <miguelfeliped@gmail.com> * fix: more fixes * fix: more fixes --------- Co-authored-by: aon <21188659+aon@users.noreply.github.com> Co-authored-by: Lukasz Romanowski <5160687+MiniRoman@users.noreply.github.com> Co-authored-by: cbe <cbe@matterlabs.dev> Co-authored-by: Utkir S. <sobirovutkir@gmail.com> Co-authored-by: Nicolas Villanueva <1890113+MexicanAce@users.noreply.github.com> Co-authored-by: cpb8010 <cpb8010@users.noreply.github.com> Co-authored-by: Lyova Potyomkin <lyova.potyomkin@gmail.com> Co-authored-by: calvo.generico <miguelfeliped@gmail.com>
Description
Update the passkey account init data format to include the passkey credential id and update the signing format to include the same credential id.
matter-labs/zksync-sso-clave-contracts#270
Additional context
By using this id we allow multiple passkeys per domain without having to check all possible passkeys on the contract side.
This is pretty major breaking change for the passkey module, anything attempting to read or write passkeys to it will break and there's no way to migrate existing module users.
ABI and deployment script
Because much of this required ABI and contract address changes, I've added scripts and automated much of this within CI. I've kept the files so it works out of the box locally, but CI will fail when the contracts and code now get out of sync.
Future updates
The SDK assumes that the unique account id is the passkey credential id, that will need to change with a security update to prevent front-running that id here: matter-labs/zksync-sso-clave-contracts#309
As for now this really only allows creating back-up passkeys, as only the first passkey created with an account will be able to sign in with it.