viem 2.16.1 → 2.16.2
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +8 -0
- package/_cjs/chains/definitions/dchain.js +27 -0
- package/_cjs/chains/definitions/dchain.js.map +1 -0
- package/_cjs/chains/definitions/dchainTestnet.js +29 -0
- package/_cjs/chains/definitions/dchainTestnet.js.map +1 -0
- package/_cjs/chains/index.js +9 -5
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/experimental/erc7715/actions/grantPermissions.js +94 -0
- package/_cjs/experimental/erc7715/actions/grantPermissions.js.map +1 -0
- package/_cjs/experimental/erc7715/decorators/erc7715.js +2 -2
- package/_cjs/experimental/erc7715/types/policy.js +3 -0
- package/_cjs/experimental/erc7715/types/policy.js.map +1 -0
- package/_cjs/experimental/index.js +3 -3
- package/_esm/chains/definitions/dchain.js +24 -0
- package/_esm/chains/definitions/dchain.js.map +1 -0
- package/_esm/chains/definitions/dchainTestnet.js +26 -0
- package/_esm/chains/definitions/dchainTestnet.js.map +1 -0
- package/_esm/chains/index.js +2 -0
- package/_esm/chains/index.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/experimental/erc7715/actions/grantPermissions.js +130 -0
- package/_esm/experimental/erc7715/actions/grantPermissions.js.map +1 -0
- package/_esm/experimental/erc7715/decorators/erc7715.js +3 -3
- package/_esm/experimental/erc7715/types/policy.js +2 -0
- package/_esm/experimental/erc7715/types/policy.js.map +1 -0
- package/_esm/experimental/index.js +1 -1
- package/_types/chains/definitions/dchain.d.ts +1049 -0
- package/_types/chains/definitions/dchain.d.ts.map +1 -0
- package/_types/chains/definitions/dchainTestnet.d.ts +1049 -0
- package/_types/chains/definitions/dchainTestnet.d.ts.map +1 -0
- package/_types/chains/index.d.ts +2 -0
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/experimental/erc7715/actions/{issuePermissions.d.ts → grantPermissions.d.ts} +18 -16
- package/_types/experimental/erc7715/actions/{issuePermissions.d.ts.map → grantPermissions.d.ts.map} +1 -1
- package/_types/experimental/erc7715/decorators/erc7715.d.ts +5 -5
- package/_types/experimental/erc7715/types/permission.d.ts +24 -20
- package/_types/experimental/erc7715/types/permission.d.ts.map +1 -1
- package/_types/experimental/erc7715/types/policy.d.ts +36 -0
- package/_types/experimental/erc7715/types/policy.d.ts.map +1 -0
- package/_types/experimental/erc7715/types/signer.d.ts +5 -1
- package/_types/experimental/erc7715/types/signer.d.ts.map +1 -1
- package/_types/experimental/index.d.ts +1 -1
- package/_types/index.d.ts +1 -1
- package/_types/types/eip1193.d.ts +19 -10
- package/_types/types/eip1193.d.ts.map +1 -1
- package/chains/definitions/dchain.ts +24 -0
- package/chains/definitions/dchainTestnet.ts +27 -0
- package/chains/index.ts +2 -0
- package/errors/version.ts +1 -1
- package/experimental/erc7715/actions/{issuePermissions.ts → grantPermissions.ts} +82 -54
- package/experimental/erc7715/decorators/erc7715.ts +11 -11
- package/experimental/erc7715/types/permission.ts +28 -26
- package/experimental/erc7715/types/policy.ts +43 -0
- package/experimental/erc7715/types/signer.ts +8 -1
- package/experimental/index.ts +4 -4
- package/index.ts +2 -2
- package/package.json +1 -1
- package/types/eip1193.ts +19 -10
- package/_cjs/experimental/erc7715/actions/issuePermissions.js +0 -73
- package/_cjs/experimental/erc7715/actions/issuePermissions.js.map +0 -1
- package/_esm/experimental/erc7715/actions/issuePermissions.js +0 -107
- 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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"}
|