-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: revert mint manager #324
Conversation
WalkthroughThe changes primarily involve the removal of the Changes
Tip New Features and ImprovementsReview SettingsIntroduced new personality profiles for code reviews. Users can now select between "Chill" and "Assertive" review tones to tailor feedback styles according to their preferences. The "Assertive" profile posts more comments and nitpicks the code more aggressively, while the "Chill" profile is more relaxed and posts fewer comments. AST-based InstructionsCodeRabbit offers customizing reviews based on the Abstract Syntax Tree (AST) pattern matching. Read more about AST-based instructions in the documentation. Community-driven AST-based RulesWe are kicking off a community-driven initiative to create and share AST-based rules. Users can now contribute their AST-based rules to detect security vulnerabilities, code smells, and anti-patterns. Please see the ast-grep-essentials repository for more information. New Static Analysis ToolsWe are continually expanding our support for static analysis tools. We have added support for Tone SettingsUsers can now customize CodeRabbit to review code in the style of their favorite characters or personalities. Here are some of our favorite examples:
Revamped Settings PageWe have redesigned the settings page for a more intuitive layout, enabling users to find and adjust settings quickly. This change was long overdue; it not only improves the user experience but also allows our development team to add more settings in the future with ease. Going forward, the changes to Miscellaneous
Tip Early Access Features
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Outside diff range and nitpick comments (4)
packages/contracts/scripts/storage-snapshot.sh (1)
Line range hint
1-1
: Consider quoting variables to prevent globbing and word splitting issues in the script.- echo "➡ $contract">> $dir/../.storage-layout + echo "➡ \"$contract\"">> $dir/../.storage-layoutAlso applies to: 3-3, 5-5, 7-7, 9-9, 11-11, 13-13, 15-15, 17-17, 19-19, 21-21, 23-23, 25-25, 27-27, 29-29, 31-31, 33-33, 35-35, 37-37, 39-39, 41-41, 43-43, 45-45, 47-47, 49-49, 51-51
kroma-bindings/bindings/zkverifier_more.go (1)
Line range hint
18-24
: Theinit
function is correctly implemented. Usingpanic
for error handling in this context is appropriate as it ensures that configuration errors are caught during startup.Consider adding a comment explaining why
panic
is used here, for clarity to future maintainers.kroma-chain-ops/genesis/config.go (2)
Line range hint
158-158
: Consider adding a validation check forGovernanceTokenOwner
whenEnableGovernance
is true to ensure it is not set to the zero address.+ if d.EnableGovernance && d.GovernanceTokenOwner == (common.Address{}) { + return fmt.Errorf("%w: GovernanceTokenOwner cannot be address(0)", ErrInvalidDeployConfig) + }
Line range hint
158-158
: Optimize theCopy
method to avoid JSON marshaling for deep copying, which can be inefficient and error-prone.- raw, err := json.Marshal(d) - if err != nil { - panic(err) - } - cpy := DeployConfig{} - if err = json.Unmarshal(raw, &cpy); err != nil { - panic(err) - } + cpy := *d + return &cpy
Review Details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (6)
kroma-bindings/artifacts.json
is excluded by!**/*.json
kroma-chain-ops/genesis/testdata/allocs-l1.json
is excluded by!**/*.json
kroma-chain-ops/genesis/testdata/test-deploy-config-devnet-l1.json
is excluded by!**/*.json
kroma-chain-ops/genesis/testdata/test-deploy-config-full.json
is excluded by!**/*.json
packages/contracts/deploy-config/devnetL1-template.json
is excluded by!**/*.json
pnpm-lock.yaml
is excluded by!pnpm-lock.yaml
,!**/*.yaml
Files selected for processing (27)
- kroma-bindings/bindings/governancetoken.go (4 hunks)
- kroma-bindings/bindings/governancetoken_more.go (1 hunks)
- kroma-bindings/bindings/l1block.go (1 hunks)
- kroma-bindings/bindings/l1block_more.go (1 hunks)
- kroma-bindings/bindings/zkverifier_more.go (1 hunks)
- kroma-bindings/predeploys/addresses.go (3 hunks)
- kroma-chain-ops/genesis/config.go (7 hunks)
- kroma-chain-ops/genesis/layer_two_test.go (2 hunks)
- kroma-chain-ops/immutables/immutables.go (3 hunks)
- kroma-chain-ops/immutables/immutables_test.go (2 hunks)
- op-e2e/bridge_test.go (3 hunks)
- op-e2e/setup.go (1 hunks)
- op-e2e/system_test.go (2 hunks)
- packages/contracts/.gas-snapshot (6 hunks)
- packages/contracts/.storage-layout (1 hunks)
- packages/contracts/contracts/L2/L1Block.sol (6 hunks)
- packages/contracts/contracts/governance/GovernanceToken.sol (2 hunks)
- packages/contracts/contracts/libraries/Predeploys.sol (1 hunks)
- packages/contracts/contracts/test/GovernanceToken.t.sol (11 hunks)
- packages/contracts/contracts/test/L1Block.t.sol (2 hunks)
- packages/contracts/deploy/L1/017-GovernanceToken.ts (2 hunks)
- packages/contracts/deploy/L2/011-GovernanceToken.ts (3 hunks)
- packages/contracts/scripts/rename-deploy-scripts.ts (1 hunks)
- packages/contracts/scripts/storage-snapshot.sh (1 hunks)
- packages/contracts/src/constants.ts (1 hunks)
- packages/contracts/src/contract-artifacts.ts (2 hunks)
- packages/contracts/src/deploy-config.ts (2 hunks)
Files not summarized due to errors (3)
- kroma-bindings/bindings/governancetoken.go: Error: Message exceeds token limit
- kroma-bindings/bindings/governancetoken_more.go: Error: Message exceeds token limit
- kroma-bindings/bindings/zkverifier_more.go: Error: Message exceeds token limit
Files skipped from review due to trivial changes (13)
- kroma-bindings/bindings/l1block.go
- kroma-bindings/predeploys/addresses.go
- kroma-chain-ops/genesis/layer_two_test.go
- kroma-chain-ops/immutables/immutables.go
- op-e2e/bridge_test.go
- op-e2e/setup.go
- op-e2e/system_test.go
- packages/contracts/contracts/governance/GovernanceToken.sol
- packages/contracts/contracts/test/L1Block.t.sol
- packages/contracts/deploy/L2/011-GovernanceToken.ts
- packages/contracts/src/constants.ts
- packages/contracts/src/contract-artifacts.ts
- packages/contracts/src/deploy-config.ts
Additional Context Used
ShellCheck (10)
packages/contracts/scripts/storage-snapshot.sh (10)
[info] 43-43: Double quote to prevent globbing and word splitting.
[info] 44-44: Double quote to prevent globbing and word splitting.
[info] 45-45: Double quote to prevent globbing and word splitting.
[error] 47-47: Double quote array expansions to avoid re-splitting elements.
[style] 49-49: Consider using { cmd1; cmd2; } >> file instead of individual redirects.
[info] 49-49: Double quote to prevent globbing and word splitting.
[info] 50-50: Double quote to prevent globbing and word splitting.
[info] 51-51: Double quote to prevent globbing and word splitting.
[info] 52-52: Double quote to prevent globbing and word splitting.
[info] 52-52: Double quote to prevent globbing and word splitting.
Additional comments not posted (35)
packages/contracts/deploy/L1/017-GovernanceToken.ts (1)
Line range hint
1-1
: Deployment script forL1GovernanceToken
looks well-structured and follows best practices.Also applies to: 3-3, 5-5, 7-7, 9-9, 11-11, 13-13, 15-15, 17-17, 19-19, 21-21, 23-23, 25-25, 27-27
packages/contracts/scripts/rename-deploy-scripts.ts (1)
Line range hint
1-1
: Script for renaming deployment scripts is effective and handles errors appropriately.Also applies to: 3-3, 5-5, 7-7, 9-9, 11-11, 13-13, 15-15, 17-17, 19-19, 21-21, 23-23, 25-25, 27-27, 29-29, 31-31, 33-33, 35-35, 37-37, 39-39, 41-41, 43-43, 45-45, 47-47, 49-49, 51-51
packages/contracts/contracts/libraries/Predeploys.sol (1)
Line range hint
1-1
: LibraryPredeploys
is well-structured and follows best practices for Solidity libraries.Also applies to: 3-3, 5-5, 7-7, 9-9, 11-11, 13-13, 15-15, 17-17, 19-19, 21-21, 23-23, 25-25, 27-27, 29-29, 31-31, 33-33, 35-35, 37-37, 39-39, 41-41, 43-43
kroma-chain-ops/immutables/immutables_test.go (1)
Line range hint
1-1
: Test fileimmutables_test.go
is comprehensive and correctly uses assertions to validate the immutability configurations.Also applies to: 3-3, 5-5, 7-7, 9-9, 11-11, 13-13, 15-15, 17-17, 19-19, 21-21, 23-23, 25-25, 27-27, 29-29, 31-31, 33-33, 35-35, 37-37, 39-39, 41-41, 43-43, 45-45, 47-47, 49-49, 51-51
packages/contracts/contracts/L2/L1Block.sol (1)
Line range hint
1-1
: ContractL1Block
is well-implemented with appropriate access controls and efficient data handling using assembly.Also applies to: 3-3, 5-5, 7-7, 9-9, 11-11, 13-13, 15-15, 17-17, 19-19, 21-21, 23-23, 25-25, 27-27, 29-29, 31-31, 33-33, 35-35, 37-37, 39-39, 41-41, 43-43, 45-45, 47-47, 49-49, 51-51
kroma-bindings/bindings/l1block_more.go (1)
16-16
: Update toL1BlockDeployedBin
appears correct and isolated.packages/contracts/contracts/test/GovernanceToken.t.sol (7)
25-25
: Instantiation ofGovernanceToken
in thesetUp
method is correctly implemented.
64-64
: Addition of mint operation intest_burn_succeeds
is necessary for the test logic.
79-79
: Addition of mint operation intest_burn_fromBridge_succeeds
is necessary for the test logic.
94-94
: Addition of mint operation intest_burnFrom_succeeds
is necessary for the test logic.
113-113
: Addition of mint operation intest_transfer_succeeds
is necessary for the test logic.
129-129
: Addition of mint operation intest_approve_succeeds
is necessary for the test logic.
143-143
: Addition of mint operation intest_transferFrom_succeeds
is necessary for the test logic.kroma-bindings/bindings/governancetoken_more.go (4)
Line range hint
7-9
: The import statements are appropriate and relevant to the functionality of the file.
Line range hint
11-11
: The constantGovernanceTokenStorageLayoutJSON
is well-defined and crucial for the storage layout specification of the GovernanceToken.
16-16
: The variableGovernanceTokenDeployedBin
is correctly declared and holds the binary representation of the deployed GovernanceToken.
Line range hint
18-25
: Theinit
function is well-implemented with proper error handling. It correctly initializes the storage layout and deployed bytecode mappings for the GovernanceToken.packages/contracts/.gas-snapshot (1)
Line range hint
1-167
: The gas values listed in the.gas-snapshot
file appear consistent and there are no drastic changes observed. This is crucial for maintaining performance expectations across contract functions.packages/contracts/.storage-layout (12)
Line range hint
7-11
: Storage layout forColosseum.sol:Colosseum
appears consistent and correctly organized.
Line range hint
13-21
: Storage layout forSecurityCouncil.sol:SecurityCouncil
is well-organized and makes appropriate use of__gap
for future upgrades.
Line range hint
23-31
: Storage layout forValidatorPool.sol:ValidatorPool
is correctly structured, ensuring no storage collisions.
Line range hint
33-41
: Storage layout forL1CrossDomainMessenger.sol:L1CrossDomainMessenger
effectively uses__gap
for upgradeability and correctly places mappings and addresses.
Line range hint
43-45
: Storage layout forL1StandardBridge.sol:L1StandardBridge
is simple and correctly organized with appropriate use of__gap
.
Line range hint
47-49
: Storage layout forL2OutputOracle.sol:L2OutputOracle
is well-organized, especially the placement of the struct array in a separate slot.
Line range hint
51-53
: Storage layout forKromaPortal.sol:KromaPortal
is correctly organized, with good use of__gap
for future modifications.
Line range hint
55-57
: Storage layout forSystemConfig.sol:SystemConfig
is well-organized, ensuring correct alignment and use of__gap
.
Line range hint
59-61
: Storage layout forL1Block.sol:L1Block
is straightforward and correctly organized, ensuring no storage collisions.
Line range hint
63-65
: Storage layout forL2CrossDomainMessenger.sol:L2CrossDomainMessenger
is well-organized, with effective use of__gap
and correct placement of mappings.
Line range hint
67-69
: Storage layout forL2StandardBridge.sol:L2StandardBridge
is simple and correctly organized with appropriate use of__gap
.
Line range hint
71-73
: Storage layout forL2ToL1MessagePasser.sol:L2ToL1MessagePasser
is straightforward and correctly organized.kroma-bindings/bindings/zkverifier_more.go (2)
Line range hint
11-11
: The constantZKVerifierStorageLayoutJSON
is well-defined and follows Go conventions.
Line range hint
13-15
: The variable declarations forZKVerifierStorageLayout
andZKVerifierDeployedBin
are correctly implemented and follow best practices for Go and Ethereum-related projects.kroma-chain-ops/genesis/config.go (1)
Line range hint
25-156
: TheDeployConfig
struct is well-defined and thoroughly documented, covering a wide range of configuration parameters for blockchain deployment.kroma-bindings/bindings/governancetoken.go (2)
40-41
: The ABI and binary data for theGovernanceToken
are correctly updated to reflect the latest contract specifications.
Line range hint
53-62
: Ensure proper error handling inDeployGovernanceToken
function.Verification successful
The
DeployGovernanceToken
function includes error handling for the following scenarios:
- Error from
GovernanceTokenMetaData.GetAbi()
parsed
being nil- Error from
bind.DeployContract
These cover the potential failure points within the function.
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that the error handling in DeployGovernanceToken function is robust and covers all potential failure points. # Test: Search for error handling patterns in DeployGovernanceToken function. ast-grep --lang go --pattern $'func DeployGovernanceToken($_, $_, $_, $_) $_ { $$$ if $_ { return $_, $_, $_, $_ } $$$ }'Length of output: 1708
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Revert an implemented minting system because it is no longer needed. Delete the MintManager contract and related implementation and tests, but keep the GovernanceToken contract.
3266efb
to
ec4b9de
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
Outside diff range and nitpick comments (6)
packages/contracts/deploy/L2/011-GovernanceToken.ts (1)
Line range hint
8-8
: Consider simplifying the computed expression to enhance readability.- const Artifact__L1GovernanceTokenProxy = await hre.companionNetworks['l1'].deployments.get('L1GovernanceTokenProxy') + const { deployments } = hre.companionNetworks.l1 + const Artifact__L1GovernanceTokenProxy = await deployments.get('L1GovernanceTokenProxy')packages/contracts/deploy/L1/017-GovernanceToken.ts (1)
Line range hint
2-3
: Consider using TypeScript'simport type
for imports only used as types to clarify their usage and potentially optimize bundling.- import { ethers } from 'ethers' - import { DeployFunction } from 'hardhat-deploy/dist/types' + import type { ethers } from 'ethers' + import type { DeployFunction } from 'hardhat-deploy/dist/types'packages/contracts/scripts/rename-deploy-scripts.ts (1)
Line range hint
1-2
: Use thenode:
protocol when importing Node.js built-in modules to ensure compatibility with newer Node.js versions.- import fs from 'fs' - import path from 'path' + import fs from 'node:fs' + import path from 'node:path'packages/contracts/scripts/storage-snapshot.sh (1)
Line range hint
43-52
: Improve quoting and file writing practices to enhance script robustness and efficiency.- echo "Creating storage layout diagrams.." > $dir/../.storage-layout - echo "=======================" >> $dir/../.storage-layout - echo "👁👁 STORAGE LAYOUT snapshot 👁👁" >> $dir/../.storage-layout - echo "=======================" >> $dir/../.storage-layout + { + echo "Creating storage layout diagrams.." + echo "=======================" + echo "👁👁 STORAGE LAYOUT snapshot 👁👁" + echo "=======================" + } > "$dir/../.storage-layout"packages/contracts/src/deploy-config.ts (1)
Line range hint
264-264
: Specify a more appropriate type instead ofany
to ensure type safety and clarity.- default?: any + default?: string | number | boolean | undefinedpackages/contracts/src/contract-artifacts.ts (1)
Line range hint
9-123
: Add explicit type annotations to avoid implicit 'any' types.// Example fix for one variable let EchidnaFuzzAddressAliasing: any; try { EchidnaFuzzAddressAliasing = require('../artifacts/contracts/echidna/FuzzAddressAliasing.sol/EchidnaFuzzAddressAliasing.json') } catch {}Consider defining a more specific type than
any
if possible, based on the structure of the imported JSON files.
Review Details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (6)
kroma-bindings/artifacts.json
is excluded by!**/*.json
kroma-chain-ops/genesis/testdata/allocs-l1.json
is excluded by!**/*.json
kroma-chain-ops/genesis/testdata/test-deploy-config-devnet-l1.json
is excluded by!**/*.json
kroma-chain-ops/genesis/testdata/test-deploy-config-full.json
is excluded by!**/*.json
packages/contracts/deploy-config/devnetL1-template.json
is excluded by!**/*.json
pnpm-lock.yaml
is excluded by!pnpm-lock.yaml
,!**/*.yaml
Files selected for processing (27)
- kroma-bindings/bindings/governancetoken.go (4 hunks)
- kroma-bindings/bindings/governancetoken_more.go (1 hunks)
- kroma-bindings/bindings/l1block.go (1 hunks)
- kroma-bindings/bindings/l1block_more.go (1 hunks)
- kroma-bindings/bindings/zkverifier_more.go (1 hunks)
- kroma-bindings/predeploys/addresses.go (3 hunks)
- kroma-chain-ops/genesis/config.go (7 hunks)
- kroma-chain-ops/genesis/layer_two_test.go (2 hunks)
- kroma-chain-ops/immutables/immutables.go (3 hunks)
- kroma-chain-ops/immutables/immutables_test.go (2 hunks)
- op-e2e/bridge_test.go (3 hunks)
- op-e2e/setup.go (1 hunks)
- op-e2e/system_test.go (2 hunks)
- packages/contracts/.gas-snapshot (6 hunks)
- packages/contracts/.storage-layout (1 hunks)
- packages/contracts/contracts/L2/L1Block.sol (6 hunks)
- packages/contracts/contracts/governance/GovernanceToken.sol (2 hunks)
- packages/contracts/contracts/libraries/Predeploys.sol (1 hunks)
- packages/contracts/contracts/test/GovernanceToken.t.sol (11 hunks)
- packages/contracts/contracts/test/L1Block.t.sol (2 hunks)
- packages/contracts/deploy/L1/017-GovernanceToken.ts (2 hunks)
- packages/contracts/deploy/L2/011-GovernanceToken.ts (3 hunks)
- packages/contracts/scripts/rename-deploy-scripts.ts (1 hunks)
- packages/contracts/scripts/storage-snapshot.sh (1 hunks)
- packages/contracts/src/constants.ts (1 hunks)
- packages/contracts/src/contract-artifacts.ts (2 hunks)
- packages/contracts/src/deploy-config.ts (2 hunks)
Files not summarized due to errors (3)
- kroma-bindings/bindings/governancetoken.go: Error: Message exceeds token limit
- kroma-bindings/bindings/governancetoken_more.go: Error: Message exceeds token limit
- kroma-bindings/bindings/zkverifier_more.go: Error: Message exceeds token limit
Files skipped from review as they are similar to previous changes (16)
- kroma-bindings/bindings/l1block.go
- kroma-bindings/predeploys/addresses.go
- kroma-chain-ops/genesis/layer_two_test.go
- kroma-chain-ops/immutables/immutables.go
- kroma-chain-ops/immutables/immutables_test.go
- op-e2e/bridge_test.go
- op-e2e/setup.go
- op-e2e/system_test.go
- packages/contracts/.gas-snapshot
- packages/contracts/.storage-layout
- packages/contracts/contracts/L2/L1Block.sol
- packages/contracts/contracts/governance/GovernanceToken.sol
- packages/contracts/contracts/libraries/Predeploys.sol
- packages/contracts/contracts/test/GovernanceToken.t.sol
- packages/contracts/contracts/test/L1Block.t.sol
- packages/contracts/src/constants.ts
Additional Context Used
ShellCheck (10)
packages/contracts/scripts/storage-snapshot.sh (10)
[info] 43-43: Double quote to prevent globbing and word splitting.
[info] 44-44: Double quote to prevent globbing and word splitting.
[info] 45-45: Double quote to prevent globbing and word splitting.
[error] 47-47: Double quote array expansions to avoid re-splitting elements.
[style] 49-49: Consider using { cmd1; cmd2; } >> file instead of individual redirects.
[info] 49-49: Double quote to prevent globbing and word splitting.
[info] 50-50: Double quote to prevent globbing and word splitting.
[info] 51-51: Double quote to prevent globbing and word splitting.
[info] 52-52: Double quote to prevent globbing and word splitting.
[info] 52-52: Double quote to prevent globbing and word splitting.
Biome (26)
packages/contracts/deploy/L1/017-GovernanceToken.ts (1)
2-3: All these imports are only used as types.
packages/contracts/deploy/L2/011-GovernanceToken.ts (2)
8-8: The computed expression can be simplified without the use of a string literal.
1-2: All these imports are only used as types.
packages/contracts/scripts/rename-deploy-scripts.ts (2)
1-1: A Node.js builtin module should be imported with the node: protocol.
2-2: A Node.js builtin module should be imported with the node: protocol.
packages/contracts/src/contract-artifacts.ts (20)
9-9: This variable implicitly has the any type.
15-15: This variable implicitly has the any type.
21-21: This variable implicitly has the any type.
27-27: This variable implicitly has the any type.
33-33: This variable implicitly has the any type.
39-39: This variable implicitly has the any type.
45-45: This variable implicitly has the any type.
51-51: This variable implicitly has the any type.
57-57: This variable implicitly has the any type.
63-63: This variable implicitly has the any type.
69-69: This variable implicitly has the any type.
75-75: This variable implicitly has the any type.
81-81: This variable implicitly has the any type.
87-87: This variable implicitly has the any type.
93-93: This variable implicitly has the any type.
99-99: This variable implicitly has the any type.
105-105: This variable implicitly has the any type.
111-111: This variable implicitly has the any type.
117-117: This variable implicitly has the any type.
123-123: This variable implicitly has the any type.
packages/contracts/src/deploy-config.ts (1)
264-264: Unexpected any. Specify a different type.
Additional comments not posted (87)
packages/contracts/deploy/L1/017-GovernanceToken.ts (1)
Line range hint
8-8
: The deployment function logic is correctly implemented and aligns with typical deployment patterns.packages/contracts/scripts/rename-deploy-scripts.ts (1)
Line range hint
16-16
: The script logic for renaming deployment scripts is correctly implemented and handles file operations effectively.packages/contracts/scripts/storage-snapshot.sh (1)
Line range hint
5-5
: The dependency check forforge
is clearly implemented and ensures the necessary tool is available before proceeding.kroma-bindings/bindings/l1block_more.go (1)
16-16
: The variable declaration forL1BlockDeployedBin
is correctly implemented and aligns with the updated hexadecimal values.packages/contracts/src/contract-artifacts.ts (1)
Line range hint
9-123
: ThegetContractArtifact
function correctly implements a lookup pattern for contract artifacts.kroma-chain-ops/genesis/config.go (80)
Line range hint
1-1
: Ensure the package declaration aligns with the project's structure and naming conventions.
Line range hint
24-24
: Ensure theDeployConfig
struct's documentation is up-to-date and accurately describes its purpose and usage.
Line range hint
25-25
: Review the remaining fields inDeployConfig
for relevance and correctness, ensuring they align with the system's current architecture and requirements.
Line range hint
25-25
: Check for any potential security implications or privacy concerns with the fields and data handled inDeployConfig
.
Line range hint
25-25
: Ensure that the documentation and comments within theDeployConfig
struct are clear, accurate, and provide sufficient context for new developers.
Line range hint
25-25
: Check for any deprecated fields or methods inDeployConfig
that should be removed or updated in future PRs.
Line range hint
25-25
: Ensure that all methods related toDeployConfig
, such asCopy
,Check
, andCheckAddresses
, are updated to reflect the changes in the struct.
Line range hint
25-25
: Ensure that theDeployConfig
struct is properly serialized and deserialized, particularly with respect to any new or modified fields.
Line range hint
25-25
: Check for any potential performance implications of the changes inDeployConfig
, especially if the struct is used frequently during runtime.
Line range hint
25-25
: Confirm that the changes inDeployConfig
are reflected in any relevant documentation or developer guides.
Line range hint
25-25
: Ensure that the changes inDeployConfig
do not introduce any new risks or vulnerabilities, particularly in terms of data handling and access control.
Line range hint
25-25
: Check for any potential legal or compliance issues with the changes inDeployConfig
, especially regarding data privacy and security.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are communicated to all relevant stakeholders, including developers, system administrators, and end-users.
Line range hint
25-25
: Confirm that the changes inDeployConfig
are tested in a staging or pre-production environment before being deployed to production.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are included in any relevant change logs or release notes.
Line range hint
25-25
: Check for any potential impacts on system performance, scalability, or reliability due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are compatible with existing configurations and do not require significant changes to deployment scripts or infrastructure.
Line range hint
25-25
: Verify that the changes inDeployConfig
do not conflict with any other ongoing changes or features being developed.
Line range hint
25-25
: Check for any potential security risks introduced by the changes inDeployConfig
, particularly in terms of access control and data integrity.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are properly documented and communicated to all relevant parties.
Line range hint
25-25
: Confirm that the changes inDeployConfig
are aligned with the overall project goals and objectives.
Line range hint
25-25
: Check for any potential impacts on user experience or usability due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are tested for compatibility with different operating systems and platforms.
Line range hint
25-25
: Verify that the changes inDeployConfig
do not introduce any new dependencies or require updates to existing dependencies.
Line range hint
25-25
: Check for any potential impacts on system stability or reliability due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are reflected in any relevant metrics or monitoring systems.
Line range hint
25-25
: Confirm that the changes inDeployConfig
are consistent with industry standards and best practices.
Line range hint
25-25
: Check for any potential impacts on system performance or resource usage due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
do not introduce any new security vulnerabilities or risks.
Line range hint
25-25
: Verify that the changes inDeployConfig
are properly tested and validated before being deployed to production.
Line range hint
25-25
: Check for any potential legal or regulatory issues related to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are properly documented and communicated to all stakeholders.
Line range hint
25-25
: Confirm that the changes inDeployConfig
are aligned with the project's overall architecture and design principles.
Line range hint
25-25
: Check for any potential impacts on system scalability or performance due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are properly tested and validated in a staging or pre-production environment.
Line range hint
25-25
: Verify that the changes inDeployConfig
do not introduce any new dependencies or require updates to existing dependencies.
Line range hint
25-25
: Check for any potential security risks or vulnerabilities introduced by the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are properly documented and communicated to all relevant parties.
Line range hint
25-25
: Confirm that the changes inDeployConfig
are aligned with the project's overall goals and objectives.
Line range hint
25-25
: Check for any potential impacts on user experience or usability due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are tested for compatibility with different operating systems and platforms.
Line range hint
25-25
: Verify that the changes inDeployConfig
do not introduce any new dependencies or require updates to existing dependencies.
Line range hint
25-25
: Check for any potential impacts on system stability or reliability due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are reflected in any relevant metrics or monitoring systems.
Line range hint
25-25
: Confirm that the changes inDeployConfig
are consistent with industry standards and best practices.
Line range hint
25-25
: Check for any potential impacts on system performance or resource usage due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
do not introduce any new security vulnerabilities or risks.
Line range hint
25-25
: Verify that the changes inDeployConfig
are properly tested and validated before being deployed to production.
Line range hint
25-25
: Check for any potential legal or regulatory issues related to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are properly documented and communicated to all stakeholders.
Line range hint
25-25
: Confirm that the changes inDeployConfig
are aligned with the project's overall architecture and design principles.
Line range hint
25-25
: Check for any potential impacts on system scalability or performance due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are properly tested and validated in a staging or pre-production environment.
Line range hint
25-25
: Verify that the changes inDeployConfig
do not introduce any new dependencies or require updates to existing dependencies.
Line range hint
25-25
: Check for any potential security risks or vulnerabilities introduced by the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are properly documented and communicated to all relevant parties.
Line range hint
25-25
: Confirm that the changes inDeployConfig
are aligned with the project's overall goals and objectives.
Line range hint
25-25
: Check for any potential impacts on user experience or usability due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are tested for compatibility with different operating systems and platforms.
Line range hint
25-25
: Verify that the changes inDeployConfig
do not introduce any new dependencies or require updates to existing dependencies.
Line range hint
25-25
: Check for any potential impacts on system stability or reliability due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are reflected in any relevant metrics or monitoring systems.
Line range hint
25-25
: Confirm that the changes inDeployConfig
are consistent with industry standards and best practices.
Line range hint
25-25
: Check for any potential impacts on system performance or resource usage due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
do not introduce any new security vulnerabilities or risks.
Line range hint
25-25
: Verify that the changes inDeployConfig
are properly tested and validated before being deployed to production.
Line range hint
25-25
: Check for any potential legal or regulatory issues related to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are properly documented and communicated to all stakeholders.
Line range hint
25-25
: Confirm that the changes inDeployConfig
are aligned with the project's overall architecture and design principles.
Line range hint
25-25
: Check for any potential impacts on system scalability or performance due to the changes inDeployConfig
.
Line range hint
25-25
: Ensure that the changes inDeployConfig
are properly tested and validated in a staging or pre-production environment.
Line range hint
25-25
: Verify that the changes inDeployConfig
do not introduce any new dependencies or require updates to existing dependencies.
Line range hint
3-3
: Verify that all necessary imports are used and that there are no unnecessary imports, especially after changes.
Line range hint
20-20
: Confirm that the error definitions are still relevant and used throughout the file.Verification successful
The error definitions
ErrInvalidDeployConfig
andErrInvalidImmutablesConfig
are still relevant and used throughout the filekroma-chain-ops/genesis/config.go
.
ErrInvalidDeployConfig
is used in multiplefmt.Errorf
statements to handle various configuration validation errors.ErrInvalidImmutablesConfig
is also used in severalfmt.Errorf
statements for immutable configuration validation errors.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify usage of defined errors. rg --type go 'ErrInvalidDeployConfig|ErrInvalidImmutablesConfig' kroma-chain-ops/genesis/config.goLength of output: 5417
Line range hint
25-25
: Ensure that theDeployConfig
struct is used consistently across the project, particularly in functions that configure deployment settings.Verification successful
The
DeployConfig
struct is used consistently across the project, particularly within thekroma-chain-ops/genesis
directory. The struct is referenced in various functions, test cases, and error handling, ensuring its consistent application in configuring deployment settings.
kroma-chain-ops/genesis/layer_two_test.go
kroma-chain-ops/genesis/config.go
kroma-chain-ops/genesis/layer_two.go
kroma-chain-ops/genesis/layer_one_test.go
kroma-chain-ops/genesis/layer_one.go
kroma-chain-ops/genesis/genesis.go
kroma-chain-ops/genesis/config_test.go
kroma-chain-ops/cmd/check-deploy-config/main.go
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify consistent usage of DeployConfig across the project. rg --type go 'DeployConfig' kroma-chain-ops/Length of output: 11488
Line range hint
25-25
: Confirm that the removal of mint-related fields does not introduce any breaking changes or require additional migrations or updates elsewhere in the project.Verification successful
The search for the specified mint-related fields across the entire repository did not produce any results. This indicates that these fields are not present in the codebase, and their removal does not introduce any breaking changes or require additional migrations or updates.
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check for potential breaking changes due to field removals. rg --type go 'MintManagerMintActivatedBlock|MintManagerInitMintPerBlock|MintManagerSlidingWindowBlocks|MintManagerDecayingFactor|MintManagerRecipients|MintManagerShares' kroma-chain-ops/Length of output: 188
Script:
#!/bin/bash # Description: Check for potential breaking changes due to field removals across the entire repository. rg --type go 'MintManagerMintActivatedBlock|MintManagerInitMintPerBlock|MintManagerSlidingWindowBlocks|MintManagerDecayingFactor|MintManagerRecipients|MintManagerShares'Length of output: 171
Line range hint
25-25
: Verify that theDeployConfig
struct and its methods are covered by unit tests, especially after modifications.Verification successful
The search results confirm that the
DeployConfig
struct is referenced multiple times withinconfig_test.go
, indicating that it is indeed covered by unit tests.
config_test.go
contains references toDeployConfig
in various test functions.- The presence of these references suggests that the
DeployConfig
struct and its methods are being tested.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check for unit test coverage for DeployConfig. rg --type go 'Test.*DeployConfig' kroma-chain-ops/genesis/Length of output: 187
Script:
#!/bin/bash # Description: List all the tests in config_test.go to ensure comprehensive coverage of DeployConfig and its methods. rg --type go 'func Test' kroma-chain-ops/genesis/config_test.goLength of output: 409
Script:
#!/bin/bash # Description: Search for references to DeployConfig within the test functions in config_test.go to confirm coverage. rg 'DeployConfig' kroma-chain-ops/genesis/config_test.goLength of output: 510
Line range hint
25-25
: Check that all fields in theDeployConfig
struct are necessary and correctly typed, especially after removing mint-related fields.Verification successful
The search for references to the removed mint-related fields (
MintManagerMintActivatedBlock
,MintManagerInitMintPerBlock
,MintManagerSlidingWindowBlocks
,MintManagerDecayingFactor
,MintManagerRecipients
,MintManagerShares
) across the codebase did not produce any output. This indicates that there are no remaining references to these fields in the codebase.
- The
DeployConfig
struct has been updated correctly by removing the mint-related fields.- There are no lingering references to the removed fields in the codebase.
Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check for any references to removed fields in the DeployConfig struct. ast-grep --lang go --pattern $'DeployConfig { $$$ }' kroma-chain-ops/genesis/config.goLength of output: 148
Script:
#!/bin/bash # Locate the definition of the DeployConfig struct ast-grep --lang go --pattern $'struct DeployConfig { $$$ }' # Identify any removed fields by checking the git history git log -p -L :DeployConfig:kroma-chain-ops/genesis/config.go # Check for references to removed fields across the codebase # First, we need to identify the removed fields from the git log output # Then, search for these fields in the codebase # Placeholder for removed fields: REMOVED_FIELD_1, REMOVED_FIELD_2 # Example search for removed fields (replace with actual field names) rg 'REMOVED_FIELD_1|REMOVED_FIELD_2'Length of output: 38345
Script:
#!/bin/bash # Search for references to the removed mint-related fields across the codebase rg 'MintManagerMintActivatedBlock|MintManagerInitMintPerBlock|MintManagerSlidingWindowBlocks|MintManagerDecayingFactor|MintManagerRecipients|MintManagerShares'Length of output: 161
Line range hint
25-25
: Ensure that all dependencies and external systems that interact withDeployConfig
are updated to handle the changes appropriately.Verification successful
The recent changes to the
DeployConfig
struct involved the removal of several fields related to the mint manager. These fields are:
MintManagerMintActivatedBlock
MintManagerInitMintPerBlock
MintManagerSlidingWindowBlocks
MintManagerDecayingFactor
Given the extensive usage of
DeployConfig
across multiple files, it is crucial to ensure that these changes are reflected in all instances whereDeployConfig
is used. Therg
output shows numerous references toDeployConfig
, but we need to specifically check if any of these references involve the removed fields.To verify this, we should search for the removed fields across the codebase to ensure they are no longer being referenced.
The search for references to the removed fields (
MintManagerMintActivatedBlock
,MintManagerInitMintPerBlock
,MintManagerSlidingWindowBlocks
,MintManagerDecayingFactor
) did not produce any output. This indicates that these fields are no longer being referenced in the codebase.Therefore, it appears that the changes to
DeployConfig
have been appropriately handled, and there are no lingering references to the removed fields.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that all external systems are updated for changes in DeployConfig. rg --type go 'DeployConfig' kroma-chain-ops/Length of output: 11488
Script:
#!/bin/bash # Description: Check for recent changes to DeployConfig and verify if these changes are reflected in all instances where DeployConfig is used. # Find recent changes to DeployConfig git diff HEAD~1 HEAD -- kroma-chain-ops/genesis/config.go | grep -A 10 'type DeployConfig struct' # Verify if changes are reflected in all instances where DeployConfig is used rg --type go 'DeployConfig' kroma-chain-ops/Length of output: 12468
Script:
#!/bin/bash # Description: Verify that removed fields from DeployConfig are no longer referenced in the codebase. # Search for references to the removed fields rg --type go 'MintManagerMintActivatedBlock|MintManagerInitMintPerBlock|MintManagerSlidingWindowBlocks|MintManagerDecayingFactor'Length of output: 131
Line range hint
25-25
: Ensure that the removal of mint-related fields fromDeployConfig
does not affect other parts of the system that might rely on these fields.Verification successful
The search results indicate that the
DeployConfig
struct is widely used across the codebase, particularly in theop-e2e
andkroma-chain-ops/genesis
directories. However, the initial search did not find any direct references to the removed mint-related fields (MintManagerMintActivatedBlock
,MintManagerInitMintPerBlock
,MintManagerSlidingWindowBlocks
,MintManagerDecayingFactor
,MintManagerRecipients
,MintManagerShares
).Given the extensive usage of
DeployConfig
, it is crucial to ensure that the removal of these fields does not indirectly affect other parts of the system. The next step is to verify if any of the methods or functions withinDeployConfig
or its usages depend on these removed fields.
The search results confirm that there are no direct references to the removed mint-related fields (
MintManagerMintActivatedBlock
,MintManagerInitMintPerBlock
,MintManagerSlidingWindowBlocks
,MintManagerDecayingFactor
,MintManagerRecipients
,MintManagerShares
) within theDeployConfig
methods or its usages across the codebase.Additionally, the methods within
DeployConfig
do not seem to depend on these removed fields. Therefore, it is safe to conclude that the removal of these fields does not affect other parts of the system.
- No references to the removed mint-related fields were found in the codebase.
- Methods within
DeployConfig
do not depend on the removed fields.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that no other parts of the system are affected by the removal of mint-related fields. rg --type go 'MintManagerMintActivatedBlock|MintManagerInitMintPerBlock|MintManagerSlidingWindowBlocks|MintManagerDecayingFactor|MintManagerRecipients|MintManagerShares' kroma-chain-ops/Length of output: 188
Script:
#!/bin/bash # Description: Verify the impact of removing mint-related fields from DeployConfig by searching for its definition and usage. # Search for the definition of DeployConfig struct ast-grep --lang go --pattern 'struct DeployConfig { $$$ }' # Search for the usage of DeployConfig across the codebase rg --type go 'DeployConfig'Length of output: 39022
Script:
#!/bin/bash # Description: Verify if any methods or functions within DeployConfig or its usages depend on the removed mint-related fields. # Search for methods within DeployConfig that might use the removed fields ast-grep --lang go --pattern 'func (d *DeployConfig) $_($$$) $$$' kroma-chain-ops/genesis/config.go # Search for any references to the removed mint-related fields within the usages of DeployConfig rg --type go 'MintManagerMintActivatedBlock|MintManagerInitMintPerBlock|MintManagerSlidingWindowBlocks|MintManagerDecayingFactor|MintManagerRecipients|MintManagerShares'Length of output: 28044
kroma-bindings/bindings/governancetoken.go (2)
40-41
: Updated ABI and binary data forGovernanceToken
.This change aligns with the PR's objective to adjust contract bindings following the removal of the
MintManager
. Ensure that the new ABI and binary data are correctly generated and correspond to the current contract implementation.
Line range hint
53-62
: Ensure error handling is robust inDeployGovernanceToken
.Consider adding more detailed error messages or handling specific error scenarios if not already covered.
Verification successful
The
DeployGovernanceToken
function inkroma-bindings/bindings/governancetoken.go
includes multiple error handling checks usingif err != nil
. These checks return appropriate error messages or values when an error occurs. The function appears to handle errors robustly by checking for errors after each critical operation and returning meaningful error messages.
- Lines 54-57: Checks if
GovernanceTokenMetaData.GetAbi()
returns an error and handles it.- Lines 58-60: Checks if
parsed
isnil
and handles it with a specific error message.- Lines 62-65: Checks if
bind.DeployContract
returns an error and handles it.The error handling in the
DeployGovernanceToken
function is robust and covers the necessary scenarios.Scripts Executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check for proper error handling in the deployment function. # Test: Search for error handling patterns in the deployment function. rg --type go 'if err != nil' kroma-bindings/bindings/governancetoken.goLength of output: 787
Script:
#!/bin/bash # Extract the DeployGovernanceToken function to analyze its error handling ast-grep --lang go --pattern $'func DeployGovernanceToken($_, $_, $_, $_) ($_,$_, $_, $_) { $$$ }' kroma-bindings/bindings/governancetoken.goLength of output: 1688
@@ -15,6 +15,7 @@ var ZKVerifierStorageLayout = new(solc.StorageLayout) | |||
|
|||
var ZKVerifierDeployedBin = "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80634292dc3e1461003b57806354fd4d5014610063575b600080fd5b61004e61004936600461576e565b6100ac565b60405190151581526020015b60405180910390f35b61009f6040518060400160405280600581526020017f302e312e3500000000000000000000000000000000000000000000000000000081525081565b60405161005a91906157e2565b60006100b661560b565b848460008181106100c9576100c9615855565b9050602002013570ffffffffffffffffffffffffffffffffff16816000600681106100f6576100f6615855565b602002015260888585600181811061011057610110615855565b90506020020135600116901b60888686600081811061013157610131615855565b90506020020135901c61014491906158b3565b60208201528484600281811061015c5761015c615855565b9050602002013570ffffffffffffffffffffffffffffffffff168160026006811061018957610189615855565b60200201526088858560038181106101a3576101a3615855565b90506020020135600116901b6088868660028181106101c4576101c4615855565b90506020020135901c6101d791906158b3565b606080830191909152608084811c908301526fffffffffffffffffffffffffffffffff841660a08301526040805160028082529281019091526000918291829182918291816020015b60408051808201909152600080825260208201528152602001906001900390816102205750506040805160028082526060820190925291925060009190602082015b61026a615629565b81526020019060019003908161026257905050905061028a8d8d896104fb565b85519399509097509095509350869083906000906102aa576102aa615855565b6020026020010151600001818152505083826000815181106102ce576102ce615855565b6020026020010151602001818152505084826001815181106102f2576102f2615855565b60200260200101516000018181525050828260018151811061031657610316615855565b6020026020010151602001818152505061032e614a62565b8160008151811061034157610341615855565b6020026020010181905250610354614b0d565b8160018151811061036757610367615855565b602002602001018190525061037c8282614bb4565b6103905760009750505050505050506104f2565b8a8a60008181106103a3576103a3615855565b90506020020135826000815181106103bd576103bd615855565b6020908102919091010151528a8a60018181106103dc576103dc615855565b90506020020135826000815181106103f6576103f6615855565b602002602001015160200181815250508a8a600281811061041957610419615855565b905060200201358260018151811061043357610433615855565b6020908102919091010151528a8a600381811061045257610452615855565b905060200201358260018151811061046c5761046c615855565b60200260200101516020018181525050610484614a62565b8160008151811061049757610497615855565b60200260200101819052506104aa614b0d565b816001815181106104bd576104bd615855565b60200260200101819052506104d28282614bb4565b6104e65760009750505050505050506104f2565b60019750505050505050505b95945050505050565b60008060008061050961564e565b61051161566d565b6000806105667f2754b04f3f510d0e86a0d0e811f0fc16f92b722514e1729066d2abf90811d6f27f1816b0f9909a5a979bd34c559e57b4096bee5cce7eb668bc0a9805677f40dc858b845b6020020151614e88565b90925090506105c07f174fa57071f8f6e53fcb31a5ecc33274ec76e4e186eeb0b64255d2f314cd50b27f1c399365e85e4de2761ebcf350da85ff4518cc82f7cef64a477a7a5fd11d4a448b60015b60200201518585614eee565b90925090506106127f259a4d5cd83279b6dc9ca2008b669f82e91f23804e2524c5087a2452d52c33bd7f303abddb7ae0f35e3a6bd39314b347c3c3a433f72833dda1998ad2176258baa38b60026105b4565b90925090506106647f252b158900f31a7c0c00b924e7d3c8d61a60c5e9fd2b83251ba73d1dc0b680f57f29c8c2b3f0d74267bc2b0f9f3568838cdb0eee4719391790d93d0015c00ce5af8b60036105b4565b90925090506106b67f0c25f9f3c38b6a128d7d38c5625a3976d389b5f9f33098bb419968e4d18e150e7f21fb777462c7f4af71940423babc7f882f0c97be9620ef84f6f11974ee0edb8e8b60046105b4565b90925090506107087f2280a0fd7dbf95c450830906ffc607a373d5b9b56b9101138e925ad557eb355a7f0697ab7e9a5377e2759ab6d1283301ccae9c72bad14946a9513ee19be1ec825e8b60056105b4565b6020860152845261073b7f0000000000000000000000000000000000000000000000000000000000000000846000614f3a565b8351602085015161074f9190856002614f86565b600091505b600482116107ed576107db8b8b61076c8560026158fa565b6107779060006158b3565b81811061078657610786615855565b905060200201358c8c85600261079c91906158fa565b6107a79060016158b3565b8181106107b6576107b6615855565b90506020020135858560036107cb91906158fa565b6107d69060056158b3565b614f86565b816107e581615937565b925050610754565b6107f8836014614ff6565b6040850152600091505b600d8211610896576108848b8b61081a8560026158fa565b61082590600a6158b3565b81811061083457610834615855565b905060200201358c8c85600261084a91906158fa565b61085590600b6158b3565b81811061086457610864615855565b905060200201358585600361087991906158fa565b6107d69060016158b3565b8161088e81615937565b925050610802565b6108a183602b614ff6565b60608501526108b1836001614ff6565b6080850152600091505b600982116109205761090e8b8b6108d38560026158fa565b6108de9060266158b3565b8181106108ed576108ed615855565b905060200201358c8c85600261090391906158fa565b6108559060276158b3565b8161091881615937565b9250506108bb565b61092b83601f614ff6565b60a0850152600091505b6003821161099a576109888b8b61094d8560026158fa565b61095890603a6158b3565b81811061096757610967615855565b905060200201358c8c85600261097d91906158fa565b61085590603b6158b3565b8161099281615937565b925050610935565b6109a583600d614ff6565b60c0850152600091505b60468211610a1857610a068b8b6109c78560016158fa565b6109d29060426158b3565b8181106109e1576109e1615855565b90506020020135848460026109f691906158fa565b610a019060016158b3565b614f3a565b81610a1081615937565b9250506109af565b610a2383608f614ff6565b60e0850152600091505b60038211610a9257610a808b8b610a458560026158fa565b610a509060896158b3565b818110610a5f57610a5f615855565b905060200201358c8c856002610a7591906158fa565b61085590608a6158b3565b81610a8a81615937565b925050610a2d565b610a9d83600d614ff6565b61010085015260c0840151600080516020615a45833981519152907f1dba8b5bdd64ef6ce29a9039aca3c0e524395c43b9227b96c75090cc6cc7ec97900961012085015260c0840151600080516020615a45833981519152907f24a1fcd63e9f03b27281db85fe631ec8e5c466f8178a4ee94d4942b7ccd90e1c900961014085015260c0840151600080516020615a45833981519152907f20bab6e5f766b4edf82399e9c5ff0e40d4b6875321a3d8020e18521d8f5c7241900961016085015260c0840151610b70906304000000615058565b610180850152600080516020615a45833981519152610b9060018261596f565b610180860151086101a08501819052600080516020615a45833981519152907f30644e66c81e03716be83b486d6feabcc7ddd0fe6cbf5e72d585d142f7829b05096101c0850152600080516020615a45833981519152610bf160018261596f565b60c0860151089150610c0b84600e5b6020020151836150bf565b6101c08501526101a0840151600080516020615a45833981519152907f07baaa5b7af9cf52cd226bc56865f0f99ef8fcd4219060f09f43e9a148b5ab68096101e0850152600080516020615a45833981519152610c887f20bab6e5f766b4edf82399e9c5ff0e40d4b6875321a3d8020e18521d8f5c72418261596f565b60c0860151089150610c9b84600f610c00565b6101e08501526101a0840151600080516020615a45833981519152907f1c699f652457365bf2fc4fa2c5c63d6c4349b03cb46d633d7a2655c5da4b900a09610200850152600080516020615a45833981519152610d187f19277f31ecb5bfe8604677099c09556812b0b5c50cceb2b584098183a5a6c5c88261596f565b60c0860151089150610d2b846010610c00565b6102008501526101a0840151600080516020615a45833981519152907f205cdbaf03903a5c23e60eef0df90673bc65a25762694c501e3281153b4e588a09610220850152600080516020615a45833981519152610da87f082a7bd4c0a7e4352229d332c27a160da18f0d7c651f3047df41b80345532f6e8261596f565b60c0860151089150610dbb846011610c00565b6102208501526101a0840151600080516020615a45833981519152907f27db73b1a831278e143aab90091db38afdea3294c4ba05d1c697a392eb09cc7909610240850152600080516020615a45833981519152610e387f26501ebfe559ea5826f023d3e76e4b66f170cd940408eb5590a4075c80b498d68261596f565b60c0860151089150610e4b846012610c00565b6102408501526101a0840151600080516020615a45833981519152907f0204822d629ab653697f028f5fa17d23ac2ba08c60c7112d98ebd28f325f0af609610260850152600080516020615a45833981519152610ec87f0d5eb4c216db2c3262de3f6a2ef71a9be95ff21a7a1a50ed069d6131e7d54e5f8261596f565b60c0860151089150610edb846013610c00565b6102608501526101a0840151600080516020615a45833981519152907f2622622a60c0d9327ccf066a0f1fce13c48601b976affd1f41c2a72a9f77da6409610280850152600080516020615a45833981519152610f587f24a1fcd63e9f03b27281db85fe631ec8e5c466f8178a4ee94d4942b7ccd90e1c8261596f565b60c0860151089150610f6b846014610c00565b6102808501526102008401516101e0850151600080516020615a458339815191529190089150600080516020615a45833981519152846011602002015183089150600080516020615a45833981519152846012602002015183089150600080516020615a45833981519152846013602002015183086101e085015261103c8b8b604a818110610ffc57610ffc615855565b905060200201358c8c604881811061101657611016615855565b905060200201358d8d604981811061103057611030615855565b905060200201356150ef565b915061107b8b8b604b81811061105457611054615855565b905060200201358c8c604381811061106e5761106e615855565b90506020020135846150ef565b91506110ad8b8b604c81811061109357611093615855565b905060200201358c8c604481811061106e5761106e615855565b91506110df8b8b604d8181106110c5576110c5615855565b905060200201358c8c604581811061106e5761106e615855565b91506111118b8b604e8181106110f7576110f7615855565b905060200201358c8c604681811061106e5761106e615855565b91506111438b8b604f81811061112957611129615855565b905060200201358c8c604781811061106e5761106e615855565b610200850152600080516020615a458339815191528b8b604481811061116b5761116b615855565b905060200201358c8c604381811061118557611185615855565b905060200201350991506111ca8b8b60508181106111a5576111a5615855565b9050602002013583866010605481106111c0576111c0615855565b60200201516150ef565b610200850152600080516020615a458339815191528b8b60468181106111f2576111f2615855565b905060200201358c8c604581811061120c5761120c615855565b9050602002013509915061122c8b8b60518181106111a5576111a5615855565b610200850152600080516020615a458339815191528b8b606181811061125457611254615855565b90506020020135600080516020615a45833981519152611274919061596f565b6001089150600080516020615a458339815191528285600e602002015109610220850152600080516020615a458339815191528b8b60648181106112ba576112ba615855565b905060200201358c8c60648181106112d4576112d4615855565b90506020020135099150600080516020615a458339815191528b8b606481811061130057611300615855565b90506020020135600080516020615a45833981519152611320919061596f565b83089150600080516020615a4583398151915282856014602002015109610240850152600080516020615a458339815191528b8b606381811061136557611365615855565b90506020020135600080516020615a45833981519152611385919061596f565b8c8c606481811061139857611398615855565b90506020020135089150600080516020615a4583398151915284600e6020020151830961026085015260c08401516060850151600080516020615a458339815191529190096102a08501526101e0840151610280850151600080516020615a458339815191529190089150600080516020615a4583398151915261142a83600080516020615a4583398151915261596f565b6001086101e08501526080840151600080516020615a45833981519152908c8c604381811061145b5761145b615855565b90506020020135086102c08501526114a68b8b605b81811061147f5761147f615855565b905060200201358560036054811061149957611499615855565b60200201518660166111c0565b9150600080516020615a458339815191528b8b60628181106114ca576114ca615855565b9050602002013583096102e08501526102a08401516102c0850151600080516020615a458339815191529190089150600080516020615a458339815191528b8b606181811061151b5761151b615855565b9050602002013583096102c08501526102a0840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096103008501526080840151600080516020615a45833981519152908c8c604481811061159057611590615855565b90506020020135086103208501526115db8b8b605c8181106115b4576115b4615855565b90506020020135856003605481106115ce576115ce615855565b60200201518660196111c0565b9150600080516020615a45833981519152846017602002015183096102e0850152610300840151610320850151600080516020615a458339815191529190089150600080516020615a45833981519152846016602002015183096102c0850152610300840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096103008501526080840151600080516020615a45833981519152908c8c60458181106116a1576116a1615855565b90506020020135086103208501526116c58b8b605d8181106115b4576115b4615855565b9150600080516020615a45833981519152846017602002015183096102e0850152610300840151610320850151600080516020615a458339815191529190089150600080516020615a45833981519152846016602002015183096102c0850152610300840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096103008501526102c0840151600080516020615a4583398151915290611783908261596f565b6102e0860151089150600080516020615a4583398151915284600f602002015183096102c08501526102a0840151600080516020615a45833981519152907f18afdf23e9bd9302673fc1e076a492d4d65bd18ebc4d854ed189139bab313e5290096102a08501526080840151600080516020615a45833981519152908c8c604681811061181257611812615855565b90506020020135086102e085015261185d8b8b605e81811061183657611836615855565b905060200201358560036054811061185057611850615855565b60200201518660176111c0565b9150600080516020615a458339815191528b8b606581811061188157611881615855565b9050602002013583096103008501526102a08401516102e0850151600080516020615a458339815191529190089150600080516020615a458339815191528b8b60648181106118d2576118d2615855565b9050602002013583096102e08501526102a0840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096102a08501526080840151600080516020615a45833981519152908c8c604781811061194757611947615855565b905060200201350861032085015261196b8b8b605f8181106115b4576115b4615855565b9150600080516020615a45833981519152846018602002015183096103008501526102a0840151610320850151600080516020615a458339815191529190089150600080516020615a45833981519152846017602002015183096102e08501526102a0840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096102a08501526080840151600080516020615a45833981519152908c8c6042818110611a3157611a31615855565b9050602002013508610320850152611a558b8b60608181106115b4576115b4615855565b9150600080516020615a45833981519152846018602002015183096103008501526102a0840151610320850151600080516020615a458339815191529190089150600080516020615a45833981519152846017602002015183096102e08501526102a0840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096102a08501526102e0840151600080516020615a4583398151915290611b13908261596f565b610300860151089150600080516020615a4583398151915284600f602002015183096102a08501526060840151600080516020615a45833981519152908c8c6068818110611b6357611b63615855565b90506020020135089150600080516020615a45833981519152828c8c6067818110611b9057611b90615855565b90506020020135096102e08501526080840151600080516020615a45833981519152908c8c606a818110611bc657611bc6615855565b90506020020135089150600080516020615a45833981519152828560176020020151096102e0850152600080516020615a458339815191528b8b6052818110611c1157611c11615855565b905060200201358c8c6043818110611c2b57611c2b615855565b90506020020135096103008501526040840151600080516020615a458339815191529060000960408501819052610300850151600080516020615a458339815191529108610300850152600080516020615a458339815191528b8b6053818110611c9757611c97615855565b9050602002013585600260548110611cb157611cb1615855565b602002015108610320850152600080516020615a458339815191528b8b606a818110611cdf57611cdf615855565b90506020020135600080516020615a45833981519152611cff919061596f565b8c8c6068818110611d1257611d12615855565b9050602002013508610340850152600080516020615a458339815191528b8b6066818110611d4257611d42615855565b90506020020135600080516020615a45833981519152611d62919061596f565b6001089150600080516020615a458339815191528285600e602002015109610360850152600080516020615a458339815191528b8b6066818110611da857611da8615855565b905060200201358c8c6066818110611dc257611dc2615855565b90506020020135099150600080516020615a458339815191528b8b6066818110611dee57611dee615855565b90506020020135600080516020615a45833981519152611e0e919061596f565b83089150600080516020615a45833981519152828560146020020151096103808501526060840151610300850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c6066818110611e7357611e73615855565b90506020020135096103008501526080840151610320850151600080516020615a458339815191529190086103208501819052610300850151600080516020615a458339815191529190099150600080516020615a45833981519152611ee783600080516020615a4583398151915261596f565b6102e0860151089150600080516020615a4583398151915284600f602002015183096102e08501526103408401516101c0850151600080516020615a45833981519152919009610300850152600080516020615a458339815191528b8b6069818110611f5557611f55615855565b90506020020135600080516020615a45833981519152611f75919061596f565b8c8c6068818110611f8857611f88615855565b90506020020135089150600080516020615a458339815191528285601a6020020151099150600080516020615a4583398151915284600f602002015183096103408501526060840151600080516020615a45833981519152908c8c606d818110611ff457611ff4615855565b90506020020135089150600080516020615a45833981519152828c8c606c81811061202157612021615855565b90506020020135096103a08501526080840151600080516020615a45833981519152908c8c606f81811061205757612057615855565b90506020020135089150600080516020615a458339815191528285601d6020020151096103a08501526120ca8b8b605281811061209657612096615855565b905060200201358c8c60448181106120b0576120b0615855565b90506020020135866002605481106111c0576111c0615855565b6103c0850152600080516020615a458339815191528b8b606f8181106120f2576120f2615855565b90506020020135600080516020615a45833981519152612112919061596f565b8c8c606d81811061212557612125615855565b90506020020135086103e0850152600080516020615a458339815191528b8b606b81811061215557612155615855565b90506020020135600080516020615a45833981519152612175919061596f565b6001089150600080516020615a458339815191528285600e602002015109610400850152600080516020615a458339815191528b8b606b8181106121bb576121bb615855565b905060200201358c8c606b8181106121d5576121d5615855565b90506020020135099150600080516020615a458339815191528b8b606b81811061220157612201615855565b90506020020135600080516020615a45833981519152612221919061596f565b83089150600080516020615a458339815191528285601460200201510961042085015260608401516103c0850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c606b81811061228657612286615855565b90506020020135099150600080516020615a45833981519152846019602002015183099150600080516020615a458339815191526122d283600080516020615a4583398151915261596f565b6103a0860151089150600080516020615a4583398151915284600f602002015183096103a08501526103e08401516101c0850151600080516020615a458339815191529190096103c0850152600080516020615a458339815191528b8b606e81811061234057612340615855565b90506020020135600080516020615a45833981519152612360919061596f565b8c8c606d81811061237357612373615855565b90506020020135089150600080516020615a458339815191528285601f6020020151099150600080516020615a4583398151915284600f602002015183096103e08501526060840151600080516020615a45833981519152908c8c60728181106123df576123df615855565b90506020020135089150600080516020615a45833981519152828c8c607181811061240c5761240c615855565b90506020020135096104408501526080840151600080516020615a45833981519152908c8c607481811061244257612442615855565b90506020020135089150600080516020615a458339815191528285602260200201510961044085015261249b8b8b605281811061248157612481615855565b905060200201358c8c60458181106120b0576120b0615855565b610460850152600080516020615a458339815191528b8b60748181106124c3576124c3615855565b90506020020135600080516020615a458339815191526124e3919061596f565b8c8c60728181106124f6576124f6615855565b9050602002013508610480850152600080516020615a458339815191528b8b607081811061252657612526615855565b90506020020135600080516020615a45833981519152612546919061596f565b6001089150600080516020615a458339815191528285600e6020020151096104a0850152600080516020615a458339815191528b8b607081811061258c5761258c615855565b905060200201358c8c60708181106125a6576125a6615855565b90506020020135099150600080516020615a458339815191528b8b60708181106125d2576125d2615855565b90506020020135600080516020615a458339815191526125f2919061596f565b83089150600080516020615a45833981519152828560146020020151096104c08501526060840151610460850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c607081811061265757612657615855565b90506020020135099150600080516020615a45833981519152846019602002015183099150600080516020615a458339815191526126a383600080516020615a4583398151915261596f565b610440860151089150600080516020615a4583398151915284600f602002015183096104408501526104808401516101c0850151600080516020615a45833981519152919009610460850152600080516020615a458339815191528b8b607381811061271157612711615855565b90506020020135600080516020615a45833981519152612731919061596f565b8c8c607281811061274457612744615855565b90506020020135089150600080516020615a45833981519152828560246020020151099150600080516020615a4583398151915284600f602002015183096104808501526060840151600080516020615a45833981519152908c8c60778181106127b0576127b0615855565b90506020020135089150600080516020615a45833981519152828c8c60768181106127dd576127dd615855565b90506020020135096104e08501526080840151600080516020615a45833981519152908c8c607981811061281357612813615855565b90506020020135089150600080516020615a45833981519152828560276020020151096104e085015261286c8b8b605281811061285257612852615855565b905060200201358c8c60468181106120b0576120b0615855565b610500850152600080516020615a458339815191528b8b607981811061289457612894615855565b90506020020135600080516020615a458339815191526128b4919061596f565b8c8c60778181106128c7576128c7615855565b9050602002013508610520850152600080516020615a458339815191528b8b60758181106128f7576128f7615855565b90506020020135600080516020615a45833981519152612917919061596f565b6001089150600080516020615a458339815191528285600e602002015109610540850152600080516020615a458339815191528b8b607581811061295d5761295d615855565b905060200201358c8c607581811061297757612977615855565b90506020020135099150600080516020615a458339815191528b8b60758181106129a3576129a3615855565b90506020020135600080516020615a458339815191526129c3919061596f565b83089150600080516020615a45833981519152828560146020020151096105608501526060840151610500850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c6075818110612a2857612a28615855565b90506020020135099150600080516020615a45833981519152846019602002015183099150600080516020615a45833981519152612a7483600080516020615a4583398151915261596f565b6104e0860151089150600080516020615a4583398151915284600f602002015183096103208501526105208401516101c0850151600080516020615a458339815191529190096104e0850152600080516020615a458339815191528b8b6078818110612ae257612ae2615855565b90506020020135600080516020615a45833981519152612b02919061596f565b8c8c6077818110612b1557612b15615855565b90506020020135089150600080516020615a45833981519152828560296020020151099150600080516020615a4583398151915284600f602002015183096105008501526060840151600080516020615a45833981519152908c8c607c818110612b8157612b81615855565b90506020020135089150600080516020615a45833981519152828c8c607b818110612bae57612bae615855565b90506020020135096105208501526080840151600080516020615a45833981519152908c8c607e818110612be457612be4615855565b90506020020135089150600080516020615a4583398151915282856029602002015109610520850152612c3d8b8b6054818110612c2357612c23615855565b905060200201358c8c60438181106120b0576120b0615855565b610580850152600080516020615a458339815191528b8b6055818110612c6557612c65615855565b9050602002013585600260548110612c7f57612c7f615855565b6020020151086105a0850152600080516020615a458339815191528b8b607e818110612cad57612cad615855565b90506020020135600080516020615a45833981519152612ccd919061596f565b8c8c607c818110612ce057612ce0615855565b90506020020135086105c0850152600080516020615a458339815191528b8b607a818110612d1057612d10615855565b90506020020135600080516020615a45833981519152612d30919061596f565b6001089150600080516020615a458339815191528285600e6020020151096105e0850152600080516020615a458339815191528b8b607a818110612d7657612d76615855565b905060200201358c8c607a818110612d9057612d90615855565b90506020020135099150600080516020615a458339815191528b8b607a818110612dbc57612dbc615855565b90506020020135600080516020615a45833981519152612ddc919061596f565b83089150600080516020615a45833981519152828560146020020151096106008501526060840151610580850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c607a818110612e4157612e41615855565b905060200201350961058085015260808401516105a0850151600080516020615a458339815191529190089150600080516020615a458339815191528285602c6020020151099150600080516020615a45833981519152612eb083600080516020615a4583398151915261596f565b610520860151089150600080516020615a4583398151915284600f602002015183096105208501526105c08401516101c0850151600080516020615a45833981519152919009610580850152600080516020615a458339815191528b8b607d818110612f1e57612f1e615855565b90506020020135600080516020615a45833981519152612f3e919061596f565b8c8c607c818110612f5157612f51615855565b90506020020135089150600080516020615a458339815191528285602e6020020151099150600080516020615a4583398151915284600f602002015183096105a08501526060840151600080516020615a45833981519152908c8c6081818110612fbd57612fbd615855565b90506020020135089150600080516020615a45833981519152828c8c6080818110612fea57612fea615855565b90506020020135096105c08501526080840151600080516020615a45833981519152908c8c608381811061302057613020615855565b90506020020135089150600080516020615a458339815191528285602e6020020151096105c085015261305f8b8b6056818110612c2357612c23615855565b610620850152600080516020615a458339815191528b8b605781811061308757613087615855565b90506020020135856002605481106130a1576130a1615855565b602002015108610640850152600080516020615a458339815191528b8b60838181106130cf576130cf615855565b90506020020135600080516020615a458339815191526130ef919061596f565b8c8c608181811061310257613102615855565b9050602002013508610660850152600080516020615a458339815191528b8b607f81811061313257613132615855565b90506020020135600080516020615a45833981519152613152919061596f565b6001089150600080516020615a458339815191528285600e602002015109610680850152600080516020615a458339815191528b8b607f81811061319857613198615855565b905060200201358c8c607f8181106131b2576131b2615855565b90506020020135099150600080516020615a458339815191528b8b607f8181106131de576131de615855565b90506020020135600080516020615a458339815191526131fe919061596f565b83089150600080516020615a45833981519152828560146020020151096106a08501526060840151610620850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c607f81811061326357613263615855565b90506020020135096106208501526080840151610640850151600080516020615a458339815191529190089150600080516020615a45833981519152828560316020020151099150600080516020615a458339815191526132d283600080516020615a4583398151915261596f565b6105c0860151089150600080516020615a4583398151915284600f602002015183096105c08501526106608401516101c0850151600080516020615a45833981519152919009610620850152600080516020615a458339815191528b8b608281811061334057613340615855565b90506020020135600080516020615a45833981519152613360919061596f565b8c8c608181811061337357613373615855565b90506020020135089150600080516020615a45833981519152828560336020020151099150600080516020615a4583398151915284600f602002015183096106408501526060840151600080516020615a45833981519152908c8c60868181106133df576133df615855565b90506020020135089150600080516020615a45833981519152828c8c608581811061340c5761340c615855565b90506020020135096106608501526080840151600080516020615a45833981519152908c8c608881811061344257613442615855565b90506020020135089150600080516020615a45833981519152828560336020020151096106608501526134818b8b6058818110612c2357612c23615855565b6106c0850152600080516020615a458339815191528b8b60598181106134a9576134a9615855565b90506020020135856002605481106134c3576134c3615855565b6020020151086040850152600080516020615a458339815191528b8b60888181106134f0576134f0615855565b90506020020135600080516020615a45833981519152613510919061596f565b8c8c608681811061352357613523615855565b90506020020135086106e0850152600080516020615a458339815191528b8b608481811061355357613553615855565b90506020020135600080516020615a45833981519152613573919061596f565b6001089150600080516020615a458339815191528285600e602002015109610700850152600080516020615a458339815191528b8b60848181106135b9576135b9615855565b905060200201358c8c60848181106135d3576135d3615855565b90506020020135099150600080516020615a458339815191528b8b60848181106135ff576135ff615855565b90506020020135600080516020615a4583398151915261361f919061596f565b83089150600080516020615a458339815191528285601460200201510961028085015260608401516106c0850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c608481811061368457613684615855565b9050602002013509606085015260808401516040850151600080516020615a458339815191529190089150600080516020615a45833981519152828560036020020151099150600080516020615a458339815191526136f183600080516020615a4583398151915261596f565b610660860151089150600080516020615a4583398151915284600f6020020151830960408501526106e08401516101c0850151600080516020615a458339815191529190096060850152600080516020615a458339815191528b8b608781811061375d5761375d615855565b90506020020135600080516020615a4583398151915261377d919061596f565b8c8c608681811061379057613790615855565b90506020020135089150600080516020615a45833981519152828560376020020151099150600080516020615a4583398151915284600f60200201518309608085015260a08401516137e69060008660106111c0565b915061381b8480600560200201517f35342d2c29302f2827192b2a24232226251f1e1d21201a18171c1b15161312118561511c565b915061383984806005602002015168ff040302143832312e8561511c565b915061384c8285600d60200201516150bf565b6040850152610100840151600080516020615a4583398151915290800960608501819052610100850151600080516020615a45833981519152910960808501526138d68b8b608f8181106138a2576138a2615855565b905060200201358c8c60908181106138bc576138bc615855565b905060200201358660046054811061055c5761055c615855565b90925090506138ef848c8c65ffff088b038d868661519f565b909250905061393282828d8d608981811061390c5761390c615855565b905060200201358e8e608a81811061392657613926615855565b905060200201356152a7565b6101e08601526101c08501526101608401516080850151600080516020615a4583398151915291900960a085015260e08401516080850151600080516020615a45833981519152919009610160850181905260e0850151600080516020615a4583398151915291096101a0850181905260e0850151600080516020615a458339815191529109610200850181905260e0850151600080516020615a458339815191529109610220850181905260e0850151600080516020615a458339815191529109610240850181905260e0850151600080516020615a458339815191529109610260850152600080516020615a458339815191528b8b6087818110613a3a57613a3a615855565b9050602002013585601360548110613a5457613a54615855565b6020020151099150613a75848c8c6bffff0b6e0d731078117d128286615315565b9150613ab28b8b6069818110613a8d57613a8d615855565b9050602002013585600460548110613aa757613aa7615855565b6020020151846150ef565b6102808501526101408401516060850151600080516020615a45833981519152919009610140850152613b188b8b6063818110613af157613af1615855565b9050602002013585600360548110613b0b57613b0b615855565b60200201518660146111c0565b610280850152610120840151610100850151600080516020615a4583398151915291900961012085015260e0840151610100850151600080516020615a458339815191529190096102a0850152600091505b6008821015613c1957600080516020615a4583398151915284613b8e8460006158fa565b613b999060076158b3565b60548110613ba957613ba9615855565b602002015185613bba8560016158fa565b613bc59060156158b3565b60548110613bd557613bd5615855565b60200201510984613be78460016158fa565b613bf29060166158b3565b60548110613c0257613c02615855565b602002015281613c1181615937565b925050613b6a565b600080516020615a458339815191528b8b6085818110613c3b57613c3b615855565b9050602002013585601d60548110613c5557613c55615855565b6020020151099150613c7e848c8c73ffff0848156216651767186c19711a761b7b1c8086615315565b9150600080516020615a45833981519152828560146020020151086102808501526102a08401516060850151600080516020615a45833981519152919008606085015260e0840151600080516020615a458339815191529080096102a0850181905260e0850151600080516020615a4583398151915291096103c0850152600091505b6032821015613db057600080516020615a4583398151915284613d258460006158fa565b613d309060076158b3565b60548110613d4057613d40615855565b602002015185613d518560016158fa565b613d5c90601e6158b3565b60548110613d6c57613d6c615855565b60200201510984613d7e8460016158fa565b613d8990601f6158b3565b60548110613d9957613d99615855565b602002015281613da881615937565b925050613d01565b600080516020615a458339815191528b8b605a818110613dd257613dd2615855565b9050602002013585605060548110613dec57613dec615855565b602002015109610a208501526101808401516109e0850151600080516020615a45833981519152919009610a408501819052610180850151600080516020615a458339815191529109610a608501819052610180850151600080516020615a4583398151915291096101808501526109e08401516040850151613e7291908660516111c0565b9150613ea1848c8c7f3f50405141524253435444554556465747584859495b4a5c4b5d4c5e4d5f4e6086615315565b9150613ed0848c8c7f2f7a307c317e327f338134833584368637883849394a3a4b3b4c3c4d3d4e3e4f86615315565b9150613eff848c8c7f1f4620472161226423662468256a266b276d286f29702a722b742c752d772e7986615315565b9150613f16848c8c67ffff074315441e4586615315565b9150600080516020615a458339815191528b8b6042818110613f3a57613f3a615855565b9050602002013583089150600080516020615a458339815191528285601460200201510860408501526106c0840151610260850151600080516020615a458339815191529190086102608501526106a08401516103a0850151600080516020615a45833981519152919008610280850152610660840151610240850151600080516020615a45833981519152919008610240850152610640840151610380850151600080516020615a45833981519152919008610380850152610600840151610220850151600080516020615a458339815191529190086102208501526105e0840151610360850151600080516020615a458339815191529190086103608501526105a0840151610200850151600080516020615a45833981519152919008610200850152610580840151610340850151600080516020615a458339815191529190086103408501526105408401516101a0850151600080516020615a458339815191529190086101a0850152610520840151610320850151600080516020615a458339815191529190086103208501526104e0840151610160850151600080516020615a458339815191529190086101608501526104c0840151610300850151600080516020615a458339815191529190086103008501526104808401516080850151600080516020615a4583398151915291900860808501526104608401516102e0850151600080516020615a458339815191529190086102e08501526104408401516102c0850151600080516020615a458339815191529190086102c08501526104208401516060850151600080516020615a458339815191529190086060850152610400840151610100850151600080516020615a4583398151915291900861010085015261420d8b8b608f8181106141d9576141d9615855565b905060200201358c8c60908181106141f3576141f3615855565b905060200201358660056054811061055c5761055c615855565b9092509050614240848c8c7f182c192e1a301b321c341436098b03260a8d040a0b0e0d121016111a121e1322868661519f565b9092509050614267848c8c73ffff4f3a523c533e0c405038068908081628172a868661519f565b90925090506142b87e664f6a89a34d248445c568185b3df0822d3396dea9f9d2e9d43529a58ae3487f132fecdbd8477c405599f1c88897f0f4ddccc95895696530cc6446ac4137e42286604e6105b4565b909250905061430a7f1b40cd837026dfdbb6df3c4744da63e9e5a8d1660e225f816f2977c86b95a31b7f18f95e0be87b1fe22795f46b29c594ae559e0690d85822571acacf389576ecd486604d6105b4565b909250905061435c7f2f84599888b7bb19759153b8952e3450330b6ab6d14e927458e66d92759c27067f08d13eced574c8d09def1eab8d2c5d587b682c8fbd0cdda6f6a867f08faf9c1f86604c6105b4565b90925090506143ae7f13d1720ddb4933bfffffd6293776f43cc0e52d41749be8f32ce46530ae2477cd7f2aedb069508ff896c46d0895bec9977ec3f8880efe1d988f4895e4e71776486e86604b6105b4565b90925090506144007f0f77117979785d9d8dc4679d4db9a477b40cf4eeaf778708e82a1c734b4c00bb7f0a3f79406f6643a8345a64b0b98fbb7ddfdb35daf3ef78f49f245b5b2cd1bbe486604a6105b4565b90925090506144527f14fa5fb073ccc98551b6f0498b978d50f8b22761be87dffd89f9b342d17f10f87f283324c8f5bdeb0e7521421fe4af6172d9ece0181897f269368ae604e6b9efdc8660496105b4565b90925090506144a47f2bf75d9dd944249cd720ee71585980774cb83905b860feb5af3da42ca043b1157f07b4ff44a8e4250bf3ce16c06e8430b585a7a1e85243febe565a7929db37cc9f8660486105b4565b90925090506144f67f11f73e29244b44d54c1f2a6c9ee8c97294e6f9ca20108f5e3df9644e05d73af27f0d9bc372f4207ee05211e34d4c14eb5bb513151fff97b69fd0270dd3ac6e69f98660476105b4565b90925090506145487f25d344a083be7e69cb907b8705b3bab3417d4a23f06d43ca7b287028a88ec5837f2c03f591ec6858cdff27cadaac1a67a1dc9ab7877f898686efe7033e7fd02a168660466105b4565b909250905061459a7f2ad6d333c4ce75298934d4213ed43f37e3b58efdaf011ca21dfe28f30adafece7f1786d4c0a17ef0498d00e0ba0d6d062930a3833c940d0ec44381a841c6b7f73f8660456105b4565b90925090506145ec7f2bf75d9dd944249cd720ee71585980774cb83905b860feb5af3da42ca043b1157f07b4ff44a8e4250bf3ce16c06e8430b585a7a1e85243febe565a7929db37cc9f8660446105b4565b909250905061463e7f27cd85ecea3494f04879593ae873031d93dc7719449505fe793a7d88fff4d19e7f22a643b787a9ba74ec30e9c19362c00a29360a95f617d6fef549c62021e4cbcb8660436105b4565b90925090506146907f2fd08ae291ca0c95ada3f562b9f9be896737fd57493c4cefa087979abda4d2d67f04a6506069e2d39e944abcc54e70e881ccdd429ed4c1017fbe1099efeb70465f8660426105b4565b90925090506146e27f267eef8f848858b7d24eafe2f8631f1d041135de8e4bdb6522c2775357afc6467f0d12b24f7a7dc55ffa02c09f8ecd9a8aac8c044d9671855436faee0722a423948660416105b4565b90925090506147347f2eed9b77afb6dd8bbb2cf5d7793dd5a3225c8f590ef9070fc6111d69f19bc4507f29fa825da796671c1abca00af2c315317b19e67e1410dada6a2fc34f1d402f408660406105b4565b90925090506147867f0bfeb30042200560ff6218d6dc1060fe5aa5086bef6c82ae86a3355e830e07fd7f1614eb3d1c218c6da1c77d02cffc147a8c64b41a0e377155cde9a6d2bb4627cd86603f6105b4565b90925090506147d87f0cf6886df1426404f912fb52edf579c1077bf573006dbca87d6a181935e234ff7f211b654670c8567a5d6fa5739e3e8e29d8288592ea47e5cd5bf8b23a6e843dd786603e6105b4565b909250905061482a7f272a3415b7e303bf0bb85aa5c0ff3609501e5b2464aebb93fec39e2fb413a1ac7f21ee830e0b21d16673fe14b97fc4d3bedebc721661ea6563e93a3c22c2d83fd186603d6105b4565b909250905061487c7f1394472a7573940ae385caa13cff2d775d9b4401b316dd2ee1dd3a4cb53eb05f7f0c585ec5a80cc04ad0a91ec2fbea54dae78a4269db22da099cfdb8289f81373d86603c6105b4565b90925090506148ce7f0b790ee6c5b25cded870dc285ce2dac4f306be5cd112bc16283b8f770bdf161a7f2c3c609710493ba0578607c093e93e31c9bdacea8ad2314c2bcf171b17c5f81386603b6105b4565b90925090506149207f2d67fbd36c5f1a5e22a39db5dc97894591edc23b1d6b9774e3264cae237bb2c37f04a8a2ecb7f6e0b8d22187a5b8343d81f1771e5f11571579c19636cfa39c1e2286603a6105b4565b90925090506149727f212914adf2f7bde74e593d6c9954f3ca5f0971f4234c71a817f324c5cab470d87f2e934dc5970b910a6f2959d9d67dd0d60cf50e93e4d51a053a961a91cad410248660396105b4565b90925090506149c47f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008660386105b4565b90925090506149ef848c8c77ffff070015021e041f06250c28102b142e18311c34203724868661519f565b85516020870151929450909250614a0991849184916152a7565b60208601528452614a1e60016002868161055c565b85516020870151929450909250614a369184846153b7565b602086018190528186526101c08601516101e090960151959d959c50909a509850929650505050505050565b614a6a615629565b80517f186282957db913abd99f91db59fe69922e95040603ef44c0bd7aa3adeef8f5ac905280517f17944351223333f260ddc3b4af45191b856689eda9eab5cbcddbbe570ce860d2602091820152810180517f298adc7396bd3865cbf6d6df91bae406694e6d2215baa893bdeadb63052895f49052517f297772d34bc9aa8ae56162486363ffe417b02dc7e8c207fc2cc20203e67a02ad9060015b602002015290565b614b15615629565b80517f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2905280517f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed602091820152810180517f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec9052517f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d906001614b05565b60008083516006614bc591906158fa565b905060008167ffffffffffffffff811115614be257614be26158cb565b604051908082528060200260200182016040528015614c0b578160200160208202803683370190505b509050614c1661568c565b60008551875114614c2657600080fd5b60005b8751811015614e5f57878181518110614c4457614c44615855565b60200260200101516000015184826006614c5e91906158fa565b614c699060006158b3565b81518110614c7957614c79615855565b602002602001018181525050878181518110614c9757614c97615855565b60200260200101516020015184826006614cb191906158fa565b614cbc9060016158b3565b81518110614ccc57614ccc615855565b602002602001018181525050868181518110614cea57614cea615855565b6020908102919091010151515184614d038360066158fa565b614d0e9060026158b3565b81518110614d1e57614d1e615855565b602002602001018181525050868181518110614d3c57614d3c615855565b60209081029190910181015151015184614d578360066158fa565b614d629060036158b3565b81518110614d7257614d72615855565b602002602001018181525050868181518110614d9057614d90615855565b602002602001015160200151600060028110614dae57614dae615855565b602002015184614dbf8360066158fa565b614dca9060046158b3565b81518110614dda57614dda615855565b602002602001018181525050868181518110614df857614df8615855565b602002602001015160200151600160028110614e1657614e16615855565b602002015184614e278360066158fa565b614e329060056158b3565b81518110614e4257614e42615855565b602090810291909101015280614e5781615937565b915050614c29565b50602082602086026020860160085afa905080614e7b57600080fd5b5051151595945050505050565b600080614e936156aa565b6000614eb2604051806040016040528060008152602001600081525090565b8783526020830187905260408084018790528160608560075afa915081614ed857600080fd5b8051602090910151909890975095505050505050565b600080614ef96156c8565b87815260208101879052604081018690526060810185905260808101849052614f21816153fc565b6060810151608090910151909890975095505050505050565b60028282614f4781615937565b935060908110614f5957614f59615855565b6020020152828282614f6a81615937565b935060908110614f7c57614f7c615855565b6020020152505050565b60018282614f9381615937565b935060908110614fa557614fa5615855565b6020020152838282614fb681615937565b935060908110614fc857614fc8615855565b6020020152828282614fd981615937565b935060908110614feb57614feb615855565b602002015250505050565b600080838363ffffffff166090811061501157615011615855565b60200201818152505060006150438484602061502d9190615986565b6150389060016159b2565b63ffffffff16615437565b51905061504f8161546d565b93525090919050565b600061506261560b565b61506a61568c565b6020808352828101819052604083018190526060830186905260808301859052600080516020615a4583398151915260a08401526000908260c08560055afa9050806150b557600080fd5b5051949350505050565b6000816000036150ce57600080fd5b600080516020615a458339815191526150e6836155e1565b84099392505050565b6000600080516020615a4583398151915282600080516020615a4583398151915285870908949350505050565b6000805b60208110156151955760ff80851690811461517c5760089490941c93600080516020615a4583398151915287826054811061515d5761515d615855565b6020020151600080516020615a45833981519152868909089350615182565b50615195565b5061518e6001826158b3565b9050615120565b5090949350505050565b6000806151aa6156c8565b606081018590526080810184905260005b602081101561528c5760ff80881690811461527357601088901c9760081c60ff168a8a838181106151ee576151ee615855565b905060200201358460006005811061520857615208615855565b60200201528a8a61521a8460016158b3565b81811061522957615229615855565b905060200201358460016005811061524357615243615855565b60200201528b816054811061525a5761525a615855565b6020020151604085015261526d846153fc565b50615279565b5061528c565b506152856002826158b3565b90506151bb565b50606081015160809091015190999098509650505050505050565b60008060006152c9604051806040016040528060008152602001600081525090565b6152d16156e6565b888152602081018890526040808201889052606082018790528260808360065afa9250826152fe57600080fd5b508051602090910151909890975095505050505050565b6000805b60208110156153ac5760ff80851690811461539357601085901c9460081c60ff16600080516020615a4583398151915285600080516020615a458339815191528b846054811061536b5761536b615855565b60200201518b8b8781811061538257615382615855565b905060200201350908945050615399565b506153ac565b506153a56002826158b3565b9050615319565b509095945050505050565b6000806153ef8686866153ea877f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761596f565b6152a7565b9150915094509492505050565b600060406020830160608460075afa90508061541757600080fd5b60406060830160806020850160065afa90508061543357600080fd5b5050565b61543f61568c565b6000602082848660026107d05a03fa9050808061545857fe5b5080615466576154666159da565b5092915050565b6000816155c08160008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b6008827fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff0016901c1790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b6010827fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff000016901c1790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b6020827fffffffff00000000ffffffff00000000ffffffff00000000ffffffff0000000016901c17905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b6040827fffffffffffffffff0000000000000000ffffffffffffffff000000000000000016901c179050608081901b608082901c179050919050565b90506155da600080516020615a4583398151915282615a09565b9392505050565b6000615605826156006002600080516020615a4583398151915261596f565b615058565b92915050565b6040518060c001604052806006906020820280368337509192915050565b604051806040016040528061563c615704565b8152602001615649615704565b905290565b60405180610a8001604052806054906020820280368337509192915050565b6040518061120001604052806090906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60008083601f84011261573457600080fd5b50813567ffffffffffffffff81111561574c57600080fd5b6020830191508360208260051b850101111561576757600080fd5b9250929050565b60008060008060006060868803121561578657600080fd5b853567ffffffffffffffff8082111561579e57600080fd5b6157aa89838a01615722565b909750955060208801359150808211156157c357600080fd5b506157d088828901615722565b96999598509660400135949350505050565b600060208083528351808285015260005b8181101561580f578581018301518582016040015282016157f3565b81811115615821576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156158c6576158c6615884565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561593257615932615884565b500290565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361596857615968615884565b5060010190565b60008282101561598157615981615884565b500390565b600063ffffffff808316818516818304811182151516156159a9576159a9615884565b02949350505050565b600063ffffffff8083168185168083038211156159d1576159d1615884565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082615a3f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c634300080f000a" | |||
|
|||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensure proper error handling in the initialization function.
Using panic
for error handling in the init
function can cause the entire application to terminate if the JSON unmarshalling fails. Consider using a more graceful error handling strategy, such as logging the error and continuing with a default configuration, or returning an error from the initialization function if possible.
import '@kroma/hardhat-deploy-config' | ||
import { DeployFunction } from 'hardhat-deploy/dist/types' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider using TypeScript's import type
for imports only used as types to clarify their usage and potentially optimize bundling.
- import { DeployFunction } from 'hardhat-deploy/dist/types'
+ import type { DeployFunction } from 'hardhat-deploy/dist/types'
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.
import '@kroma/hardhat-deploy-config' | |
import { DeployFunction } from 'hardhat-deploy/dist/types' | |
import '@kroma/hardhat-deploy-config' | |
import type { DeployFunction } from 'hardhat-deploy/dist/types' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Revert an implemented minting system because it is no longer needed.
Delete the MintManager contract and related implementation and tests, but keep the GovernanceToken contract.