@nevermined-io/core-kit 0.4.6 → 0.5.1
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.
- package/dist/Instantiable.abstract.js +15 -13
- package/dist/Instantiable.abstract.js.map +1 -0
- package/dist/artifacts/generated.d.ts +174 -40
- package/dist/artifacts/generated.d.ts.map +1 -1
- package/dist/artifacts/generated.js +22805 -7111
- package/dist/artifacts/generated.js.map +1 -0
- package/dist/contracts/AccessManager.js +12 -3
- package/dist/contracts/AccessManager.js.map +1 -0
- package/dist/contracts/AssetRegistry.d.ts +1 -0
- package/dist/contracts/AssetRegistry.d.ts.map +1 -1
- package/dist/contracts/AssetRegistry.js +134 -69
- package/dist/contracts/AssetRegistry.js.map +1 -0
- package/dist/contracts/ContractBase.d.ts.map +1 -1
- package/dist/contracts/ContractBase.js +173 -140
- package/dist/contracts/ContractBase.js.map +1 -0
- package/dist/contracts/ContractsApi.js +6 -54
- package/dist/contracts/ContractsApi.js.map +1 -0
- package/dist/contracts/CryptoTemplateBase.js +23 -11
- package/dist/contracts/CryptoTemplateBase.js.map +1 -0
- package/dist/contracts/FiatPaymentTemplate.js +9 -1
- package/dist/contracts/FiatPaymentTemplate.js.map +1 -0
- package/dist/contracts/FiatSettlementCondition.js +8 -1
- package/dist/contracts/FiatSettlementCondition.js.map +1 -0
- package/dist/contracts/FixedPaymentTemplate.js +42 -10
- package/dist/contracts/FixedPaymentTemplate.js.map +1 -0
- package/dist/contracts/NFT1155Base.js +48 -12
- package/dist/contracts/NFT1155Base.js.map +1 -0
- package/dist/contracts/NFT1155Credits.js +2 -0
- package/dist/contracts/NFT1155Credits.js.map +1 -0
- package/dist/contracts/NFT1155ExpirableCredits.js +26 -6
- package/dist/contracts/NFT1155ExpirableCredits.js.map +1 -0
- package/dist/contracts/NVMConfig.js +2 -0
- package/dist/contracts/NVMConfig.js.map +1 -0
- package/dist/contracts/PayAsYouGoTemplate.js +36 -10
- package/dist/contracts/PayAsYouGoTemplate.js.map +1 -0
- package/dist/contracts/ProtocolStandardFees.js +7 -1
- package/dist/contracts/ProtocolStandardFees.js.map +1 -0
- package/dist/contracts/Roles.js +2 -0
- package/dist/contracts/Roles.js.map +1 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/errors/NeverminedErrors.js +27 -26
- package/dist/errors/NeverminedErrors.js.map +1 -0
- package/dist/errors/index.js +2 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/models/AgentX402AccessToken.js +78 -46
- package/dist/models/AgentX402AccessToken.js.map +1 -0
- package/dist/models/Logger.js +12 -12
- package/dist/models/Logger.js.map +1 -0
- package/dist/models/NeverminedOptions.d.ts +3 -3
- package/dist/models/NeverminedOptions.d.ts.map +1 -1
- package/dist/models/NeverminedOptions.js +3 -28
- package/dist/models/NeverminedOptions.js.map +1 -0
- package/dist/models/NvmApiKey.js +96 -147
- package/dist/models/NvmApiKey.js.map +1 -0
- package/dist/models/Transactions.js +3 -1
- package/dist/models/Transactions.js.map +1 -0
- package/dist/models/index.js +2 -0
- package/dist/models/index.js.map +1 -0
- package/dist/nevermined/Nevermined.js +20 -42
- package/dist/nevermined/Nevermined.js.map +1 -0
- package/dist/nevermined/api/PaymentsApi.js +38 -43
- package/dist/nevermined/api/PaymentsApi.js.map +1 -0
- package/dist/nevermined/api/ServicesApi.js +7 -15
- package/dist/nevermined/api/ServicesApi.js.map +1 -0
- package/dist/nevermined/api/UtilsApi.js +7 -19
- package/dist/nevermined/api/UtilsApi.js.map +1 -0
- package/dist/nevermined/index.js +2 -0
- package/dist/nevermined/index.js.map +1 -0
- package/dist/nevermined/utils/AgentUtils.js +25 -23
- package/dist/nevermined/utils/AgentUtils.js.map +1 -0
- package/dist/nevermined/utils/AnvilHelpers.js +34 -19
- package/dist/nevermined/utils/AnvilHelpers.js.map +1 -0
- package/dist/nevermined/utils/BlockchainViemUtils.d.ts +4 -4
- package/dist/nevermined/utils/BlockchainViemUtils.js +102 -108
- package/dist/nevermined/utils/BlockchainViemUtils.js.map +1 -0
- package/dist/nevermined/utils/JwtUtils.js +33 -28
- package/dist/nevermined/utils/JwtUtils.js.map +1 -0
- package/dist/nevermined/utils/SignatureUtils.js +23 -27
- package/dist/nevermined/utils/SignatureUtils.js.map +1 -0
- package/dist/nevermined/utils/WebServiceConnector.js +18 -20
- package/dist/nevermined/utils/WebServiceConnector.js.map +1 -0
- package/dist/nevermined/utils/ZeroDevPolicies.js +115 -75
- package/dist/nevermined/utils/ZeroDevPolicies.js.map +1 -0
- package/dist/nevermined/utils/index.js +2 -0
- package/dist/nevermined/utils/index.js.map +1 -0
- package/dist/services/Api.js +11 -5
- package/dist/services/Api.js.map +1 -0
- package/dist/services/Profiles.js +15 -20
- package/dist/services/Profiles.js.map +1 -0
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -0
- package/dist/utils/ConversionTypeHelpers.js +13 -6
- package/dist/utils/ConversionTypeHelpers.js.map +1 -0
- package/dist/utils/DeploymentInfo.js +12 -7
- package/dist/utils/DeploymentInfo.js.map +1 -0
- package/dist/utils/Network.js +27 -19
- package/dist/utils/Network.js.map +1 -0
- package/dist/utils/helpers.js +42 -31
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +17 -1
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
import { CallPolicyVersion, ParamCondition, toCallPolicy, toRateLimitPolicy, toTimestampPolicy
|
|
2
|
-
import { assetsRegistryConfig, fixedPaymentTemplateConfig, nft1155CreditsConfig, payAsYouGoTemplateAddress, payAsYouGoTemplateConfig
|
|
1
|
+
import { CallPolicyVersion, ParamCondition, toCallPolicy, toRateLimitPolicy, toTimestampPolicy } from '@zerodev/permissions/policies';
|
|
2
|
+
import { assetsRegistryConfig, fixedPaymentTemplateConfig, nft1155CreditsConfig, payAsYouGoTemplateAddress, payAsYouGoTemplateConfig } from '../../artifacts/generated.js';
|
|
3
3
|
import { isAddress, parseAbi, zeroAddress } from 'viem';
|
|
4
4
|
export function getPolicy(permissions) {
|
|
5
5
|
return toCallPolicy({
|
|
6
6
|
policyVersion: CallPolicyVersion.V0_0_4,
|
|
7
|
-
permissions
|
|
7
|
+
permissions
|
|
8
8
|
});
|
|
9
9
|
}
|
|
10
10
|
export function getPermissions(config, functionNames) {
|
|
11
11
|
const permissions = [];
|
|
12
|
-
functionNames.forEach((functionName)
|
|
13
|
-
const abis = config.abi.filter((item)
|
|
14
|
-
abis.forEach((abi)
|
|
12
|
+
functionNames.forEach((functionName)=>{
|
|
13
|
+
const abis = config.abi.filter((item)=>item.type === 'function' && item.name === functionName);
|
|
14
|
+
abis.forEach((abi)=>{
|
|
15
15
|
permissions.push({
|
|
16
16
|
target: config.address,
|
|
17
|
-
abi: [
|
|
18
|
-
|
|
17
|
+
abi: [
|
|
18
|
+
abi
|
|
19
|
+
],
|
|
20
|
+
functionName
|
|
19
21
|
});
|
|
20
22
|
});
|
|
21
23
|
});
|
|
@@ -25,84 +27,119 @@ export function getERC20ApprovePermissions(contractAddress) {
|
|
|
25
27
|
return {
|
|
26
28
|
target: contractAddress,
|
|
27
29
|
abi: parseAbi([
|
|
28
|
-
'function approve(address spender, uint256 amount) external returns (bool)'
|
|
30
|
+
'function approve(address spender, uint256 amount) external returns (bool)'
|
|
29
31
|
]),
|
|
30
|
-
functionName: 'approve'
|
|
32
|
+
functionName: 'approve'
|
|
31
33
|
};
|
|
32
34
|
}
|
|
33
|
-
export const getERC20ApprovePolicy = (contractAddress)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
export const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
export const
|
|
47
|
-
'register',
|
|
48
|
-
'createPlan',
|
|
49
|
-
'createPlanWithHooks',
|
|
50
|
-
'registerAgentAndPlan',
|
|
51
|
-
'addPlanToAgent',
|
|
52
|
-
'removePlanFromAgent',
|
|
53
|
-
]));
|
|
54
|
-
export const buildPolicy = (permissions, contractAddress) => {
|
|
35
|
+
export const getERC20ApprovePolicy = (contractAddress)=>getPolicy([
|
|
36
|
+
getERC20ApprovePermissions(contractAddress)
|
|
37
|
+
]);
|
|
38
|
+
export const getAgentRegistrationPolicy = ()=>getPolicy(getPermissions(assetsRegistryConfig, [
|
|
39
|
+
'register'
|
|
40
|
+
]));
|
|
41
|
+
export const getPricingPlanRegistrationPolicy = ()=>getPolicy(getPermissions(assetsRegistryConfig, [
|
|
42
|
+
'createPlan',
|
|
43
|
+
'createPlanWithHooks'
|
|
44
|
+
]));
|
|
45
|
+
export const getRegisterAssetsPolicy = ()=>getPolicy(getPermissions(assetsRegistryConfig, [
|
|
46
|
+
'registerAgentAndPlan'
|
|
47
|
+
]));
|
|
48
|
+
export const getOrderPolicy = ()=>{
|
|
55
49
|
const perms = [
|
|
56
|
-
...(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
'addPlanToAgent',
|
|
63
|
-
'removePlanFromAgent',
|
|
64
|
-
])
|
|
65
|
-
: []),
|
|
66
|
-
...(permissions.includes('mint') ? getPermissions(nft1155CreditsConfig, ['mint']) : []),
|
|
67
|
-
...(permissions.includes('burn') ? getPermissions(nft1155CreditsConfig, ['burn']) : []),
|
|
68
|
-
...(permissions.includes('order') ? getPermissions(fixedPaymentTemplateConfig, ['order']) : []),
|
|
69
|
-
...(permissions.includes('order') ? getPermissions(payAsYouGoTemplateConfig, ['order']) : []),
|
|
70
|
-
...(permissions.includes('order') ? [getERC20ApprovePermissions(contractAddress)] : []),
|
|
50
|
+
...getPermissions(fixedPaymentTemplateConfig, [
|
|
51
|
+
'order'
|
|
52
|
+
]),
|
|
53
|
+
...getPermissions(payAsYouGoTemplateAddress, [
|
|
54
|
+
'order'
|
|
55
|
+
])
|
|
71
56
|
];
|
|
72
57
|
return getPolicy(perms);
|
|
73
58
|
};
|
|
74
|
-
export const
|
|
75
|
-
|
|
59
|
+
export const getMintNFTPolicy = ()=>getPolicy(getPermissions(nft1155CreditsConfig, [
|
|
60
|
+
'mint'
|
|
61
|
+
]));
|
|
62
|
+
export const getBurnNFTPolicy = ()=>getPolicy(getPermissions(nft1155CreditsConfig, [
|
|
63
|
+
'burn'
|
|
64
|
+
]));
|
|
65
|
+
export const getRegisterPolicy = ()=>getPolicy(getPermissions(assetsRegistryConfig, [
|
|
76
66
|
'register',
|
|
77
67
|
'createPlan',
|
|
78
68
|
'createPlanWithHooks',
|
|
79
69
|
'registerAgentAndPlan',
|
|
80
70
|
'addPlanToAgent',
|
|
81
|
-
'removePlanFromAgent'
|
|
82
|
-
])
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
71
|
+
'removePlanFromAgent'
|
|
72
|
+
]));
|
|
73
|
+
export const buildPolicy = (permissions, contractAddress)=>{
|
|
74
|
+
const perms = [
|
|
75
|
+
...permissions.includes('register') ? getPermissions(assetsRegistryConfig, [
|
|
76
|
+
'register',
|
|
77
|
+
'createPlan',
|
|
78
|
+
'createPlanWithHooks',
|
|
79
|
+
'registerAgentAndPlan',
|
|
80
|
+
'addPlanToAgent',
|
|
81
|
+
'removePlanFromAgent'
|
|
82
|
+
]) : [],
|
|
83
|
+
...permissions.includes('mint') ? getPermissions(nft1155CreditsConfig, [
|
|
84
|
+
'mint'
|
|
85
|
+
]) : [],
|
|
86
|
+
...permissions.includes('burn') ? getPermissions(nft1155CreditsConfig, [
|
|
87
|
+
'burn'
|
|
88
|
+
]) : [],
|
|
89
|
+
...permissions.includes('order') ? getPermissions(fixedPaymentTemplateConfig, [
|
|
90
|
+
'order'
|
|
91
|
+
]) : [],
|
|
92
|
+
...permissions.includes('order') ? getPermissions(payAsYouGoTemplateConfig, [
|
|
93
|
+
'order'
|
|
94
|
+
]) : [],
|
|
95
|
+
...permissions.includes('order') ? [
|
|
96
|
+
getERC20ApprovePermissions(contractAddress)
|
|
97
|
+
] : []
|
|
98
|
+
];
|
|
99
|
+
return getPolicy(perms);
|
|
100
|
+
};
|
|
101
|
+
export const getAllContractsPolicy = (contractAddress)=>getPolicy([
|
|
102
|
+
...getPermissions(assetsRegistryConfig, [
|
|
103
|
+
'register',
|
|
104
|
+
'createPlan',
|
|
105
|
+
'createPlanWithHooks',
|
|
106
|
+
'registerAgentAndPlan',
|
|
107
|
+
'addPlanToAgent',
|
|
108
|
+
'removePlanFromAgent'
|
|
109
|
+
]),
|
|
110
|
+
...getPermissions(fixedPaymentTemplateConfig, [
|
|
111
|
+
'order'
|
|
112
|
+
]),
|
|
113
|
+
...getPermissions(payAsYouGoTemplateConfig, [
|
|
114
|
+
'order'
|
|
115
|
+
]),
|
|
116
|
+
...getPermissions(nft1155CreditsConfig, [
|
|
117
|
+
'mint',
|
|
118
|
+
'burn'
|
|
119
|
+
]),
|
|
120
|
+
getERC20ApprovePermissions(contractAddress)
|
|
121
|
+
].filter(Boolean));
|
|
122
|
+
export const getZeroDevOrderPolicies = (orderPolicyOptions)=>{
|
|
89
123
|
const policies = [];
|
|
90
|
-
const orderPermissions = orderPolicyOptions.contracts.map((contract)
|
|
124
|
+
const orderPermissions = orderPolicyOptions.contracts.map((contract)=>{
|
|
91
125
|
if (contract.isPayAsYouGo) {
|
|
92
126
|
return {
|
|
93
127
|
target: contract.address,
|
|
94
128
|
abi: parseAbi([
|
|
95
|
-
'function order(bytes32 _seed, uint256 _planId, bytes[] memory _params) external payable'
|
|
129
|
+
'function order(bytes32 _seed, uint256 _planId, bytes[] memory _params) external payable'
|
|
96
130
|
]),
|
|
97
131
|
valueLimit: 0n,
|
|
98
132
|
functionName: 'order',
|
|
99
|
-
args: [
|
|
133
|
+
args: [
|
|
134
|
+
null,
|
|
135
|
+
null
|
|
136
|
+
]
|
|
100
137
|
};
|
|
101
138
|
}
|
|
102
139
|
return {
|
|
103
140
|
target: contract.address,
|
|
104
141
|
abi: parseAbi([
|
|
105
|
-
'function order(bytes32 _seed, uint256 _planId, address _creditsReceiver, uint256 _numberOfPurchases, bytes[] memory _params) external payable'
|
|
142
|
+
'function order(bytes32 _seed, uint256 _planId, address _creditsReceiver, uint256 _numberOfPurchases, bytes[] memory _params) external payable'
|
|
106
143
|
]),
|
|
107
144
|
valueLimit: 0n,
|
|
108
145
|
functionName: 'order',
|
|
@@ -111,49 +148,52 @@ export const getZeroDevOrderPolicies = (orderPolicyOptions) => {
|
|
|
111
148
|
null,
|
|
112
149
|
{
|
|
113
150
|
condition: ParamCondition.EQUAL,
|
|
114
|
-
value: orderPolicyOptions.subscriberAddress
|
|
151
|
+
value: orderPolicyOptions.subscriberAddress
|
|
115
152
|
},
|
|
116
153
|
{
|
|
117
154
|
condition: ParamCondition.EQUAL,
|
|
118
|
-
value: orderPolicyOptions.numberOfPurchases
|
|
119
|
-
}
|
|
120
|
-
]
|
|
155
|
+
value: orderPolicyOptions.numberOfPurchases
|
|
156
|
+
}
|
|
157
|
+
]
|
|
121
158
|
};
|
|
122
159
|
});
|
|
123
|
-
const callPermissions = [
|
|
124
|
-
|
|
125
|
-
|
|
160
|
+
const callPermissions = [
|
|
161
|
+
...orderPermissions
|
|
162
|
+
];
|
|
163
|
+
if (orderPolicyOptions.erc20ContractAddress && isAddress(orderPolicyOptions.erc20ContractAddress)) {
|
|
126
164
|
callPermissions.push({
|
|
127
165
|
target: orderPolicyOptions.erc20ContractAddress,
|
|
128
166
|
abi: parseAbi([
|
|
129
|
-
'function approve(address spender, uint256 amount) external returns (bool)'
|
|
167
|
+
'function approve(address spender, uint256 amount) external returns (bool)'
|
|
130
168
|
]),
|
|
131
169
|
valueLimit: 0n,
|
|
132
170
|
functionName: 'approve',
|
|
133
171
|
args: [
|
|
134
172
|
{
|
|
135
173
|
condition: ParamCondition.NOT_EQUAL,
|
|
136
|
-
value: zeroAddress
|
|
174
|
+
value: zeroAddress
|
|
137
175
|
},
|
|
138
176
|
{
|
|
139
177
|
condition: ParamCondition.LESS_THAN_OR_EQUAL,
|
|
140
|
-
value: orderPolicyOptions.totalAmount
|
|
141
|
-
}
|
|
142
|
-
]
|
|
178
|
+
value: orderPolicyOptions.totalAmount
|
|
179
|
+
}
|
|
180
|
+
]
|
|
143
181
|
});
|
|
144
182
|
}
|
|
145
183
|
policies.push(getPolicy(callPermissions));
|
|
146
184
|
if (orderPolicyOptions.count) {
|
|
147
185
|
const rateLimitPolicy = toRateLimitPolicy({
|
|
148
|
-
count: orderPolicyOptions.count
|
|
186
|
+
count: orderPolicyOptions.count
|
|
149
187
|
});
|
|
150
188
|
policies.push(rateLimitPolicy);
|
|
151
189
|
}
|
|
152
190
|
if (orderPolicyOptions.validUntil) {
|
|
153
191
|
const timestampPolicy = toTimestampPolicy({
|
|
154
|
-
validUntil: orderPolicyOptions.validUntil
|
|
192
|
+
validUntil: orderPolicyOptions.validUntil
|
|
155
193
|
});
|
|
156
194
|
policies.push(timestampPolicy);
|
|
157
195
|
}
|
|
158
196
|
return policies;
|
|
159
197
|
};
|
|
198
|
+
|
|
199
|
+
//# sourceMappingURL=ZeroDevPolicies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/nevermined/utils/ZeroDevPolicies.ts"],"sourcesContent":["import {\n CallPolicyVersion,\n ParamCondition,\n toCallPolicy,\n toRateLimitPolicy,\n toTimestampPolicy,\n} from '@zerodev/permissions/policies'\nimport {\n assetsRegistryConfig,\n fixedPaymentTemplateConfig,\n nft1155CreditsConfig,\n payAsYouGoTemplateAddress,\n payAsYouGoTemplateConfig,\n} from '../../artifacts/generated.js'\nimport { Abi, isAddress, parseAbi, zeroAddress } from 'viem'\nimport { Policy } from '@zerodev/permissions'\n\nexport function getPolicy(permissions: any[]) {\n return toCallPolicy({\n policyVersion: CallPolicyVersion.V0_0_4,\n permissions,\n })\n}\n\nexport function getPermissions(config: any, functionNames: string[]) {\n const permissions: any[] = []\n functionNames.forEach((functionName) => {\n const abis = config.abi.filter(\n (item: any) => item.type === 'function' && item.name === functionName,\n )\n abis.forEach((abi: any) => {\n permissions.push({\n target: config.address,\n abi: [abi],\n functionName,\n })\n })\n })\n return permissions\n}\n\nexport function getERC20ApprovePermissions(contractAddress: `0x${string}`) {\n return {\n target: contractAddress,\n abi: parseAbi([\n 'function approve(address spender, uint256 amount) external returns (bool)',\n ]) as Abi,\n functionName: 'approve',\n }\n}\nexport const getERC20ApprovePolicy = (contractAddress: `0x${string}`) =>\n getPolicy([getERC20ApprovePermissions(contractAddress)])\n\nexport const getAgentRegistrationPolicy = () =>\n getPolicy(getPermissions(assetsRegistryConfig, ['register']))\n\nexport const getPricingPlanRegistrationPolicy = () =>\n getPolicy(getPermissions(assetsRegistryConfig, ['createPlan', 'createPlanWithHooks']))\n\nexport const getRegisterAssetsPolicy = () =>\n getPolicy(getPermissions(assetsRegistryConfig, ['registerAgentAndPlan']))\n\nexport const getOrderPolicy = () => {\n const perms = [\n ...getPermissions(fixedPaymentTemplateConfig, ['order']),\n ...getPermissions(payAsYouGoTemplateAddress, ['order']),\n ]\n return getPolicy(perms)\n}\n\nexport const getMintNFTPolicy = () => getPolicy(getPermissions(nft1155CreditsConfig, ['mint']))\n\nexport const getBurnNFTPolicy = () => getPolicy(getPermissions(nft1155CreditsConfig, ['burn']))\n\nexport const getRegisterPolicy = () =>\n getPolicy(\n getPermissions(assetsRegistryConfig, [\n 'register',\n 'createPlan',\n 'createPlanWithHooks',\n 'registerAgentAndPlan',\n 'addPlanToAgent',\n 'removePlanFromAgent',\n ]),\n )\n\nexport const buildPolicy = (permissions: string[], contractAddress: `0x${string}`) => {\n const perms = [\n ...(permissions.includes('register')\n ? getPermissions(assetsRegistryConfig, [\n 'register',\n 'createPlan',\n 'createPlanWithHooks',\n 'registerAgentAndPlan',\n 'addPlanToAgent',\n 'removePlanFromAgent',\n ])\n : []),\n ...(permissions.includes('mint') ? getPermissions(nft1155CreditsConfig, ['mint']) : []),\n ...(permissions.includes('burn') ? getPermissions(nft1155CreditsConfig, ['burn']) : []),\n ...(permissions.includes('order') ? getPermissions(fixedPaymentTemplateConfig, ['order']) : []),\n ...(permissions.includes('order') ? getPermissions(payAsYouGoTemplateConfig, ['order']) : []),\n ...(permissions.includes('order') ? [getERC20ApprovePermissions(contractAddress)] : []),\n ]\n\n return getPolicy(perms)\n}\n\nexport const getAllContractsPolicy = (contractAddress: `0x${string}`) =>\n getPolicy(\n [\n ...getPermissions(assetsRegistryConfig, [\n 'register',\n 'createPlan',\n 'createPlanWithHooks',\n 'registerAgentAndPlan',\n 'addPlanToAgent',\n 'removePlanFromAgent',\n ]),\n ...getPermissions(fixedPaymentTemplateConfig, ['order']),\n ...getPermissions(payAsYouGoTemplateConfig, ['order']),\n ...getPermissions(nft1155CreditsConfig, ['mint', 'burn']),\n getERC20ApprovePermissions(contractAddress),\n ].filter(Boolean),\n )\n\nexport type OrderContract = {\n address: `0x${string}`\n isPayAsYouGo: boolean\n}\n\nexport type OrderPolicyOptions = {\n contracts: OrderContract[]\n subscriberAddress: `0x${string}`\n numberOfPurchases: bigint\n totalAmount: bigint\n count?: number\n erc20ContractAddress?: `0x${string}`\n validUntil?: number\n}\n\nexport const getZeroDevOrderPolicies = (orderPolicyOptions: OrderPolicyOptions): Policy[] => {\n const policies: Policy[] = []\n\n const orderPermissions = orderPolicyOptions.contracts.map((contract) => {\n if (contract.isPayAsYouGo) {\n return {\n target: contract.address,\n abi: parseAbi([\n 'function order(bytes32 _seed, uint256 _planId, bytes[] memory _params) external payable',\n ]) as Abi,\n valueLimit: 0n,\n functionName: 'order',\n args: [null, null],\n }\n }\n return {\n target: contract.address,\n abi: parseAbi([\n 'function order(bytes32 _seed, uint256 _planId, address _creditsReceiver, uint256 _numberOfPurchases, bytes[] memory _params) external payable',\n ]) as Abi,\n valueLimit: 0n,\n functionName: 'order',\n args: [\n null,\n null,\n {\n condition: ParamCondition.EQUAL,\n value: orderPolicyOptions.subscriberAddress,\n },\n {\n condition: ParamCondition.EQUAL,\n value: orderPolicyOptions.numberOfPurchases,\n },\n ],\n }\n })\n\n const callPermissions: any[] = [...orderPermissions]\n\n if (\n orderPolicyOptions.erc20ContractAddress &&\n isAddress(orderPolicyOptions.erc20ContractAddress)\n ) {\n callPermissions.push({\n target: orderPolicyOptions.erc20ContractAddress,\n abi: parseAbi([\n 'function approve(address spender, uint256 amount) external returns (bool)',\n ]) as Abi,\n valueLimit: 0n,\n functionName: 'approve',\n args: [\n {\n condition: ParamCondition.NOT_EQUAL,\n value: zeroAddress,\n },\n {\n condition: ParamCondition.LESS_THAN_OR_EQUAL,\n value: orderPolicyOptions.totalAmount,\n },\n ],\n })\n }\n\n policies.push(getPolicy(callPermissions))\n\n if (orderPolicyOptions.count) {\n const rateLimitPolicy = toRateLimitPolicy({\n count: orderPolicyOptions.count,\n })\n policies.push(rateLimitPolicy)\n }\n\n if (orderPolicyOptions.validUntil) {\n const timestampPolicy = toTimestampPolicy({\n validUntil: orderPolicyOptions.validUntil,\n })\n policies.push(timestampPolicy)\n }\n\n return policies\n}\n"],"names":["CallPolicyVersion","ParamCondition","toCallPolicy","toRateLimitPolicy","toTimestampPolicy","assetsRegistryConfig","fixedPaymentTemplateConfig","nft1155CreditsConfig","payAsYouGoTemplateAddress","payAsYouGoTemplateConfig","isAddress","parseAbi","zeroAddress","getPolicy","permissions","policyVersion","V0_0_4","getPermissions","config","functionNames","forEach","functionName","abis","abi","filter","item","type","name","push","target","address","getERC20ApprovePermissions","contractAddress","getERC20ApprovePolicy","getAgentRegistrationPolicy","getPricingPlanRegistrationPolicy","getRegisterAssetsPolicy","getOrderPolicy","perms","getMintNFTPolicy","getBurnNFTPolicy","getRegisterPolicy","buildPolicy","includes","getAllContractsPolicy","Boolean","getZeroDevOrderPolicies","orderPolicyOptions","policies","orderPermissions","contracts","map","contract","isPayAsYouGo","valueLimit","args","condition","EQUAL","value","subscriberAddress","numberOfPurchases","callPermissions","erc20ContractAddress","NOT_EQUAL","LESS_THAN_OR_EQUAL","totalAmount","count","rateLimitPolicy","validUntil","timestampPolicy"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/nevermined/utils/index.ts"],"sourcesContent":["export * from './AnvilHelpers.js'\nexport * from './BlockchainViemUtils.js'\nexport * from './JwtUtils.js'\nexport * from './SignatureUtils.js'\nexport * from './WebServiceConnector.js'\nexport * from './ZeroDevPolicies.js'\nexport * from './AgentUtils.js'\n"],"names":[],"mappings":"AAAA,cAAc,oBAAmB;AACjC,cAAc,2BAA0B;AACxC,cAAc,gBAAe;AAC7B,cAAc,sBAAqB;AACnC,cAAc,2BAA0B;AACxC,cAAc,uBAAsB;AACpC,cAAc,kBAAiB"}
|
package/dist/services/Api.js
CHANGED
|
@@ -2,7 +2,7 @@ import { Instantiable } from '../Instantiable.abstract.js';
|
|
|
2
2
|
import { ApiError, HttpError } from '../errors/NeverminedErrors.js';
|
|
3
3
|
const authPath = '/api/v1/api-keys';
|
|
4
4
|
export class Api extends Instantiable {
|
|
5
|
-
constructor(config)
|
|
5
|
+
constructor(config){
|
|
6
6
|
super();
|
|
7
7
|
this.setInstanceConfig(config);
|
|
8
8
|
}
|
|
@@ -13,17 +13,23 @@ export class Api extends Instantiable {
|
|
|
13
13
|
try {
|
|
14
14
|
const response = await fetch(`${this.url}${authPath}/register-key`, {
|
|
15
15
|
method: 'POST',
|
|
16
|
-
headers: {
|
|
17
|
-
|
|
16
|
+
headers: {
|
|
17
|
+
'Content-Type': 'application/json'
|
|
18
|
+
},
|
|
19
|
+
body: JSON.stringify({
|
|
20
|
+
nvmKey: sessionKey,
|
|
21
|
+
clientAssertion
|
|
22
|
+
})
|
|
18
23
|
});
|
|
19
24
|
if (!response.ok) {
|
|
20
25
|
throw new HttpError(`Error Login - ${response.statusText} ${response.url}`, response.status);
|
|
21
26
|
}
|
|
22
27
|
const backendAuthToken = (await response.json()).hash;
|
|
23
28
|
return backendAuthToken;
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
29
|
+
} catch (error) {
|
|
26
30
|
throw new ApiError(error instanceof Error ? error.message : String(error));
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
}
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=Api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/Api.ts"],"sourcesContent":["import { Instantiable, InstantiableConfig } from '../Instantiable.abstract.js'\nimport { ApiError, HttpError } from '../errors/NeverminedErrors.js'\n\nconst authPath = '/api/v1/api-keys'\n\nexport class Api extends Instantiable {\n constructor(config: InstantiableConfig) {\n super()\n this.setInstanceConfig(config)\n }\n\n protected get url() {\n return this.config.backendUrl\n }\n\n public async validateAssertion(clientAssertion: string, sessionKey?: string): Promise<string> {\n try {\n const response = await fetch(`${this.url}${authPath}/register-key`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ nvmKey: sessionKey, clientAssertion }),\n })\n\n if (!response.ok) {\n throw new HttpError(`Error Login - ${response.statusText} ${response.url}`, response.status)\n }\n\n const backendAuthToken = (await response.json()).hash\n\n return backendAuthToken as string\n } catch (error) {\n throw new ApiError(error instanceof Error ? error.message : String(error))\n }\n }\n}\n"],"names":["Instantiable","ApiError","HttpError","authPath","Api","config","setInstanceConfig","url","backendUrl","validateAssertion","clientAssertion","sessionKey","response","fetch","method","headers","body","JSON","stringify","nvmKey","ok","statusText","status","backendAuthToken","json","hash","error","Error","message","String"],"mappings":"AAAA,SAASA,YAAY,QAA4B,8BAA6B;AAC9E,SAASC,QAAQ,EAAEC,SAAS,QAAQ,gCAA+B;AAEnE,MAAMC,WAAW;AAEjB,OAAO,MAAMC,YAAYJ;IACvB,YAAYK,MAA0B,CAAE;QACtC,KAAK;QACL,IAAI,CAACC,iBAAiB,CAACD;IACzB;IAEA,IAAcE,MAAM;QAClB,OAAO,IAAI,CAACF,MAAM,CAACG,UAAU;IAC/B;IAEA,MAAaC,kBAAkBC,eAAuB,EAAEC,UAAmB,EAAmB;QAC5F,IAAI;YACF,MAAMC,WAAW,MAAMC,MAAM,GAAG,IAAI,CAACN,GAAG,GAAGJ,SAAS,aAAa,CAAC,EAAE;gBAClEW,QAAQ;gBACRC,SAAS;oBAAE,gBAAgB;gBAAmB;gBAC9CC,MAAMC,KAAKC,SAAS,CAAC;oBAAEC,QAAQR;oBAAYD;gBAAgB;YAC7D;YAEA,IAAI,CAACE,SAASQ,EAAE,EAAE;gBAChB,MAAM,IAAIlB,UAAU,CAAC,cAAc,EAAEU,SAASS,UAAU,CAAC,CAAC,EAAET,SAASL,GAAG,EAAE,EAAEK,SAASU,MAAM;YAC7F;YAEA,MAAMC,mBAAmB,AAAC,CAAA,MAAMX,SAASY,IAAI,EAAC,EAAGC,IAAI;YAErD,OAAOF;QACT,EAAE,OAAOG,OAAO;YACd,MAAM,IAAIzB,SAASyB,iBAAiBC,QAAQD,MAAME,OAAO,GAAGC,OAAOH;QACrE;IACF;AACF"}
|
|
@@ -3,38 +3,34 @@ import { Api } from './Api.js';
|
|
|
3
3
|
const profilePath = '/api/v1/metadata/profiles';
|
|
4
4
|
export class Profiles extends Api {
|
|
5
5
|
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
async create(newProfile, backendAuthToken) {
|
|
6
|
+
* Create user profile
|
|
7
|
+
*/ async create(newProfile, backendAuthToken) {
|
|
9
8
|
const fullUrl = `${this.url}${profilePath}`;
|
|
10
9
|
try {
|
|
11
10
|
const response = await this.nevermined.utils.fetch.post(fullUrl, JSON.stringify(newProfile), {
|
|
12
|
-
Authorization: `Bearer ${backendAuthToken}
|
|
11
|
+
Authorization: `Bearer ${backendAuthToken}`
|
|
13
12
|
});
|
|
14
13
|
if (response.ok) {
|
|
15
14
|
return response.json();
|
|
16
15
|
}
|
|
17
16
|
throw new HttpError(`Create profile fail - ${response.statusText} ${response.url}`, response.status);
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
17
|
+
} catch (error) {
|
|
20
18
|
throw new ApiError(error instanceof Error ? error.message : String(error));
|
|
21
19
|
}
|
|
22
20
|
}
|
|
23
21
|
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
async update(userId, profile, backendAuthToken) {
|
|
22
|
+
* Update user profile
|
|
23
|
+
*/ async update(userId, profile, backendAuthToken) {
|
|
27
24
|
const fullUrl = `${this.url}${profilePath}/${userId}`;
|
|
28
25
|
try {
|
|
29
26
|
const response = await this.nevermined.utils.fetch.put(fullUrl, JSON.stringify(profile), {
|
|
30
|
-
Authorization: `Bearer ${backendAuthToken}
|
|
27
|
+
Authorization: `Bearer ${backendAuthToken}`
|
|
31
28
|
});
|
|
32
29
|
if (response.ok) {
|
|
33
30
|
return response.json();
|
|
34
31
|
}
|
|
35
32
|
throw new HttpError(`Update profile fail - ${response.statusText} ${response.url}`, response.status);
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
33
|
+
} catch (error) {
|
|
38
34
|
throw new ApiError(error instanceof Error ? error.message : String(error));
|
|
39
35
|
}
|
|
40
36
|
}
|
|
@@ -42,14 +38,13 @@ export class Profiles extends Api {
|
|
|
42
38
|
const fullUrl = `${this.url}${profilePath}/${userId}`;
|
|
43
39
|
try {
|
|
44
40
|
const response = await this.nevermined.utils.fetch.get(fullUrl, {
|
|
45
|
-
Authorization: `Bearer ${backendAuthToken}
|
|
41
|
+
Authorization: `Bearer ${backendAuthToken}`
|
|
46
42
|
});
|
|
47
43
|
if (response.ok) {
|
|
48
44
|
return response.json();
|
|
49
45
|
}
|
|
50
46
|
throw new HttpError(`Find profile with userId ${userId} fail - ${response.statusText} ${response.url}`, response.status);
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
47
|
+
} catch (error) {
|
|
53
48
|
throw new ApiError(error instanceof Error ? error.message : String(error));
|
|
54
49
|
}
|
|
55
50
|
}
|
|
@@ -61,8 +56,7 @@ export class Profiles extends Api {
|
|
|
61
56
|
return response.json();
|
|
62
57
|
}
|
|
63
58
|
throw new HttpError(`Find profile with address ${address} fail - ${response.statusText} ${response.url}`, response.status);
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
59
|
+
} catch (error) {
|
|
66
60
|
throw new ApiError(error instanceof Error ? error.message : String(error));
|
|
67
61
|
}
|
|
68
62
|
}
|
|
@@ -70,15 +64,16 @@ export class Profiles extends Api {
|
|
|
70
64
|
const fullUrl = `${this.url}${profilePath}/${userId}`;
|
|
71
65
|
try {
|
|
72
66
|
const response = await this.nevermined.utils.fetch.delete(fullUrl, undefined, {
|
|
73
|
-
Authorization: `Bearer ${backendAuthToken}
|
|
67
|
+
Authorization: `Bearer ${backendAuthToken}`
|
|
74
68
|
});
|
|
75
69
|
if (response.ok) {
|
|
76
70
|
return response.json();
|
|
77
71
|
}
|
|
78
72
|
throw new HttpError(`Disable profile with userId ${userId} fail - ${response.statusText} ${response.url}`, response.status);
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
73
|
+
} catch (error) {
|
|
81
74
|
throw new ApiError(error instanceof Error ? error.message : String(error));
|
|
82
75
|
}
|
|
83
76
|
}
|
|
84
77
|
}
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=Profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/Profiles.ts"],"sourcesContent":["import { NewProfile, Profile, ReducedProfile } from '@nevermined-io/commons'\nimport { ApiError, HttpError } from '../errors/NeverminedErrors.js'\nimport { Api } from './Api.js'\n\nconst profilePath = '/api/v1/metadata/profiles'\n\nexport class Profiles extends Api {\n /**\n * Create user profile\n */\n public async create(newProfile: NewProfile, backendAuthToken: string): Promise<Profile> {\n const fullUrl = `${this.url}${profilePath}`\n try {\n const response = await this.nevermined.utils.fetch.post(fullUrl, JSON.stringify(newProfile), {\n Authorization: `Bearer ${backendAuthToken}`,\n })\n\n if (response.ok) {\n return response.json() as Promise<Profile>\n }\n\n throw new HttpError(\n `Create profile fail - ${response.statusText} ${response.url}`,\n response.status,\n )\n } catch (error) {\n throw new ApiError(error instanceof Error ? error.message : String(error))\n }\n }\n\n /**\n * Update user profile\n */\n public async update(\n userId: string,\n profile: Partial<NewProfile>,\n backendAuthToken: string,\n ): Promise<Profile> {\n const fullUrl = `${this.url}${profilePath}/${userId}`\n\n try {\n const response = await this.nevermined.utils.fetch.put(fullUrl, JSON.stringify(profile), {\n Authorization: `Bearer ${backendAuthToken}`,\n })\n\n if (response.ok) {\n return response.json() as Promise<Profile>\n }\n\n throw new HttpError(\n `Update profile fail - ${response.statusText} ${response.url}`,\n response.status,\n )\n } catch (error) {\n throw new ApiError(error instanceof Error ? error.message : String(error))\n }\n }\n\n public async findOneByUserId(userId: string, backendAuthToken: string): Promise<Profile> {\n const fullUrl = `${this.url}${profilePath}/${userId}`\n\n try {\n const response = await this.nevermined.utils.fetch.get(fullUrl, {\n Authorization: `Bearer ${backendAuthToken}`,\n })\n\n if (response.ok) {\n return response.json() as Promise<Profile>\n }\n\n throw new HttpError(\n `Find profile with userId ${userId} fail - ${response.statusText} ${response.url}`,\n response.status,\n )\n } catch (error) {\n throw new ApiError(error instanceof Error ? error.message : String(error))\n }\n }\n\n public async findOneByAddress(address: string): Promise<ReducedProfile> {\n const fullUrl = `${this.url}${profilePath}/address/${address}`\n\n try {\n const response = await this.nevermined.utils.fetch.get(fullUrl)\n\n if (response.ok) {\n return response.json() as Promise<ReducedProfile>\n }\n\n throw new HttpError(\n `Find profile with address ${address} fail - ${response.statusText} ${response.url}`,\n response.status,\n )\n } catch (error) {\n throw new ApiError(error instanceof Error ? error.message : String(error))\n }\n }\n\n public async disableOneByUserId(userId: string, backendAuthToken: string): Promise<Profile> {\n const fullUrl = `${this.url}${profilePath}/${userId}`\n\n try {\n const response = await this.nevermined.utils.fetch.delete(fullUrl, undefined, {\n Authorization: `Bearer ${backendAuthToken}`,\n })\n\n if (response.ok) {\n return response.json() as Promise<Profile>\n }\n\n throw new HttpError(\n `Disable profile with userId ${userId} fail - ${response.statusText} ${response.url}`,\n response.status,\n )\n } catch (error) {\n throw new ApiError(error instanceof Error ? error.message : String(error))\n }\n }\n}\n"],"names":["ApiError","HttpError","Api","profilePath","Profiles","create","newProfile","backendAuthToken","fullUrl","url","response","nevermined","utils","fetch","post","JSON","stringify","Authorization","ok","json","statusText","status","error","Error","message","String","update","userId","profile","put","findOneByUserId","get","findOneByAddress","address","disableOneByUserId","delete","undefined"],"mappings":"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"}
|
package/dist/services/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/index.ts"],"sourcesContent":["export * from './Api.js'\nexport * from './Profiles.js'\n"],"names":[],"mappings":"AAAA,cAAc,WAAU;AACxB,cAAc,gBAAe"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LoggerInstance } from '../models/Logger.js';
|
|
2
2
|
// Ox transformer
|
|
3
|
-
export const zeroX = (input)
|
|
4
|
-
export const noZeroX = (input)
|
|
3
|
+
export const zeroX = (input)=>zeroXTransformer(input, true);
|
|
4
|
+
export const noZeroX = (input)=>zeroXTransformer(input, false);
|
|
5
5
|
export function zeroXTransformer(input = '', zeroOutput) {
|
|
6
6
|
const { valid, output } = inputMatch(input, /^(?:0x)*([a-f0-9]+)$/i, 'zeroXTransformer');
|
|
7
7
|
return (zeroOutput && valid ? '0x' : '') + output;
|
|
@@ -9,8 +9,7 @@ export function zeroXTransformer(input = '', zeroOutput) {
|
|
|
9
9
|
export function toAgentId(input) {
|
|
10
10
|
if (typeof input === 'bigint') {
|
|
11
11
|
return input;
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
12
|
+
} else {
|
|
14
13
|
return BigInt(input);
|
|
15
14
|
}
|
|
16
15
|
}
|
|
@@ -24,7 +23,15 @@ function inputMatch(input, regexp, conversorName) {
|
|
|
24
23
|
const match = input.match(regexp);
|
|
25
24
|
if (!match) {
|
|
26
25
|
LoggerInstance().debug(`[${conversorName}] Input transformation failed for input ${input}.`);
|
|
27
|
-
return {
|
|
26
|
+
return {
|
|
27
|
+
valid: false,
|
|
28
|
+
output: input
|
|
29
|
+
};
|
|
28
30
|
}
|
|
29
|
-
return {
|
|
31
|
+
return {
|
|
32
|
+
valid: true,
|
|
33
|
+
output: match[1]
|
|
34
|
+
};
|
|
30
35
|
}
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=ConversionTypeHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/ConversionTypeHelpers.ts"],"sourcesContent":["import { LoggerInstance } from '../models/Logger.js'\n\n// Ox transformer\nexport const zeroX = (input: string) => zeroXTransformer(input, true) as `0x${string}`\nexport const noZeroX = (input: string) => zeroXTransformer(input, false)\n\nexport function zeroXTransformer(input = '', zeroOutput: boolean) {\n const { valid, output } = inputMatch(input, /^(?:0x)*([a-f0-9]+)$/i, 'zeroXTransformer')\n return (zeroOutput && valid ? '0x' : '') + output\n}\n\nexport function toAgentId(input: string | bigint): bigint {\n if (typeof input === 'bigint') {\n return input\n } else {\n return BigInt(input)\n }\n}\n// Shared functions\nfunction inputMatch(\n input: string,\n regexp: RegExp,\n conversorName: string,\n): { valid: boolean; output: string } {\n if (typeof input !== 'string') {\n LoggerInstance().debug('Not input string:')\n LoggerInstance().debug(input)\n throw new Error(`[${conversorName}] Expected string, input type: ${typeof input}`)\n }\n const match = input.match(regexp)\n if (!match) {\n LoggerInstance().debug(`[${conversorName}] Input transformation failed for input ${input}.`)\n return { valid: false, output: input }\n }\n return { valid: true, output: match[1] }\n}\n"],"names":["LoggerInstance","zeroX","input","zeroXTransformer","noZeroX","zeroOutput","valid","output","inputMatch","toAgentId","BigInt","regexp","conversorName","debug","Error","match"],"mappings":"AAAA,SAASA,cAAc,QAAQ,sBAAqB;AAEpD,iBAAiB;AACjB,OAAO,MAAMC,QAAQ,CAACC,QAAkBC,iBAAiBD,OAAO,MAAsB;AACtF,OAAO,MAAME,UAAU,CAACF,QAAkBC,iBAAiBD,OAAO,OAAM;AAExE,OAAO,SAASC,iBAAiBD,QAAQ,EAAE,EAAEG,UAAmB;IAC9D,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAE,GAAGC,WAAWN,OAAO,yBAAyB;IACrE,OAAO,AAACG,CAAAA,cAAcC,QAAQ,OAAO,EAAC,IAAKC;AAC7C;AAEA,OAAO,SAASE,UAAUP,KAAsB;IAC9C,IAAI,OAAOA,UAAU,UAAU;QAC7B,OAAOA;IACT,OAAO;QACL,OAAOQ,OAAOR;IAChB;AACF;AACA,mBAAmB;AACnB,SAASM,WACPN,KAAa,EACbS,MAAc,EACdC,aAAqB;IAErB,IAAI,OAAOV,UAAU,UAAU;QAC7BF,iBAAiBa,KAAK,CAAC;QACvBb,iBAAiBa,KAAK,CAACX;QACvB,MAAM,IAAIY,MAAM,CAAC,CAAC,EAAEF,cAAc,+BAA+B,EAAE,OAAOV,OAAO;IACnF;IACA,MAAMa,QAAQb,MAAMa,KAAK,CAACJ;IAC1B,IAAI,CAACI,OAAO;QACVf,iBAAiBa,KAAK,CAAC,CAAC,CAAC,EAAED,cAAc,wCAAwC,EAAEV,MAAM,CAAC,CAAC;QAC3F,OAAO;YAAEI,OAAO;YAAOC,QAAQL;QAAM;IACvC;IACA,OAAO;QAAEI,OAAO;QAAMC,QAAQQ,KAAK,CAAC,EAAE;IAAC;AACzC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { accessManagerAddress, agreementsStoreAddress, assetsRegistryAddress, distributePaymentsConditionAddress, fiatPaymentTemplateAddress, fiatSettlementConditionAddress, fixedPaymentTemplateAddress, linearPricingAddress, lockPaymentConditionAddress, nft1155CreditsAddress, nft1155ExpirableCreditsAddress, nft1155ExpirableCreditsV2Address, nvmConfigAddress, oneTimeCreatorHookAddress, payAsYouGoTemplateAddress, paymentsVaultAddress, protocolStandardFeesAddress, tokenUtilsAddress, transferCreditsConditionAddress
|
|
1
|
+
import { accessManagerAddress, agreementsStoreAddress, assetsRegistryAddress, distributePaymentsConditionAddress, fiatPaymentTemplateAddress, fiatSettlementConditionAddress, fixedPaymentTemplateAddress, linearPricingAddress, lockPaymentConditionAddress, nft1155CreditsAddress, nft1155ExpirableCreditsAddress, nft1155ExpirableCreditsV2Address, nvmConfigAddress, oneTimeCreatorHookAddress, payAsYouGoTemplateAddress, paymentsVaultAddress, protocolStandardFeesAddress, tokenUtilsAddress, transferCreditsConditionAddress } from '../artifacts/generated.js';
|
|
2
2
|
/**
|
|
3
3
|
* Get deployment information from generated artifacts.
|
|
4
4
|
* This includes all contract addresses that are available in the generated.ts file.
|
|
@@ -6,8 +6,7 @@ import { accessManagerAddress, agreementsStoreAddress, assetsRegistryAddress, di
|
|
|
6
6
|
* @param chainId - Optional chain ID to include in the response
|
|
7
7
|
* @param version - Optional version to include in the response
|
|
8
8
|
* @returns Deployment information with contract addresses
|
|
9
|
-
*/
|
|
10
|
-
export function getDeploymentInfo(chainId, version) {
|
|
9
|
+
*/ export function getDeploymentInfo(chainId, version) {
|
|
11
10
|
const contracts = {
|
|
12
11
|
AccessManager: accessManagerAddress,
|
|
13
12
|
AgreementsStore: agreementsStoreAddress,
|
|
@@ -27,11 +26,17 @@ export function getDeploymentInfo(chainId, version) {
|
|
|
27
26
|
PaymentsVault: paymentsVaultAddress,
|
|
28
27
|
ProtocolStandardFees: protocolStandardFeesAddress,
|
|
29
28
|
TokenUtils: tokenUtilsAddress,
|
|
30
|
-
TransferCreditsCondition: transferCreditsConditionAddress
|
|
29
|
+
TransferCreditsCondition: transferCreditsConditionAddress
|
|
31
30
|
};
|
|
32
31
|
return {
|
|
33
|
-
...
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
...version && {
|
|
33
|
+
version
|
|
34
|
+
},
|
|
35
|
+
...chainId && {
|
|
36
|
+
chainId
|
|
37
|
+
},
|
|
38
|
+
contracts
|
|
36
39
|
};
|
|
37
40
|
}
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=DeploymentInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/DeploymentInfo.ts"],"sourcesContent":["import {\n accessManagerAddress,\n agreementsStoreAddress,\n assetsRegistryAddress,\n distributePaymentsConditionAddress,\n fiatPaymentTemplateAddress,\n fiatSettlementConditionAddress,\n fixedPaymentTemplateAddress,\n linearPricingAddress,\n lockPaymentConditionAddress,\n nft1155CreditsAddress,\n nft1155ExpirableCreditsAddress,\n nft1155ExpirableCreditsV2Address,\n nvmConfigAddress,\n oneTimeCreatorHookAddress,\n payAsYouGoTemplateAddress,\n paymentsVaultAddress,\n protocolStandardFeesAddress,\n tokenUtilsAddress,\n transferCreditsConditionAddress,\n} from '../artifacts/generated.js'\n\nexport interface DeploymentInfo {\n version?: string\n chainId?: number\n contracts: Record<string, string>\n}\n\n/**\n * Get deployment information from generated artifacts.\n * This includes all contract addresses that are available in the generated.ts file.\n *\n * @param chainId - Optional chain ID to include in the response\n * @param version - Optional version to include in the response\n * @returns Deployment information with contract addresses\n */\nexport function getDeploymentInfo(chainId?: number, version?: string): DeploymentInfo {\n const contracts: Record<string, string> = {\n AccessManager: accessManagerAddress,\n AgreementsStore: agreementsStoreAddress,\n AssetsRegistry: assetsRegistryAddress,\n DistributePaymentsCondition: distributePaymentsConditionAddress,\n FiatPaymentTemplate: fiatPaymentTemplateAddress,\n FiatSettlementCondition: fiatSettlementConditionAddress,\n FixedPaymentTemplate: fixedPaymentTemplateAddress,\n LinearPricing: linearPricingAddress,\n LockPaymentCondition: lockPaymentConditionAddress,\n NFT1155Credits: nft1155CreditsAddress,\n NFT1155ExpirableCredits: nft1155ExpirableCreditsAddress,\n NFT1155ExpirableCreditsV2: nft1155ExpirableCreditsV2Address,\n NVMConfig: nvmConfigAddress,\n OneTimeCreatorHook: oneTimeCreatorHookAddress,\n PayAsYouGoTemplate: payAsYouGoTemplateAddress,\n PaymentsVault: paymentsVaultAddress,\n ProtocolStandardFees: protocolStandardFeesAddress,\n TokenUtils: tokenUtilsAddress,\n TransferCreditsCondition: transferCreditsConditionAddress,\n }\n\n return {\n ...(version && { version }),\n ...(chainId && { chainId }),\n contracts,\n }\n}\n"],"names":["accessManagerAddress","agreementsStoreAddress","assetsRegistryAddress","distributePaymentsConditionAddress","fiatPaymentTemplateAddress","fiatSettlementConditionAddress","fixedPaymentTemplateAddress","linearPricingAddress","lockPaymentConditionAddress","nft1155CreditsAddress","nft1155ExpirableCreditsAddress","nft1155ExpirableCreditsV2Address","nvmConfigAddress","oneTimeCreatorHookAddress","payAsYouGoTemplateAddress","paymentsVaultAddress","protocolStandardFeesAddress","tokenUtilsAddress","transferCreditsConditionAddress","getDeploymentInfo","chainId","version","contracts","AccessManager","AgreementsStore","AssetsRegistry","DistributePaymentsCondition","FiatPaymentTemplate","FiatSettlementCondition","FixedPaymentTemplate","LinearPricing","LockPaymentCondition","NFT1155Credits","NFT1155ExpirableCredits","NFT1155ExpirableCreditsV2","NVMConfig","OneTimeCreatorHook","PayAsYouGoTemplate","PaymentsVault","ProtocolStandardFees","TokenUtils","TransferCreditsCondition"],"mappings":"AAAA,SACEA,oBAAoB,EACpBC,sBAAsB,EACtBC,qBAAqB,EACrBC,kCAAkC,EAClCC,0BAA0B,EAC1BC,8BAA8B,EAC9BC,2BAA2B,EAC3BC,oBAAoB,EACpBC,2BAA2B,EAC3BC,qBAAqB,EACrBC,8BAA8B,EAC9BC,gCAAgC,EAChCC,gBAAgB,EAChBC,yBAAyB,EACzBC,yBAAyB,EACzBC,oBAAoB,EACpBC,2BAA2B,EAC3BC,iBAAiB,EACjBC,+BAA+B,QAC1B,4BAA2B;AAQlC;;;;;;;CAOC,GACD,OAAO,SAASC,kBAAkBC,OAAgB,EAAEC,OAAgB;IAClE,MAAMC,YAAoC;QACxCC,eAAevB;QACfwB,iBAAiBvB;QACjBwB,gBAAgBvB;QAChBwB,6BAA6BvB;QAC7BwB,qBAAqBvB;QACrBwB,yBAAyBvB;QACzBwB,sBAAsBvB;QACtBwB,eAAevB;QACfwB,sBAAsBvB;QACtBwB,gBAAgBvB;QAChBwB,yBAAyBvB;QACzBwB,2BAA2BvB;QAC3BwB,WAAWvB;QACXwB,oBAAoBvB;QACpBwB,oBAAoBvB;QACpBwB,eAAevB;QACfwB,sBAAsBvB;QACtBwB,YAAYvB;QACZwB,0BAA0BvB;IAC5B;IAEA,OAAO;QACL,GAAIG,WAAW;YAAEA;QAAQ,CAAC;QAC1B,GAAID,WAAW;YAAEA;QAAQ,CAAC;QAC1BE;IACF;AACF"}
|