viem 2.16.1 → 2.16.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/_cjs/chains/definitions/dchain.js +27 -0
  3. package/_cjs/chains/definitions/dchain.js.map +1 -0
  4. package/_cjs/chains/definitions/dchainTestnet.js +29 -0
  5. package/_cjs/chains/definitions/dchainTestnet.js.map +1 -0
  6. package/_cjs/chains/index.js +9 -5
  7. package/_cjs/chains/index.js.map +1 -1
  8. package/_cjs/errors/version.js +1 -1
  9. package/_cjs/experimental/erc7715/actions/grantPermissions.js +94 -0
  10. package/_cjs/experimental/erc7715/actions/grantPermissions.js.map +1 -0
  11. package/_cjs/experimental/erc7715/decorators/erc7715.js +2 -2
  12. package/_cjs/experimental/erc7715/types/policy.js +3 -0
  13. package/_cjs/experimental/erc7715/types/policy.js.map +1 -0
  14. package/_cjs/experimental/index.js +3 -3
  15. package/_esm/chains/definitions/dchain.js +24 -0
  16. package/_esm/chains/definitions/dchain.js.map +1 -0
  17. package/_esm/chains/definitions/dchainTestnet.js +26 -0
  18. package/_esm/chains/definitions/dchainTestnet.js.map +1 -0
  19. package/_esm/chains/index.js +2 -0
  20. package/_esm/chains/index.js.map +1 -1
  21. package/_esm/errors/version.js +1 -1
  22. package/_esm/experimental/erc7715/actions/grantPermissions.js +130 -0
  23. package/_esm/experimental/erc7715/actions/grantPermissions.js.map +1 -0
  24. package/_esm/experimental/erc7715/decorators/erc7715.js +3 -3
  25. package/_esm/experimental/erc7715/types/policy.js +2 -0
  26. package/_esm/experimental/erc7715/types/policy.js.map +1 -0
  27. package/_esm/experimental/index.js +1 -1
  28. package/_types/chains/definitions/dchain.d.ts +1049 -0
  29. package/_types/chains/definitions/dchain.d.ts.map +1 -0
  30. package/_types/chains/definitions/dchainTestnet.d.ts +1049 -0
  31. package/_types/chains/definitions/dchainTestnet.d.ts.map +1 -0
  32. package/_types/chains/index.d.ts +2 -0
  33. package/_types/chains/index.d.ts.map +1 -1
  34. package/_types/errors/version.d.ts +1 -1
  35. package/_types/experimental/erc7715/actions/{issuePermissions.d.ts → grantPermissions.d.ts} +18 -16
  36. package/_types/experimental/erc7715/actions/{issuePermissions.d.ts.map → grantPermissions.d.ts.map} +1 -1
  37. package/_types/experimental/erc7715/decorators/erc7715.d.ts +5 -5
  38. package/_types/experimental/erc7715/types/permission.d.ts +24 -20
  39. package/_types/experimental/erc7715/types/permission.d.ts.map +1 -1
  40. package/_types/experimental/erc7715/types/policy.d.ts +36 -0
  41. package/_types/experimental/erc7715/types/policy.d.ts.map +1 -0
  42. package/_types/experimental/erc7715/types/signer.d.ts +5 -1
  43. package/_types/experimental/erc7715/types/signer.d.ts.map +1 -1
  44. package/_types/experimental/index.d.ts +1 -1
  45. package/_types/index.d.ts +1 -1
  46. package/_types/types/eip1193.d.ts +19 -10
  47. package/_types/types/eip1193.d.ts.map +1 -1
  48. package/chains/definitions/dchain.ts +24 -0
  49. package/chains/definitions/dchainTestnet.ts +27 -0
  50. package/chains/index.ts +2 -0
  51. package/errors/version.ts +1 -1
  52. package/experimental/erc7715/actions/{issuePermissions.ts → grantPermissions.ts} +82 -54
  53. package/experimental/erc7715/decorators/erc7715.ts +11 -11
  54. package/experimental/erc7715/types/permission.ts +28 -26
  55. package/experimental/erc7715/types/policy.ts +43 -0
  56. package/experimental/erc7715/types/signer.ts +8 -1
  57. package/experimental/index.ts +4 -4
  58. package/index.ts +2 -2
  59. package/package.json +1 -1
  60. package/types/eip1193.ts +19 -10
  61. package/_cjs/experimental/erc7715/actions/issuePermissions.js +0 -73
  62. package/_cjs/experimental/erc7715/actions/issuePermissions.js.map +0 -1
  63. package/_esm/experimental/erc7715/actions/issuePermissions.js +0 -107
  64. package/_esm/experimental/erc7715/actions/issuePermissions.js.map +0 -1
@@ -1,107 +0,0 @@
1
- import { numberToHex } from '../../../utils/encoding/toHex.js';
2
- /**
3
- * Request permissions from a wallet to perform actions on behalf of a user.
4
- *
5
- * - Docs: https://viem.sh/experimental/erc7715/issuePermissions
6
- *
7
- * @example
8
- * import { createWalletClient, custom } from 'viem'
9
- * import { mainnet } from 'viem/chains'
10
- * import { issuePermissions } from 'viem/experimental'
11
- *
12
- * const client = createWalletClient({
13
- * chain: mainnet,
14
- * transport: custom(window.ethereum),
15
- * })
16
- *
17
- * const result = await issuePermissions(client, {
18
- * expiry: 1716846083638,
19
- * permissions: [
20
- * {
21
- * type: 'contract-call',
22
- * data: {
23
- * address: '0x0000000000000000000000000000000000000000',
24
- * },
25
- * },
26
- * {
27
- * type: 'native-token-limit',
28
- * data: {
29
- * amount: 69420n,
30
- * },
31
- * required: true,
32
- * },
33
- * ],
34
- * })
35
- */
36
- export async function issuePermissions(client, parameters) {
37
- const { expiry, permissions, signer } = parameters;
38
- const result = await client.request({
39
- method: 'wallet_issuePermissions',
40
- params: [parseParameters({ expiry, permissions, signer })],
41
- }, { retryCount: 0 });
42
- return parseResult(result);
43
- }
44
- function parseParameters(parameters) {
45
- const { account, expiry, permissions, signer: signer_ } = parameters;
46
- const signer = (() => {
47
- if (!account && !signer_)
48
- return undefined;
49
- if (account) {
50
- // Address as signer.
51
- if (typeof account === 'string')
52
- return {
53
- type: 'account',
54
- data: {
55
- id: account,
56
- },
57
- };
58
- // Viem Account as signer.
59
- return {
60
- type: 'account',
61
- data: {
62
- id: account.address,
63
- },
64
- };
65
- }
66
- // ERC-7715 Signer as signer.
67
- return signer_;
68
- })();
69
- return {
70
- expiry,
71
- permissions: permissions.map((permission) => ({
72
- ...permission,
73
- ...(permission.data && typeof permission.data === 'object'
74
- ? {
75
- data: {
76
- ...permission.data,
77
- ...('amount' in permission.data &&
78
- typeof permission.data.amount === 'bigint'
79
- ? { amount: numberToHex(permission.data.amount) }
80
- : {}),
81
- },
82
- }
83
- : {}),
84
- required: permission.required ?? false,
85
- })),
86
- ...(signer ? { signer } : {}),
87
- };
88
- }
89
- function parseResult(result) {
90
- return {
91
- expiry: result.expiry,
92
- ...(result.factory ? { factory: result.factory } : {}),
93
- ...(result.factoryData ? { factoryData: result.factoryData } : {}),
94
- grantedPermissions: result.grantedPermissions.map((permission) => ({
95
- ...permission,
96
- data: {
97
- ...permission.data,
98
- ...('amount' in permission.data
99
- ? { amount: BigInt(permission.data.amount) }
100
- : {}),
101
- },
102
- })),
103
- permissionsContext: result.permissionsContext,
104
- ...(result.signerData ? { signerData: result.signerData } : {}),
105
- };
106
- }
107
- //# sourceMappingURL=issuePermissions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"issuePermissions.js","sourceRoot":"","sources":["../../../../experimental/erc7715/actions/issuePermissions.ts"],"names":[],"mappings":"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"}