@xyo-network/xl1-protocol 1.5.18 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,25 +1,64 @@
1
- import type { Address, Hex } from '@xylabs/hex';
1
+ import type { Hex } from '@xylabs/hex';
2
+ import type { JsonValue } from '@xylabs/object';
2
3
  import type { Promisable } from '@xylabs/promise';
3
4
  export interface ChainConnection {
5
+ /** Chain Identifier - can be a hex (eth contract address) or a string */
4
6
  chainId?: string | Hex;
7
+ /** Name of the chain */
5
8
  name: string;
6
9
  /** Url for accessing the network */
7
10
  url: string;
8
11
  }
12
+ /**
13
+ * Modeled after EIP-2255
14
+ * See - https://eips.ethereum.org/EIPS/eip-2255#specification
15
+ */
16
+ export interface PermissionRequest {
17
+ [capability: string]: {
18
+ [caveatName: string]: JsonValue;
19
+ };
20
+ }
21
+ /**
22
+ * Modeled after EIP-2255
23
+ * See - https://eips.ethereum.org/EIPS/eip-2255#specification
24
+ */
25
+ export interface RequestedPermission {
26
+ /** Permission identifier (i.e. RPC method, action, etc.) */
27
+ capability: string;
28
+ /** Optional timestamp for when the permission was granted */
29
+ date?: number;
30
+ }
31
+ export type CaveatTypes = 'chain' | 'expiration' | 'filteredResponse' | 'rateLimit';
32
+ /**
33
+ * Modeled after EIP-2255
34
+ * See - https://eips.ethereum.org/EIPS/eip-2255#specification
35
+ */
36
+ export interface Caveats {
37
+ /** Type of caveat */
38
+ type: CaveatTypes;
39
+ /** Value for the caveat (i.e. chain id, subset of accounts, expiration, max request per minute, etc.) */
40
+ value: JsonValue;
41
+ }
42
+ /**
43
+ * Modeled after EIP-2255
44
+ * See - https://eips.ethereum.org/EIPS/eip-2255#specification
45
+ */
9
46
  export interface Permission {
47
+ /** Permission identifier (i.e. RPC method, action, etc.) */
10
48
  capability: string;
11
- chain: Address;
12
- expiration?: number;
13
- grantee?: string;
14
- id: string;
15
- issuedAt?: number;
16
- status?: 'granted' | 'revoked';
17
- value?: string[];
49
+ /** Caveats for the permission, if applicable (i.e. allowed accounts, signing, etc.) */
50
+ caveats?: Caveats[];
51
+ /** Invoker for the given permission (URI, domain, webpage, address, etc.) */
52
+ invoker: string;
53
+ }
54
+ export interface InvokerPermission extends Permission {
55
+ /** Time at which the permission was granted */
56
+ date?: number;
18
57
  }
19
58
  export interface XyoHost {
20
59
  addChain(chainConnectionInfo: ChainConnection): Promisable<boolean>;
21
60
  chains(): Promisable<ChainConnection[]>;
22
- getPermissions(): Promisable<Permission[]>;
61
+ getPermissions(): Promisable<InvokerPermission[]>;
23
62
  requestPermissions(permissions: Permission[]): Promisable<boolean>;
24
63
  revokePermissions(permissions: Permission[]): Promisable<boolean>;
25
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XyoHost.d.ts","sourceRoot":"","sources":["../../../../src/provider/v1/XyoHost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,MAAM,WAAW,eAAe;IAE9B,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;IAEtB,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,UAAU;IAEzB,UAAU,EAAE,MAAM,CAAA;IAElB,KAAK,EAAE,OAAO,CAAA;IAEd,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,EAAE,EAAE,MAAM,CAAA;IAEV,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAE9B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,mBAAmB,EAAE,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnE,MAAM,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC,CAAA;IACvC,cAAc,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,CAAA;IAC1C,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAClE,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;CAClE"}
1
+ {"version":3,"file":"XyoHost.d.ts","sourceRoot":"","sources":["../../../../src/provider/v1/XyoHost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;IACtB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,UAAU,EAAE,MAAM,GAAG;QACpB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;KAChC,CAAA;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAA;IAClB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,YAAY,GAAG,kBAAkB,GAAG,WAAW,CAAA;AAEnF;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,qBAAqB;IACrB,IAAI,EAAE,WAAW,CAAA;IACjB,yGAAyG;IACzG,KAAK,EAAE,SAAS,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAA;IAClB,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;IACnB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,mBAAmB,EAAE,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnE,MAAM,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC,CAAA;IACvC,cAAc,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACjD,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAClE,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;CAClE"}