@diamondslab/diamonds 1.1.0 → 1.1.2
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/core/CallbackManager.d.ts +13 -0
- package/dist/core/CallbackManager.d.ts.map +1 -0
- package/dist/core/CallbackManager.js +95 -0
- package/dist/core/CallbackManager.js.map +1 -0
- package/dist/core/DeploymentManager.d.ts +10 -0
- package/dist/core/DeploymentManager.d.ts.map +1 -0
- package/dist/core/DeploymentManager.js +50 -0
- package/dist/core/DeploymentManager.js.map +1 -0
- package/dist/core/Diamond.d.ts +58 -0
- package/dist/core/Diamond.d.ts.map +1 -0
- package/dist/core/Diamond.js +146 -0
- package/dist/core/Diamond.js.map +1 -0
- package/dist/core/DiamondDeployer.d.ts +10 -0
- package/dist/core/DiamondDeployer.d.ts.map +1 -0
- package/dist/core/DiamondDeployer.js +33 -0
- package/dist/core/DiamondDeployer.js.map +1 -0
- package/{src/core/index.ts → dist/core/index.d.ts} +2 -1
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +12 -0
- package/dist/core/index.js.map +1 -0
- package/{src/index.ts → dist/index.d.ts} +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories/DBDeploymentRepository.d.ts +1 -0
- package/dist/repositories/DBDeploymentRepository.d.ts.map +1 -0
- package/{src/repositories/DBDeploymentRepository.ts → dist/repositories/DBDeploymentRepository.js} +2 -4
- package/dist/repositories/DBDeploymentRepository.js.map +1 -0
- package/dist/repositories/DeploymentRepository.d.ts +8 -0
- package/dist/repositories/DeploymentRepository.d.ts.map +1 -0
- package/dist/repositories/DeploymentRepository.js +7 -0
- package/dist/repositories/DeploymentRepository.js.map +1 -0
- package/dist/repositories/FileDeploymentRepository.d.ts +18 -0
- package/dist/repositories/FileDeploymentRepository.d.ts.map +1 -0
- package/dist/repositories/FileDeploymentRepository.js +58 -0
- package/dist/repositories/FileDeploymentRepository.js.map +1 -0
- package/dist/repositories/databaseHandler.d.ts +1 -0
- package/dist/repositories/databaseHandler.d.ts.map +1 -0
- package/{src/repositories/databaseHandler.ts → dist/repositories/databaseHandler.js} +2 -3
- package/dist/repositories/databaseHandler.js.map +1 -0
- package/{src/repositories/index.ts → dist/repositories/index.d.ts} +1 -1
- package/dist/repositories/index.d.ts.map +1 -0
- package/dist/repositories/index.js +20 -0
- package/dist/repositories/index.js.map +1 -0
- package/dist/repositories/jsonFileHandler.d.ts +81 -0
- package/dist/repositories/jsonFileHandler.d.ts.map +1 -0
- package/dist/repositories/jsonFileHandler.js +223 -0
- package/dist/repositories/jsonFileHandler.js.map +1 -0
- package/dist/repositories/prismaDBHandler.d.ts +1 -0
- package/dist/repositories/prismaDBHandler.d.ts.map +1 -0
- package/{src/repositories/prismaDBHandler.ts → dist/repositories/prismaDBHandler.js} +2 -1
- package/dist/repositories/prismaDBHandler.js.map +1 -0
- package/dist/schemas/DeploymentSchema.d.ts +95 -0
- package/dist/schemas/DeploymentSchema.d.ts.map +1 -0
- package/dist/schemas/DeploymentSchema.js +56 -0
- package/dist/schemas/DeploymentSchema.js.map +1 -0
- package/{src/schemas/index.ts → dist/schemas/index.d.ts} +1 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +18 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/strategies/BaseDeploymentStrategy.d.ts +41 -0
- package/dist/strategies/BaseDeploymentStrategy.d.ts.map +1 -0
- package/dist/strategies/BaseDeploymentStrategy.js +545 -0
- package/dist/strategies/BaseDeploymentStrategy.js.map +1 -0
- package/dist/strategies/DeploymentStrategy.d.ts +19 -0
- package/dist/strategies/DeploymentStrategy.d.ts.map +1 -0
- package/dist/strategies/DeploymentStrategy.js +3 -0
- package/dist/strategies/DeploymentStrategy.js.map +1 -0
- package/dist/strategies/LocalDeploymentStrategy.d.ts +4 -0
- package/dist/strategies/LocalDeploymentStrategy.d.ts.map +1 -0
- package/dist/strategies/LocalDeploymentStrategy.js +8 -0
- package/dist/strategies/LocalDeploymentStrategy.js.map +1 -0
- package/dist/strategies/OZDefenderDeploymentStrategy.d.ts +62 -0
- package/dist/strategies/OZDefenderDeploymentStrategy.d.ts.map +1 -0
- package/dist/strategies/OZDefenderDeploymentStrategy.js +757 -0
- package/dist/strategies/OZDefenderDeploymentStrategy.js.map +1 -0
- package/dist/strategies/RPCDeploymentStrategy.d.ts +139 -0
- package/dist/strategies/RPCDeploymentStrategy.d.ts.map +1 -0
- package/dist/strategies/RPCDeploymentStrategy.js +710 -0
- package/dist/strategies/RPCDeploymentStrategy.js.map +1 -0
- package/{src/strategies/index.ts → dist/strategies/index.d.ts} +2 -1
- package/dist/strategies/index.d.ts.map +1 -0
- package/dist/strategies/index.js +12 -0
- package/dist/strategies/index.js.map +1 -0
- package/dist/types/config.d.ts +26 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/defender.d.ts +22 -0
- package/dist/types/defender.d.ts.map +1 -0
- package/dist/types/defender.js +3 -0
- package/dist/types/defender.js.map +1 -0
- package/dist/types/deployments.d.ts +71 -0
- package/dist/types/deployments.d.ts.map +1 -0
- package/dist/types/deployments.js +20 -0
- package/dist/types/deployments.js.map +1 -0
- package/{src/types/index.ts → dist/types/index.d.ts} +2 -1
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/rpc.d.ts +35 -0
- package/dist/types/rpc.d.ts.map +1 -0
- package/dist/types/rpc.js +3 -0
- package/dist/types/rpc.js.map +1 -0
- package/dist/utils/common.d.ts +20 -0
- package/dist/utils/common.d.ts.map +1 -0
- package/dist/utils/common.js +45 -0
- package/dist/utils/common.js.map +1 -0
- package/dist/utils/configurationResolver.d.ts +30 -0
- package/dist/utils/configurationResolver.d.ts.map +1 -0
- package/dist/utils/configurationResolver.js +151 -0
- package/dist/utils/configurationResolver.js.map +1 -0
- package/dist/utils/contractMapping.d.ts +29 -0
- package/dist/utils/contractMapping.d.ts.map +1 -0
- package/dist/utils/contractMapping.js +224 -0
- package/dist/utils/contractMapping.js.map +1 -0
- package/dist/utils/defenderClients.d.ts +5 -0
- package/dist/utils/defenderClients.d.ts.map +1 -0
- package/dist/utils/defenderClients.js +21 -0
- package/dist/utils/defenderClients.js.map +1 -0
- package/dist/utils/defenderStore.d.ts +14 -0
- package/dist/utils/defenderStore.d.ts.map +1 -0
- package/dist/utils/defenderStore.js +92 -0
- package/dist/utils/defenderStore.js.map +1 -0
- package/dist/utils/diamondAbiGenerator.d.ts +113 -0
- package/dist/utils/diamondAbiGenerator.d.ts.map +1 -0
- package/dist/utils/diamondAbiGenerator.js +415 -0
- package/dist/utils/diamondAbiGenerator.js.map +1 -0
- package/dist/utils/diffDeployedFacets.d.ts +26 -0
- package/dist/utils/diffDeployedFacets.d.ts.map +1 -0
- package/dist/utils/diffDeployedFacets.js +106 -0
- package/dist/utils/diffDeployedFacets.js.map +1 -0
- package/{src/utils/index.ts → dist/utils/index.d.ts} +2 -1
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +35 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/loupe.d.ts +44 -0
- package/dist/utils/loupe.d.ts.map +1 -0
- package/dist/utils/loupe.js +128 -0
- package/dist/utils/loupe.js.map +1 -0
- package/dist/utils/rpcStore.d.ts +36 -0
- package/dist/utils/rpcStore.d.ts.map +1 -0
- package/dist/utils/rpcStore.js +166 -0
- package/dist/utils/rpcStore.js.map +1 -0
- package/dist/utils/signer.d.ts +36 -0
- package/dist/utils/signer.d.ts.map +1 -0
- package/dist/utils/signer.js +91 -0
- package/dist/utils/signer.js.map +1 -0
- package/dist/utils/txlogging.d.ts +13 -0
- package/dist/utils/txlogging.d.ts.map +1 -0
- package/dist/utils/txlogging.js +87 -0
- package/dist/utils/txlogging.js.map +1 -0
- package/dist/utils/workspaceSetup.d.ts +32 -0
- package/dist/utils/workspaceSetup.d.ts.map +1 -0
- package/dist/utils/workspaceSetup.js +311 -0
- package/dist/utils/workspaceSetup.js.map +1 -0
- package/package.json +3 -7
- package/docs/DIAMOND_ABI_CONFIGURATION_SUMMARY.md +0 -40
- package/docs/DIAMOND_ABI_GENERATION.md +0 -220
- package/docs/DIAMOND_ABI_GENERATOR_EXAMPLES.md +0 -1204
- package/docs/DIAMOND_ABI_GENERATOR_IMPLEMENTATION.md +0 -947
- package/docs/DIAMOND_ABI_GENERATOR_QUICK_REFERENCE.md +0 -336
- package/docs/README-DEFENDER.md +0 -394
- package/docs/README_DIAMOND_ABI_GENERATOR.md +0 -303
- package/docs/ROADMAP.md +0 -250
- package/docs/assets/image.png +0 -0
- package/docs/defender-integration.md +0 -451
- package/docs/diamond_module-BaseStrategy_design-v2.uxf +0 -247
- package/docs/diamond_module-BaseStrategy_design.uxf +0 -272
- package/docs/monitoring-troubleshooting.md +0 -556
- package/docs/testing-guide.md +0 -713
- package/examples/Diamond_Config_and_Deployment_examples/diamonds/ProxyDiamond/callbacks/ERC20ProxyFacet.ts +0 -31
- package/examples/Diamond_Config_and_Deployment_examples/diamonds/ProxyDiamond/proxydiamond.config.json +0 -27
- package/examples/Local_Hardhat_Deployer_Script_example/LocalDiamondDeployer.ts +0 -180
- package/examples/OZ_Defender_Deployer_Script_example/OZDiamondDeployer.ts +0 -107
- package/examples/OZ_Defender_Deployer_Script_example/run-oz-deploy.ts +0 -17
- package/examples/Test_examples/ProxyDiamondDeployment.test.ts +0 -202
- package/examples/defender-deployment/.env.example +0 -35
- package/examples/defender-deployment/contracts/ExampleDiamond.sol +0 -41
- package/examples/defender-deployment/contracts/ExampleFacet1.sol +0 -84
- package/examples/defender-deployment/contracts/ExampleFacet2.sol +0 -104
- package/examples/defender-deployment/contracts/UpgradeFacet.sol +0 -92
- package/examples/defender-deployment/deploy-script.ts +0 -170
- package/examples/defender-deployment/diamond-config.json +0 -36
- package/examples/defender-deployment/upgrade-script.ts +0 -237
- package/examples/hardhat-diamonds-config.example.ts +0 -41
- package/src/core/CallbackManager.ts +0 -70
- package/src/core/DeploymentManager.ts +0 -64
- package/src/core/Diamond.ts +0 -197
- package/src/core/DiamondDeployer.ts +0 -36
- package/src/repositories/DeploymentRepository.ts +0 -12
- package/src/repositories/FileDeploymentRepository.ts +0 -67
- package/src/repositories/jsonFileHandler.ts +0 -252
- package/src/schemas/DeploymentSchema.ts +0 -71
- package/src/strategies/BaseDeploymentStrategy.ts +0 -649
- package/src/strategies/DeploymentStrategy.ts +0 -25
- package/src/strategies/LocalDeploymentStrategy.ts +0 -5
- package/src/strategies/OZDefenderDeploymentStrategy.ts +0 -849
- package/src/strategies/RPCDeploymentStrategy.ts +0 -881
- package/src/types/config.ts +0 -34
- package/src/types/defender.ts +0 -24
- package/src/types/deployments.ts +0 -102
- package/src/types/rpc.ts +0 -37
- package/src/utils/common.ts +0 -54
- package/src/utils/configurationResolver.ts +0 -141
- package/src/utils/contractMapping.ts +0 -220
- package/src/utils/defenderClients.ts +0 -22
- package/src/utils/defenderStore.ts +0 -62
- package/src/utils/diamondAbiGenerator.ts +0 -523
- package/src/utils/diffDeployedFacets.ts +0 -131
- package/src/utils/loupe.ts +0 -159
- package/src/utils/rpcStore.ts +0 -152
- package/src/utils/signer.ts +0 -93
- package/src/utils/txlogging.ts +0 -97
- package/src/utils/workspaceSetup.ts +0 -315
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
<diagram program="umletino" version="15.1"><zoom_level>9</zoom_level><help_text>lt=<<
|
|
2
|
-
exclusionFilter</help_text><element><id>UMLClass</id><coordinates><x>486</x><y>487</y><w>225</w><h>108</h></coordinates><panel_attributes>prioritySortedDeployedFuncSelectors
|
|
3
|
-
--
|
|
4
|
-
> funcSel: 0x
|
|
5
|
-
> facetAddress: 0x address
|
|
6
|
-
> priority: int
|
|
7
|
-
|
|
8
|
-
From previous deployment file
|
|
9
|
-
sorted by priority
|
|
10
|
-
group=group-0
|
|
11
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>477</x><y>631</y><w>234</w><h>369</h></coordinates><panel_attributes>functionSelectorRegistry
|
|
12
|
-
--
|
|
13
|
-
> key: 0x function selector
|
|
14
|
-
> facetAddress: 0x address
|
|
15
|
-
> priority: number
|
|
16
|
-
> status: enum {
|
|
17
|
-
deployed,
|
|
18
|
-
add
|
|
19
|
-
replace
|
|
20
|
-
remove
|
|
21
|
-
|
|
22
|
-
Initiallly includes all selectors from deployedFuncSelectors as deployed
|
|
23
|
-
|
|
24
|
-
style=wordwrap
|
|
25
|
-
|
|
26
|
-
group=group-0
|
|
27
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>405</x><y>1054</y><w>189</w><h>36</h></coordinates><panel_attributes>*5. DiamonCut Transaction*
|
|
28
|
-
|
|
29
|
-
fontsize=15
|
|
30
|
-
|
|
31
|
-
group=group-0
|
|
32
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>585</x><y>586</y><w>27</w><h>63</h></coordinates><panel_attributes>lt=<<-
|
|
33
|
-
group=group-0
|
|
34
|
-
layer=3</panel_attributes><additional_attributes>10;50;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>801</x><y>469</y><w>207</w><h>99</h></coordinates><panel_attributes>higherPriorityDeployedFuncSelectors
|
|
35
|
-
--
|
|
36
|
-
> funcSel: 0x
|
|
37
|
-
> priority: int
|
|
38
|
-
|
|
39
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>801</x><y>829</y><w>189</w><h>63</h></coordinates><panel_attributes>lowerPriorityDeployedFuncSelectors
|
|
40
|
-
--
|
|
41
|
-
> funcSel: 0x
|
|
42
|
-
> priority: int
|
|
43
|
-
|
|
44
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1323</x><y>397</y><w>135</w><h>72</h></coordinates><panel_attributes>lt=<<-
|
|
45
|
-
</panel_attributes><additional_attributes>10;10;130;60</additional_attributes></element><element><id>UMLClass</id><coordinates><x>1152</x><y>316</y><w>180</w><h>135</h></coordinates><panel_attributes>diamond.newDeployedFacets
|
|
46
|
-
--
|
|
47
|
-
> facetName {
|
|
48
|
-
> facetAddress: 0x address
|
|
49
|
-
> tx_hash: string
|
|
50
|
-
> initFunction: string
|
|
51
|
-
> priority: int
|
|
52
|
-
> version: number
|
|
53
|
-
> allFuncSels: string[ ]
|
|
54
|
-
> deployInclude: string[ ];
|
|
55
|
-
> verified: boolean;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
style=wordwrap
|
|
59
|
-
layer=3
|
|
60
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1125</x><y>163</y><w>189</w><h>90</h></coordinates><panel_attributes>facetConfig
|
|
61
|
-
--
|
|
62
|
-
> facetName:
|
|
63
|
-
>> address
|
|
64
|
-
>> priority
|
|
65
|
-
>> versions
|
|
66
|
-
layer=3
|
|
67
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>198</x><y>163</y><w>252</w><h>180</h></coordinates><panel_attributes>*deployedDiamondData*
|
|
68
|
-
--
|
|
69
|
-
> DiamondAddress: 0x address
|
|
70
|
-
> DiamondDeployer: 0x address
|
|
71
|
-
> Version: float
|
|
72
|
-
> Facets: [
|
|
73
|
-
> facetName:
|
|
74
|
-
> address
|
|
75
|
-
> version
|
|
76
|
-
> functionSelectors: funcSelector[ ]
|
|
77
|
-
|
|
78
|
-
group=group-0
|
|
79
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>882</x><y>172</y><w>189</w><h>81</h></coordinates><panel_attributes>diamond.config.facets
|
|
80
|
-
--
|
|
81
|
-
ProtocolInitFacet: string facetName
|
|
82
|
-
exlude: 0x[ ] (function selectors to be excluded from all facets)</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>702</x><y>631</y><w>126</w><h>81</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>120;10;10;70</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>810</x><y>622</y><w>171</w><h>36</h></coordinates><panel_attributes>lt=-
|
|
83
|
-
priority split
|
|
84
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>441</x><y>190</y><w>117</w><h>54</h></coordinates><panel_attributes>*facets*
|
|
85
|
-
|
|
86
|
-
lt=<<-
|
|
87
|
-
|
|
88
|
-
layer=3
|
|
89
|
-
group=group-0</panel_attributes><additional_attributes>110;22;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>972</x><y>694</y><w>108</w><h>99</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>10;90;100;10</additional_attributes></element><element><id>Relation</id><coordinates><x>891</x><y>559</y><w>27</w><h>81</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;10;10;70</additional_attributes></element><element><id>Relation</id><coordinates><x>1206</x><y>244</y><w>63</w><h>90</h></coordinates><panel_attributes>lt=<<-
|
|
90
|
-
|
|
91
|
-
</panel_attributes><additional_attributes>50;80;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1062</x><y>199</y><w>81</w><h>27</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>70;10;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>1440</x><y>433</y><w>90</w><h>36</h></coordinates><panel_attributes>facetContractAbi
|
|
92
|
-
layer=3
|
|
93
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>702</x><y>379</y><w>144</w><h>306</h></coordinates><panel_attributes>add/replace
|
|
94
|
-
lt=<<-</panel_attributes><additional_attributes>10;320;140;10</additional_attributes></element><element><id>Relation</id><coordinates><x>891</x><y>406</y><w>27</w><h>81</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;10;10;70</additional_attributes></element><element><id>Relation</id><coordinates><x>972</x><y>370</y><w>198</w><h>54</h></coordinates><panel_attributes>lt=<<.
|
|
95
|
-
|
|
96
|
-
confirm function selector
|
|
97
|
-
in facet</panel_attributes><additional_attributes>10;20;200;20</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>828</x><y>352</y><w>153</w><h>63</h></coordinates><panel_attributes>lt=.
|
|
98
|
-
adhoc
|
|
99
|
-
inclusion Filter
|
|
100
|
-
fg=red
|
|
101
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>549</x><y>424</y><w>108</w><h>36</h></coordinates><panel_attributes>lt=.
|
|
102
|
-
prioritySort
|
|
103
|
-
|
|
104
|
-
group=group-0
|
|
105
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>648</x><y>217</y><w>252</w><h>243</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>10;250;80;250;80;10;260;10</additional_attributes></element><element><id>Relation</id><coordinates><x>594</x><y>451</y><w>27</w><h>54</h></coordinates><panel_attributes>lt=<<-
|
|
106
|
-
group=group-0
|
|
107
|
-
layer=3</panel_attributes><additional_attributes>10;40;10;10</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>1071</x><y>568</y><w>126</w><h>63</h></coordinates><panel_attributes>lt=.
|
|
108
|
-
priority removal filter
|
|
109
|
-
halign=center
|
|
110
|
-
style=wordwrap
|
|
111
|
-
fg=red
|
|
112
|
-
layer=3
|
|
113
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>999</x><y>505</y><w>90</w><h>108</h></coordinates><panel_attributes>lt=<<.
|
|
114
|
-
bg=red
|
|
115
|
-
fg=red</panel_attributes><additional_attributes>80;100;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1134</x><y>442</y><w>72</w><h>144</h></coordinates><panel_attributes>lt=<<-
|
|
116
|
-
</panel_attributes><additional_attributes>17;140;60;10</additional_attributes></element><element><id>Relation</id><coordinates><x>675</x><y>190</y><w>225</w><h>36</h></coordinates><panel_attributes>facets in config
|
|
117
|
-
lt=<<.</panel_attributes><additional_attributes>10;20;230;20</additional_attributes></element><element><id>UMLClass</id><coordinates><x>495</x><y>280</y><w>216</w><h>99</h></coordinates><panel_attributes>filteredDeployedFacets
|
|
118
|
-
--
|
|
119
|
-
> facetName:
|
|
120
|
-
> address
|
|
121
|
-
> version
|
|
122
|
-
> status: deployed | remove
|
|
123
|
-
> functionSelectors: [ ]functionselector
|
|
124
|
-
|
|
125
|
-
group=group-0
|
|
126
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>540</x><y>190</y><w>144</w><h>45</h></coordinates><panel_attributes>lt=.
|
|
127
|
-
removedFacetFilter
|
|
128
|
-
group=group-0
|
|
129
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>594</x><y>226</y><w>27</w><h>72</h></coordinates><panel_attributes>lt=<<-
|
|
130
|
-
group=group-0
|
|
131
|
-
layer=3</panel_attributes><additional_attributes>10;60;10;10</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>819</x><y>919</y><w>153</w><h>63</h></coordinates><panel_attributes>lt=.
|
|
132
|
-
replace existing lower priority filter
|
|
133
|
-
fg=red
|
|
134
|
-
style=wordwrap
|
|
135
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>891</x><y>883</y><w>27</w><h>54</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>10;40;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>594</x><y>370</y><w>27</w><h>72</h></coordinates><panel_attributes>lt=<<-
|
|
136
|
-
group=group-0
|
|
137
|
-
layer=3</panel_attributes><additional_attributes>10;60;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>702</x><y>928</y><w>135</w><h>36</h></coordinates><panel_attributes>lt=<<-
|
|
138
|
-
replace existing</panel_attributes><additional_attributes>10;20;130;20</additional_attributes></element><element><id>Relation</id><coordinates><x>621</x><y>973</y><w>297</w><h>72</h></coordinates><panel_attributes>lt=<<-
|
|
139
|
-
add new function selectors</panel_attributes><additional_attributes>10;30;10;60;310;60;310;10</additional_attributes></element><element><id>Relation</id><coordinates><x>495</x><y>991</y><w>126</w><h>81</h></coordinates><panel_attributes>lt=<<-
|
|
140
|
-
add,replace,remove
|
|
141
|
-
|
|
142
|
-
group=group-0
|
|
143
|
-
layer=3</panel_attributes><additional_attributes>10;70;10;10</additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>774</x><y>271</y><w>864</w><h>783</h></coordinates><panel_attributes>*3. Iterate over facets*
|
|
144
|
-
- Perform Filtering
|
|
145
|
-
- Update FunctionSelectorRegistry
|
|
146
|
-
bg=dark_gray
|
|
147
|
-
halign=left
|
|
148
|
-
valign=top
|
|
149
|
-
fontsize=16</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1278</x><y>595</y><w>369</w><h>423</h></coordinates><panel_attributes>Filtering Details
|
|
150
|
-
--
|
|
151
|
-
--
|
|
152
|
-
*1. adhoc inclusion filter*
|
|
153
|
-
This is essentially an "override higher priority" function. Currently, if a multiple facets list the same FuncSel as 'include' the LOWER PRIORITY will be used.
|
|
154
|
-
|
|
155
|
-
A. Confirm this FuncSel is in the facet list and the higherPriorityDeployedFuncSelectors, return if not.
|
|
156
|
-
B. FuncSels present in Facet Config 'include' list and already in Registry but associated with higher priority facets will have the Registry updated with the new Facet Address. Additionally:
|
|
157
|
-
i. If the FuncSel is already be set to 'add' or 'replace' then these should remain.
|
|
158
|
-
ii. If the status is set to 'deployed' then set status to 'replace'
|
|
159
|
-
iii. If the status is set to 'remove' then set status to 'replace'
|
|
160
|
-
|
|
161
|
-
*2. Priority Removal Filter*
|
|
162
|
-
Removes FunSels that are already being included by other higher priority facets (different names) and aren't being overridden by the adhoc include list
|
|
163
|
-
|
|
164
|
-
3. Replace Existing from Same Facet Name
|
|
165
|
-
|
|
166
|
-
*4. Replace Existing Lower Priority Filter*
|
|
167
|
-
Change facet address for FuncSels.
|
|
168
|
-
Set status to `replace` for existing `deploy` FuncSels, facets that are first time deployments of lower priority will not have been processed yet there is no need to account for FuncSels marked as 'add'.
|
|
169
|
-
|
|
170
|
-
*5. Add New Function Selectors*
|
|
171
|
-
Remaining FuncSels are added.
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
style=wordwrap
|
|
175
|
-
bg=blue
|
|
176
|
-
layer=2
|
|
177
|
-
|
|
178
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>189</x><y>388</y><w>261</w><h>612</h></coordinates><panel_attributes>Diamonds Module Base Strategy
|
|
179
|
-
--
|
|
180
|
-
--
|
|
181
|
-
|
|
182
|
-
Function Selector DiamondCut Process
|
|
183
|
-
|
|
184
|
-
1. Deploy Facet contracts for new versions
|
|
185
|
-
2. Create functionSelectorRegistry from deployedf facets
|
|
186
|
-
|
|
187
|
-
3. Iterate over facets in facetConfig
|
|
188
|
-
a. Perform facet function selector filtering
|
|
189
|
-
b. Update action functionSelectorRegistry
|
|
190
|
-
|
|
191
|
-
4. Protocol Wide Exclusion Filter: Remove FuncSels in ProtocolExclude
|
|
192
|
-
|
|
193
|
-
5. DiamondCut Transaction
|
|
194
|
-
|
|
195
|
-
fontsize=14
|
|
196
|
-
style=wordwrap
|
|
197
|
-
bg=blue
|
|
198
|
-
halign=left
|
|
199
|
-
transparency=0
|
|
200
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1359</x><y>163</y><w>234</w><h>90</h></coordinates><panel_attributes>*1. Deploy Facets*
|
|
201
|
-
--
|
|
202
|
-
Version comparison / existance
|
|
203
|
-
Config -> deployedDiamondData
|
|
204
|
-
Deploy New Facets
|
|
205
|
-
|
|
206
|
-
bg=dark_gray
|
|
207
|
-
|
|
208
|
-
fontsize=15</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1305</x><y>199</y><w>72</w><h>27</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>60;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1476</x><y>244</y><w>27</w><h>207</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;210;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>954</x><y>694</y><w>126</w><h>27</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;10;120;10</additional_attributes></element><element><id>Text</id><coordinates><x>576</x><y>100</y><w>792</w><h>63</h></coordinates><panel_attributes>*Base Strategy: Facet Deployment and Upgrades, Function Selector & DiamondCut Process*
|
|
209
|
-
|
|
210
|
-
fg=#a3ffff
|
|
211
|
-
fontsize=19
|
|
212
|
-
valign=top
|
|
213
|
-
halign=center
|
|
214
|
-
style=autoresize</panel_attributes><additional_attributes></additional_attributes></element><element><id>Text</id><coordinates><x>873</x><y>37</y><w>225</w><h>72</h></coordinates><panel_attributes>*Diamonds Module*
|
|
215
|
-
fontsize=25
|
|
216
|
-
valign=top
|
|
217
|
-
halign=center
|
|
218
|
-
style=autoresize
|
|
219
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Text</id><coordinates><x>612</x><y>73</y><w>738</w><h>36</h></coordinates><panel_attributes>Robust Extensible Deployment of ERC-2535 Diamond Proxy Standard Contract Systems
|
|
220
|
-
|
|
221
|
-
fontsize=13
|
|
222
|
-
valign=top
|
|
223
|
-
halign=center
|
|
224
|
-
style=wordwrap</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>468</x><y>163</y><w>261</w><h>846</h></coordinates><panel_attributes>*2. Create FunctionSelectorRegistry*
|
|
225
|
-
|
|
226
|
-
fontsize=15
|
|
227
|
-
fg=white
|
|
228
|
-
bg=#8F20EF
|
|
229
|
-
layer=1
|
|
230
|
-
transparency=97
|
|
231
|
-
group=group-0</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1062</x><y>676</y><w>189</w><h>63</h></coordinates><panel_attributes>priorityFilteredNewDeployedFacets
|
|
232
|
-
--
|
|
233
|
-
id: Long="36548"
|
|
234
|
-
[waiting for message]</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>837</x><y>676</y><w>126</w><h>63</h></coordinates><panel_attributes>lt=.
|
|
235
|
-
replace existing
|
|
236
|
-
same facet filter
|
|
237
|
-
halign=center
|
|
238
|
-
style=wordwrap
|
|
239
|
-
fg=red
|
|
240
|
-
layer=3
|
|
241
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>954</x><y>442</y><w>216</w><h>207</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>10;210;220;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1125</x><y>622</y><w>63</w><h>72</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>50;60;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>702</x><y>676</y><w>171</w><h>72</h></coordinates><panel_attributes>lt=<<-
|
|
242
|
-
replace for same name facet</panel_attributes><additional_attributes>10;60;170;10</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>810</x><y>757</y><w>171</w><h>36</h></coordinates><panel_attributes>lt=-
|
|
243
|
-
priority split
|
|
244
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>702</x><y>766</y><w>126</w><h>45</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>120;10;10;30</additional_attributes></element><element><id>UMLClass</id><coordinates><x>1053</x><y>955</y><w>189</w><h>63</h></coordinates><panel_attributes>remove Function selectors that have same facet name but different address
|
|
245
|
-
--
|
|
246
|
-
id: Long="36548"
|
|
247
|
-
[waiting for message]</panel_attributes><additional_attributes></additional_attributes></element></diagram>
|
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
<diagram program="umletino" version="15.1"><zoom_level>8</zoom_level><help_text>lt=<<
|
|
2
|
-
exclusionFilter</help_text><element><id>UMLClass</id><coordinates><x>264</x><y>400</y><w>200</w><h>96</h></coordinates><panel_attributes>prioritySortedDeployedFuncSelectors
|
|
3
|
-
--
|
|
4
|
-
> funcSel: 0x
|
|
5
|
-
> facetAddress: 0x address
|
|
6
|
-
> priority: int
|
|
7
|
-
|
|
8
|
-
From previous deployment file
|
|
9
|
-
sorted by priority
|
|
10
|
-
group=group-0
|
|
11
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>256</x><y>528</y><w>208</w><h>328</h></coordinates><panel_attributes>functionSelectorRegistry
|
|
12
|
-
--
|
|
13
|
-
> key: 0x function selector
|
|
14
|
-
> facetAddress: 0x address
|
|
15
|
-
> priority: number
|
|
16
|
-
> status: enum {
|
|
17
|
-
deployed,
|
|
18
|
-
add
|
|
19
|
-
replace
|
|
20
|
-
remove
|
|
21
|
-
|
|
22
|
-
Initiallly includes all selectors from deployedFuncSelectors as deployed
|
|
23
|
-
|
|
24
|
-
style=wordwrap
|
|
25
|
-
|
|
26
|
-
group=group-0
|
|
27
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1320</x><y>424</y><w>168</w><h>168</h></coordinates><panel_attributes>facetFuncSelectors
|
|
28
|
-
--
|
|
29
|
-
> facaddress: 0x address
|
|
30
|
-
> funcSel: 0x
|
|
31
|
-
|
|
32
|
-
all functionSelectors contained in current Facet.
|
|
33
|
-
|
|
34
|
-
style=wordwrap
|
|
35
|
-
layer=3
|
|
36
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>192</x><y>904</y><w>168</w><h>32</h></coordinates><panel_attributes>*5. DiamonCut Transaction*
|
|
37
|
-
|
|
38
|
-
fontsize=15
|
|
39
|
-
|
|
40
|
-
group=group-0
|
|
41
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>352</x><y>488</y><w>24</w><h>56</h></coordinates><panel_attributes>lt=<<-
|
|
42
|
-
group=group-0
|
|
43
|
-
layer=3</panel_attributes><additional_attributes>10;50;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>616</x><y>608</y><w>184</w><h>88</h></coordinates><panel_attributes>higherPriorityDeployedFuncSelectors
|
|
44
|
-
--
|
|
45
|
-
> funcSel: 0x
|
|
46
|
-
> priority: int
|
|
47
|
-
|
|
48
|
-
layer=3
|
|
49
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>616</x><y>800</y><w>168</w><h>56</h></coordinates><panel_attributes>lowerPriorityDeployedFuncSelectors
|
|
50
|
-
--
|
|
51
|
-
> funcSel: 0x
|
|
52
|
-
> priority: int
|
|
53
|
-
|
|
54
|
-
layer=3
|
|
55
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1104</x><y>496</y><w>72</w><h>24</h></coordinates><panel_attributes>lt=<<-
|
|
56
|
-
group=group-3</panel_attributes><additional_attributes>10;10;70;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>624</x><y>408</y><w>168</w><h>56</h></coordinates><panel_attributes>facetIncludeFunctionSelectors
|
|
57
|
-
--
|
|
58
|
-
> funcSel: 0x
|
|
59
|
-
layer=3
|
|
60
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>904</x><y>456</y><w>208</w><h>112</h></coordinates><panel_attributes>exclusionFilteredFacetFunctionSelectors
|
|
61
|
-
--
|
|
62
|
-
> facetAddress: 0x address
|
|
63
|
-
> priority: int
|
|
64
|
-
> funcSel: 0x
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
style=wordwrap
|
|
69
|
-
layer=3
|
|
70
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1128</x><y>392</y><w>168</w><h>56</h></coordinates><panel_attributes>facetExcludeFunctionSelectors
|
|
71
|
-
--
|
|
72
|
-
> funcSel: 0x
|
|
73
|
-
layer=3
|
|
74
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>952</x><y>256</y><w>168</w><h>88</h></coordinates><panel_attributes>facetConfig
|
|
75
|
-
--
|
|
76
|
-
> facetName:
|
|
77
|
-
>> address
|
|
78
|
-
>> priority
|
|
79
|
-
>> versions
|
|
80
|
-
layer=3
|
|
81
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>8</x><y>112</y><w>224</w><h>160</h></coordinates><panel_attributes>*deployedDiamondData*
|
|
82
|
-
--
|
|
83
|
-
> DiamondAddress: 0x address
|
|
84
|
-
> DiamondDeployer: 0x address
|
|
85
|
-
> Version: float
|
|
86
|
-
> Facets: [
|
|
87
|
-
> facetName:
|
|
88
|
-
> address
|
|
89
|
-
> version
|
|
90
|
-
> functionSelectors: funcSelector[ ]
|
|
91
|
-
|
|
92
|
-
group=group-0
|
|
93
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>952</x><y>120</y><w>168</w><h>72</h></coordinates><panel_attributes>diamond.config
|
|
94
|
-
--
|
|
95
|
-
ProtocolInitFacet: string facetName
|
|
96
|
-
exlude: 0x[ ] (function selectors to be excluded from all facets)</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>696</x><y>336</y><w>320</w><h>88</h></coordinates><panel_attributes>lt=<<-
|
|
97
|
-
|
|
98
|
-
group=group-3</panel_attributes><additional_attributes>10;90;10;20;380;20;380;10</additional_attributes></element><element><id>Relation</id><coordinates><x>456</x><y>736</y><w>184</w><h>24</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>210;10;10;10</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>624</x><y>728</y><w>152</w><h>32</h></coordinates><panel_attributes>lt=-
|
|
99
|
-
priority split
|
|
100
|
-
layer=3
|
|
101
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>224</x><y>136</y><w>104</w><h>48</h></coordinates><panel_attributes>*facets*
|
|
102
|
-
|
|
103
|
-
lt=<<-
|
|
104
|
-
|
|
105
|
-
layer=3
|
|
106
|
-
group=group-0</panel_attributes><additional_attributes>110;22;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>696</x><y>752</y><w>24</w><h>64</h></coordinates><panel_attributes>lt=<<-
|
|
107
|
-
group=group-3</panel_attributes><additional_attributes>10;60;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>696</x><y>688</y><w>24</w><h>56</h></coordinates><panel_attributes>lt=<<-
|
|
108
|
-
group=group-3</panel_attributes><additional_attributes>10;10;10;50</additional_attributes></element><element><id>Relation</id><coordinates><x>1056</x><y>336</y><w>176</w><h>72</h></coordinates><panel_attributes>lt=<<-
|
|
109
|
-
|
|
110
|
-
group=group-3</panel_attributes><additional_attributes>200;70;200;20;10;20;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1024</x><y>184</y><w>24</w><h>88</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;90;10;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>1368</x><y>336</y><w>80</w><h>32</h></coordinates><panel_attributes>facetContractAbi
|
|
111
|
-
layer=3
|
|
112
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1400</x><y>360</y><w>24</w><h>80</h></coordinates><panel_attributes>lt=<<-
|
|
113
|
-
group=group-3</panel_attributes><additional_attributes>10;80;10;10</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>1160</x><y>480</y><w>120</w><h>48</h></coordinates><panel_attributes>lt=.
|
|
114
|
-
adhoc
|
|
115
|
-
exclusion filter
|
|
116
|
-
fg=red
|
|
117
|
-
layer=3
|
|
118
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1208</x><y>440</y><w>24</w><h>56</h></coordinates><panel_attributes>lt=<<.
|
|
119
|
-
group=group-3</panel_attributes><additional_attributes>10;50;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1272</x><y>496</y><w>64</w><h>24</h></coordinates><panel_attributes>lt=<<-
|
|
120
|
-
group=group-3</panel_attributes><additional_attributes>10;10;60;10</additional_attributes></element><element><id>Relation</id><coordinates><x>456</x><y>544</y><w>200</w><h>32</h></coordinates><panel_attributes>add/replace
|
|
121
|
-
lt=<<-</panel_attributes><additional_attributes>10;20;230;20</additional_attributes></element><element><id>Relation</id><coordinates><x>696</x><y>576</y><w>24</w><h>48</h></coordinates><panel_attributes>lt=<<-
|
|
122
|
-
group=group-3</panel_attributes><additional_attributes>10;10;10;40</additional_attributes></element><element><id>Relation</id><coordinates><x>712</x><y>488</y><w>208</w><h>56</h></coordinates><panel_attributes>lt=<<.
|
|
123
|
-
|
|
124
|
-
confirm function selector
|
|
125
|
-
in facet
|
|
126
|
-
group=group-3</panel_attributes><additional_attributes>10;50;10;20;240;20</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>640</x><y>528</y><w>136</w><h>56</h></coordinates><panel_attributes>lt=.
|
|
127
|
-
adhoc
|
|
128
|
-
inclusion Filter
|
|
129
|
-
fg=red
|
|
130
|
-
layer=3
|
|
131
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>696</x><y>456</y><w>24</w><h>88</h></coordinates><panel_attributes>lt=<<-
|
|
132
|
-
group=group-3</panel_attributes><additional_attributes>10;90;10;10</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>320</x><y>344</y><w>96</w><h>32</h></coordinates><panel_attributes>lt=.
|
|
133
|
-
prioritySort
|
|
134
|
-
|
|
135
|
-
group=group-0
|
|
136
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>408</x><y>160</y><w>560</w><h>216</h></coordinates><panel_attributes>lt=<<.</panel_attributes><additional_attributes>10;250;80;250;80;10;680;10</additional_attributes></element><element><id>Relation</id><coordinates><x>360</x><y>368</y><w>24</w><h>48</h></coordinates><panel_attributes>lt=<<-
|
|
137
|
-
group=group-0
|
|
138
|
-
layer=3</panel_attributes><additional_attributes>10;40;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1112</x><y>296</y><w>312</w><h>56</h></coordinates><panel_attributes>lt=<<-
|
|
139
|
-
group=group-3</panel_attributes><additional_attributes>370;50;370;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>768</x><y>560</y><w>248</w><h>200</h></coordinates><panel_attributes>lt=<<.
|
|
140
|
-
group=group-3</panel_attributes><additional_attributes>10;230;290;230;290;10</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>832</x><y>624</y><w>112</w><h>56</h></coordinates><panel_attributes>lt=.
|
|
141
|
-
priority removal filter
|
|
142
|
-
halign=center
|
|
143
|
-
style=wordwrap
|
|
144
|
-
fg=red
|
|
145
|
-
layer=3
|
|
146
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>792</x><y>640</y><w>56</w><h>24</h></coordinates><panel_attributes>lt=<<.
|
|
147
|
-
bg=red
|
|
148
|
-
fg=red</panel_attributes><additional_attributes>50;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>928</x><y>560</y><w>48</w><h>112</h></coordinates><panel_attributes>lt=<<-
|
|
149
|
-
group=group-3</panel_attributes><additional_attributes>17;120;40;120;40;10</additional_attributes></element><element><id>Relation</id><coordinates><x>432</x><y>136</y><w>536</w><h>32</h></coordinates><panel_attributes>facets in config
|
|
150
|
-
lt=<<.</panel_attributes><additional_attributes>10;20;650;20</additional_attributes></element><element><id>UMLClass</id><coordinates><x>272</x><y>216</y><w>192</w><h>88</h></coordinates><panel_attributes>filteredDeployedFacets
|
|
151
|
-
--
|
|
152
|
-
> facetName:
|
|
153
|
-
> address
|
|
154
|
-
> version
|
|
155
|
-
> status: deployed | remove
|
|
156
|
-
> functionSelectors: [ ]functionselector
|
|
157
|
-
|
|
158
|
-
group=group-0
|
|
159
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>312</x><y>136</y><w>128</w><h>40</h></coordinates><panel_attributes>lt=.
|
|
160
|
-
removedFacetFilter
|
|
161
|
-
group=group-0
|
|
162
|
-
layer=3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>360</x><y>168</y><w>24</w><h>64</h></coordinates><panel_attributes>lt=<<-
|
|
163
|
-
group=group-0
|
|
164
|
-
layer=3</panel_attributes><additional_attributes>10;60;10;10</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>632</x><y>912</y><w>136</w><h>56</h></coordinates><panel_attributes>lt=.
|
|
165
|
-
replace existing lower priority filter
|
|
166
|
-
fg=red
|
|
167
|
-
style=wordwrap
|
|
168
|
-
layer=3
|
|
169
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>696</x><y>848</y><w>24</w><h>80</h></coordinates><panel_attributes>lt=<<.
|
|
170
|
-
group=group-3</panel_attributes><additional_attributes>10;80;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>360</x><y>296</y><w>24</w><h>64</h></coordinates><panel_attributes>lt=<<-
|
|
171
|
-
group=group-0
|
|
172
|
-
layer=3</panel_attributes><additional_attributes>10;60;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>440</x><y>848</y><w>208</w><h>112</h></coordinates><panel_attributes>lt=<<-
|
|
173
|
-
replace existing</panel_attributes><additional_attributes>10;10;10;120;240;120</additional_attributes></element><element><id>UMLUseCase</id><coordinates><x>504</x><y>176</y><w>112</w><h>56</h></coordinates><panel_attributes>*4. Protocol Wide*
|
|
174
|
-
*Exclusion Filter*
|
|
175
|
-
|
|
176
|
-
fontsize=14
|
|
177
|
-
bg=dark_gray</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>384</x><y>848</y><w>336</w><h>152</h></coordinates><panel_attributes>lt=<<-
|
|
178
|
-
add new function selectors</panel_attributes><additional_attributes>10;10;10;170;400;170;400;150</additional_attributes></element><element><id>Relation</id><coordinates><x>272</x><y>848</y><w>104</w><h>72</h></coordinates><panel_attributes>lt=<<-
|
|
179
|
-
add,replace,remove
|
|
180
|
-
|
|
181
|
-
group=group-0
|
|
182
|
-
layer=3</panel_attributes><additional_attributes>10;70;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>608</x><y>184</y><w>416</w><h>40</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;30;500;30;500;10</additional_attributes></element><element><id>Relation</id><coordinates><x>456</x><y>224</y><w>96</w><h>328</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;390;100;390;100;10</additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>592</x><y>240</y><w>904</w><h>776</h></coordinates><panel_attributes>*3. Iterate over facets*
|
|
183
|
-
- Perform Filtering
|
|
184
|
-
- Update FunctionSelectorRegistry
|
|
185
|
-
bg=dark_gray
|
|
186
|
-
halign=left
|
|
187
|
-
valign=top
|
|
188
|
-
fontsize=16
|
|
189
|
-
group=group-3</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1016</x><y>600</y><w>472</w><h>360</h></coordinates><panel_attributes>Filtering Details
|
|
190
|
-
--
|
|
191
|
-
--
|
|
192
|
-
*1. adhoc exclusion filter*
|
|
193
|
-
FuncSels in Facet Config 'exclude' list will be removed from future processing. This is priority over 'include'
|
|
194
|
-
|
|
195
|
-
*2. adhoc inclusion filter*
|
|
196
|
-
This is essentially an "override higher priority" function. Currently, if a multiple facets list the same FuncSel as 'include' the LOWER PRIORITY will be used.
|
|
197
|
-
|
|
198
|
-
A. Confirm this FuncSel is in the facet list and the higherPriorityDeployedFuncSelectors, return if not.
|
|
199
|
-
B. FuncSels present in Facet Config 'include' list and already in Registry but associated with higher priority facets will have the Registry updated with the new Facet Address. Additionally:
|
|
200
|
-
i. If the FuncSel is already be set to 'add' or 'replace' then these should remain.
|
|
201
|
-
ii. If the status is set to 'deployed' then set status to 'replace'
|
|
202
|
-
iii. If the status is set to 'remove' then set status to 'replace'
|
|
203
|
-
|
|
204
|
-
*3. Priority Remove Filter*
|
|
205
|
-
Removes FunSels that are already being included by higher priority facets and aren't being overridden by the adhoc include list
|
|
206
|
-
|
|
207
|
-
*4. Replace Existing Lower Priority Filter*
|
|
208
|
-
Change facet address for FuncSels.
|
|
209
|
-
Set status to `replace` for existing `deploy` FuncSels, facets that are first time deployments of lower priority will not have been processed yet there is no need to account for FuncSels marked as 'add'.
|
|
210
|
-
|
|
211
|
-
*5. Add New Function Selectors*
|
|
212
|
-
Remaining FuncSels are added.
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
style=wordwrap
|
|
216
|
-
bg=blue
|
|
217
|
-
layer=2
|
|
218
|
-
group=group-3
|
|
219
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>0</x><y>312</y><w>232</w><h>544</h></coordinates><panel_attributes>Diamonds Module Base Strategy
|
|
220
|
-
--
|
|
221
|
-
--
|
|
222
|
-
|
|
223
|
-
Function Selector DiamondCut Process
|
|
224
|
-
|
|
225
|
-
1. Deploy Facet contracts for new versions
|
|
226
|
-
2. Create functionSelectorRegistry from deployedf facets
|
|
227
|
-
|
|
228
|
-
3. Iterate over facets in facetConfig
|
|
229
|
-
a. Perform facet function selector filtering
|
|
230
|
-
b. Update action functionSelectorRegistry
|
|
231
|
-
|
|
232
|
-
4. Protocol Wide Exclusion Filter: Remove FuncSels in ProtocolExclude
|
|
233
|
-
|
|
234
|
-
5. DiamondCut Transaction
|
|
235
|
-
|
|
236
|
-
fontsize=14
|
|
237
|
-
style=wordwrap
|
|
238
|
-
bg=blue
|
|
239
|
-
halign=left
|
|
240
|
-
transparency=0
|
|
241
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>1200</x><y>104</y><w>184</w><h>96</h></coordinates><panel_attributes>*1. Deploy Facets*
|
|
242
|
-
--
|
|
243
|
-
Version comparison / existance
|
|
244
|
-
Config -> deployedDiamondData
|
|
245
|
-
Deploy New Facets
|
|
246
|
-
|
|
247
|
-
bg=dark_gray
|
|
248
|
-
style=autoresize
|
|
249
|
-
fontsize=15</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>1112</x><y>136</y><w>104</w><h>24</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>110;10;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>1304</x><y>192</y><w>24</w><h>64</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;60;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>760</x><y>672</y><w>160</w><h>288</h></coordinates><panel_attributes>lt=<<-</panel_attributes><additional_attributes>10;340;160;340;160;110;180;90;160;70;160;10</additional_attributes></element><element><id>Text</id><coordinates><x>360</x><y>56</y><w>672</w><h>56</h></coordinates><panel_attributes>*Base Strategy: Facet Deployment and Upgrades, Function Selector & DiamondCut Process*
|
|
250
|
-
|
|
251
|
-
fg=#a3ffff
|
|
252
|
-
fontsize=19
|
|
253
|
-
valign=top
|
|
254
|
-
halign=center
|
|
255
|
-
style=autoresize</panel_attributes><additional_attributes></additional_attributes></element><element><id>Text</id><coordinates><x>616</x><y>0</y><w>184</w><h>64</h></coordinates><panel_attributes>*Diamonds Module*
|
|
256
|
-
fontsize=25
|
|
257
|
-
valign=top
|
|
258
|
-
halign=center
|
|
259
|
-
style=autoresize
|
|
260
|
-
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Text</id><coordinates><x>376</x><y>32</y><w>656</w><h>32</h></coordinates><panel_attributes>Robust Extensible Deployment of ERC-2535 Diamond Proxy Standard Contract Systems
|
|
261
|
-
|
|
262
|
-
fontsize=13
|
|
263
|
-
valign=top
|
|
264
|
-
halign=center
|
|
265
|
-
style=wordwrap</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>248</x><y>112</y><w>232</w><h>752</h></coordinates><panel_attributes>*2. Create FunctionSelectorRegistry*
|
|
266
|
-
|
|
267
|
-
fontsize=15
|
|
268
|
-
fg=white
|
|
269
|
-
bg=#8F20EF
|
|
270
|
-
layer=1
|
|
271
|
-
transparency=97
|
|
272
|
-
group=group-0</panel_attributes><additional_attributes></additional_attributes></element></diagram>
|