Releases: ithacaxyz/porto
Releases · ithacaxyz/porto
[email protected]
Patch Changes
-
89616dc
Thanks @jxom! - Breaking:- Renamed
experimental_authorizeKey
toexperimental_grantPermissions
- Renamed
experimental_keys
toexperimental_permissions
- Renamed
experimental_revokeKey
toexperimental_revokePermissions
- Renamed
keys
capability topermissions
- Renamed
authorizeKey
capability tograntPermissions
- Renamed
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Patch Changes
-
#29
99bf5bf
Thanks @jxom! - Added Spend Permissions viapermissions.spend
property onwallet_authorizeKey
RPC and theauthorizeKey
capability.Example:
const key = await porto.provider.request({ method: "experimental_authorizeKey", params: [ { permissions: { spend: [ { limit: 100_000_000n, // 100 USDC period: "day", token: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", // USDC }, ], }, }, ], });
-
#29
99bf5bf
Thanks @jxom! - Breaking: Modifiedwallet_authorizeKey
andauthorizeKey
capability APIs.- Moved
key.expiry
&key.role
properties to root level:
{ address: '0x...', + expiry: 1716537600, key: { - expiry: 1716537600, publicKey: '0x...', type: 'p256', - role: 'admin', }, + role: 'admin', }
- Removed
callScopes
property in favor ofpermissions.calls
:
{ - callScopes: [ + permissions: { + calls: [ { signature: 'mint(address,uint256)', to: '0x...', }, ], + } }
- Moved
-
ca849b3
Thanks @jxom! - Added support for Dialog Wallets (cross-origin iframes/popup) in Porto viaImplementation.dialog()
.- This feature is work-in-progress and currently has no UI.
- In the future,
Implementation.dialog()
will be the default behavior in Porto to communicate with a Wallet. - Currently, the default implementation is
Implementation.local()
– where its behavior is to perform actions locally (ie. "blind sign"). - In the future, it will be anticipated for App builders to use
Implementation.dialog()
(the default), and for Dialog Wallet builders to useImplemetation.local()
. - Documentation for these patterns will emerge as this feature matures.
If you would like to check out what the experience looks like currently with no UI:
import { Porto } from "porto"; const porto = Porto.create({ implementation: Implementation.dialog(), });
[email protected]
Patch Changes
-
#19
a2f01d4
Thanks @jxom! - Breaking: Renamed APIs:- JSON-RPC Methods:
experimental_grantSession
→experimental_authorizeKey
experimental_importAccount
→experimental_createAccount
experimental_prepareImportAccount
→experimental_prepareCreateAccount
experimental_sessions
→experimental_keys
- Capabilities:
grantSession
→authorizeKey
sessions
→keys
- JSON-RPC Methods:
-
#19
a2f01d4
Thanks @jxom! - Breaking: Migrated to new Account contracts.