Skip to content
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

Merged
merged 1 commit into from
May 27, 2024
Merged

chore: revert mint manager #324

merged 1 commit into from
May 27, 2024

Conversation

Pangssu
Copy link
Contributor

@Pangssu Pangssu commented May 23, 2024

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.

@Pangssu Pangssu requested a review from a team as a code owner May 23, 2024 06:28
Copy link
Contributor

coderabbitai bot commented May 23, 2024

Walkthrough

The changes primarily involve the removal of the MintManager functionality across various files, impacting both code and tests. This includes deleting related constants, structs, and logic in contracts, deployment scripts, and test files. Additionally, there are updates to hexadecimal values in certain bindings and minor adjustments in gas costs for various test functions.

Changes

Files & Paths Change Summary
kroma-bindings/bindings/l1block.go Updated Bin field in L1BlockMetaData with new hexadecimal values.
kroma-bindings/bindings/l1block_more.go Updated L1BlockDeployedBin variable with a new hexadecimal value.
kroma-bindings/predeploys/addresses.go Removed MintManager constant and its initialization logic.
kroma-chain-ops/genesis/config.go Removed minting-related fields from DeployConfig struct.
kroma-chain-ops/genesis/layer_two_test.go Updated file permission in os.WriteFile and adjusted length comparison in require.Equal.
kroma-chain-ops/immutables/immutables.go Removed MintManager struct and related logic from PredeploysImmutableConfig.
kroma-chain-ops/immutables/immutables_test.go Removed MintManager field and struct from test functions.
op-e2e/bridge_test.go Removed minting-related imports and commented out minting configuration code.
op-e2e/setup.go Removed assignment to deployConfig.MintManagerMintActivatedBlock.
op-e2e/system_test.go Removed minting configuration logic in TestL1InfoContract function.
packages/contracts/.gas-snapshot Minor adjustments in gas costs for various test functions.
packages/contracts/.storage-layout Removed storage layout declarations related to MintManager.
packages/contracts/contracts/L2/L1Block.sol Removed imports and calls related to MintManager.
packages/contracts/contracts/governance/GovernanceToken.sol Removed MINT_MANAGER address declaration and related logic.
packages/contracts/contracts/libraries/Predeploys.sol Removed MINT_MANAGER constant declaration.
packages/contracts/contracts/test/GovernanceToken.t.sol Removed mintManager address and adjusted tests to use bridge address.
packages/contracts/contracts/test/L1Block.t.sol Removed MintManager import and deleted L1BlockTokenMintTest contract.
packages/contracts/deploy/L1/017-GovernanceToken.ts Removed zeroAddress argument and assertion for MINT_MANAGER.
packages/contracts/deploy/L2/011-GovernanceToken.ts Removed import and reference to predeploys.MintManager.
packages/contracts/scripts/rename-deploy-scripts.ts Removed MintManager from L2_ORDERED_NAMES array.
packages/contracts/scripts/storage-snapshot.sh Removed MintManager contract declaration from list of contracts.
packages/contracts/src/constants.ts Removed MintManager entry from predeploys constant object.

Tip

New Features and Improvements

Review Settings

Introduced 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 Instructions

CodeRabbit 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 Rules

We 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 Tools

We are continually expanding our support for static analysis tools. We have added support for biome, hadolint, and ast-grep. Update the settings in your .coderabbit.yaml file or head over to the settings page to enable or disable the tools you want to use.

Tone Settings

Users can now customize CodeRabbit to review code in the style of their favorite characters or personalities. Here are some of our favorite examples:

  • Mr. T: "You must talk like Mr. T in all your code reviews. I pity the fool who doesn't!"
  • Pirate: "Arr, matey! Ye must talk like a pirate in all yer code reviews. Yarrr!"
  • Snarky: "You must be snarky in all your code reviews. Snark, snark, snark!"

Revamped Settings Page

We 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 .coderabbit.yaml will be reflected in the settings page, and vice versa.

Miscellaneous

  • Turn off free summarization: You can switch off free summarization of PRs opened by users not on a paid plan using the enable_free_tier setting.
  • Knowledge-base scope: You can now set the scope of the knowledge base to either the repository (local) or the organization (global) level using the knowledge_base setting. In addition, you can specify Jira project keys and Linear team keys to limit the knowledge base scope for those integrations.
  • High-level summary placement: You can now customize the location of the high-level summary in the PR description using the high_level_summary_placeholder setting (default @coderabbitai summary).
  • Revamped request changes workflow: You can now configure CodeRabbit to auto-approve or request changes on PRs based on the review feedback using the request_changes_workflow setting.

Tip

Early Access Features
  • gpt-4o model for chat

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?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to full the review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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-layout

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/zkverifier_more.go (1)

Line range hint 18-24: The init function is correctly implemented. Using panic 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 for GovernanceTokenOwner when EnableGovernance 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 the Copy 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

Commits Files that changed from the base of the PR and between a33197c and 3266efb.
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 for L1GovernanceToken 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: Library Predeploys 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 file immutables_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: Contract L1Block 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 to L1BlockDeployedBin appears correct and isolated.

packages/contracts/contracts/test/GovernanceToken.t.sol (7)

25-25: Instantiation of GovernanceToken in the setUp method is correctly implemented.


64-64: Addition of mint operation in test_burn_succeeds is necessary for the test logic.


79-79: Addition of mint operation in test_burn_fromBridge_succeeds is necessary for the test logic.


94-94: Addition of mint operation in test_burnFrom_succeeds is necessary for the test logic.


113-113: Addition of mint operation in test_transfer_succeeds is necessary for the test logic.


129-129: Addition of mint operation in test_approve_succeeds is necessary for the test logic.


143-143: Addition of mint operation in test_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 constant GovernanceTokenStorageLayoutJSON is well-defined and crucial for the storage layout specification of the GovernanceToken.


16-16: The variable GovernanceTokenDeployedBin is correctly declared and holds the binary representation of the deployed GovernanceToken.


Line range hint 18-25: The init 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 for Colosseum.sol:Colosseum appears consistent and correctly organized.


Line range hint 13-21: Storage layout for SecurityCouncil.sol:SecurityCouncil is well-organized and makes appropriate use of __gap for future upgrades.


Line range hint 23-31: Storage layout for ValidatorPool.sol:ValidatorPool is correctly structured, ensuring no storage collisions.


Line range hint 33-41: Storage layout for L1CrossDomainMessenger.sol:L1CrossDomainMessenger effectively uses __gap for upgradeability and correctly places mappings and addresses.


Line range hint 43-45: Storage layout for L1StandardBridge.sol:L1StandardBridge is simple and correctly organized with appropriate use of __gap.


Line range hint 47-49: Storage layout for L2OutputOracle.sol:L2OutputOracle is well-organized, especially the placement of the struct array in a separate slot.


Line range hint 51-53: Storage layout for KromaPortal.sol:KromaPortal is correctly organized, with good use of __gap for future modifications.


Line range hint 55-57: Storage layout for SystemConfig.sol:SystemConfig is well-organized, ensuring correct alignment and use of __gap.


Line range hint 59-61: Storage layout for L1Block.sol:L1Block is straightforward and correctly organized, ensuring no storage collisions.


Line range hint 63-65: Storage layout for L2CrossDomainMessenger.sol:L2CrossDomainMessenger is well-organized, with effective use of __gap and correct placement of mappings.


Line range hint 67-69: Storage layout for L2StandardBridge.sol:L2StandardBridge is simple and correctly organized with appropriate use of __gap.


Line range hint 71-73: Storage layout for L2ToL1MessagePasser.sol:L2ToL1MessagePasser is straightforward and correctly organized.

kroma-bindings/bindings/zkverifier_more.go (2)

Line range hint 11-11: The constant ZKVerifierStorageLayoutJSON is well-defined and follows Go conventions.


Line range hint 13-15: The variable declarations for ZKVerifierStorageLayout and ZKVerifierDeployedBin 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: The DeployConfig 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 the GovernanceToken are correctly updated to reflect the latest contract specifications.


Line range hint 53-62: Ensure proper error handling in DeployGovernanceToken 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

Copy link
Contributor

@sm-stack sm-stack left a 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.
@Pangssu Pangssu force-pushed the chore/revert-mint-manager branch from 3266efb to ec4b9de Compare May 27, 2024 05:17
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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's import 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 the node: 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 of any to ensure type safety and clarity.

- default?: any
+ default?: string | number | boolean | undefined
packages/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

Commits Files that changed from the base of the PR and between 3266efb and ec4b9de.
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 for forge is clearly implemented and ensures the necessary tool is available before proceeding.

kroma-bindings/bindings/l1block_more.go (1)

16-16: The variable declaration for L1BlockDeployedBin is correctly implemented and aligns with the updated hexadecimal values.

packages/contracts/src/contract-artifacts.ts (1)

Line range hint 9-123: The getContractArtifact 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 the DeployConfig struct's documentation is up-to-date and accurately describes its purpose and usage.


Line range hint 25-25: Review the remaining fields in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the documentation and comments within the DeployConfig struct are clear, accurate, and provide sufficient context for new developers.


Line range hint 25-25: Check for any deprecated fields or methods in DeployConfig that should be removed or updated in future PRs.


Line range hint 25-25: Ensure that all methods related to DeployConfig, such as Copy, Check, and CheckAddresses, are updated to reflect the changes in the struct.


Line range hint 25-25: Ensure that the DeployConfig 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 in DeployConfig, especially if the struct is used frequently during runtime.


Line range hint 25-25: Confirm that the changes in DeployConfig are reflected in any relevant documentation or developer guides.


Line range hint 25-25: Ensure that the changes in DeployConfig 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 in DeployConfig, especially regarding data privacy and security.


Line range hint 25-25: Ensure that the changes in DeployConfig are communicated to all relevant stakeholders, including developers, system administrators, and end-users.


Line range hint 25-25: Confirm that the changes in DeployConfig are tested in a staging or pre-production environment before being deployed to production.


Line range hint 25-25: Ensure that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig 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 in DeployConfig 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 in DeployConfig, particularly in terms of access control and data integrity.


Line range hint 25-25: Ensure that the changes in DeployConfig are properly documented and communicated to all relevant parties.


Line range hint 25-25: Confirm that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are tested for compatibility with different operating systems and platforms.


Line range hint 25-25: Verify that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are reflected in any relevant metrics or monitoring systems.


Line range hint 25-25: Confirm that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig do not introduce any new security vulnerabilities or risks.


Line range hint 25-25: Verify that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are properly documented and communicated to all stakeholders.


Line range hint 25-25: Confirm that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are properly tested and validated in a staging or pre-production environment.


Line range hint 25-25: Verify that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are properly documented and communicated to all relevant parties.


Line range hint 25-25: Confirm that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are tested for compatibility with different operating systems and platforms.


Line range hint 25-25: Verify that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are reflected in any relevant metrics or monitoring systems.


Line range hint 25-25: Confirm that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig do not introduce any new security vulnerabilities or risks.


Line range hint 25-25: Verify that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are properly documented and communicated to all stakeholders.


Line range hint 25-25: Confirm that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are properly tested and validated in a staging or pre-production environment.


Line range hint 25-25: Verify that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are properly documented and communicated to all relevant parties.


Line range hint 25-25: Confirm that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are tested for compatibility with different operating systems and platforms.


Line range hint 25-25: Verify that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are reflected in any relevant metrics or monitoring systems.


Line range hint 25-25: Confirm that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig do not introduce any new security vulnerabilities or risks.


Line range hint 25-25: Verify that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are properly documented and communicated to all stakeholders.


Line range hint 25-25: Confirm that the changes in DeployConfig 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 in DeployConfig.


Line range hint 25-25: Ensure that the changes in DeployConfig are properly tested and validated in a staging or pre-production environment.


Line range hint 25-25: Verify that the changes in DeployConfig 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 and ErrInvalidImmutablesConfig are still relevant and used throughout the file kroma-chain-ops/genesis/config.go.

  • ErrInvalidDeployConfig is used in multiple fmt.Errorf statements to handle various configuration validation errors.
  • ErrInvalidImmutablesConfig is also used in several fmt.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.go

Length of output: 5417


Line range hint 25-25: Ensure that the DeployConfig 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 the kroma-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 the DeployConfig 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 within config_test.go, indicating that it is indeed covered by unit tests.

  • config_test.go contains references to DeployConfig 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.go

Length 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.go

Length of output: 510


Line range hint 25-25: Check that all fields in the DeployConfig 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.go

Length 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 with DeployConfig 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 where DeployConfig is used. The rg output shows numerous references to DeployConfig, 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 from DeployConfig 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 the op-e2e and kroma-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 within DeployConfig 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 the DeployConfig 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 for GovernanceToken.

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 in DeployGovernanceToken.

Consider adding more detailed error messages or handling specific error scenarios if not already covered.

Verification successful

The DeployGovernanceToken function in kroma-bindings/bindings/governancetoken.go includes multiple error handling checks using if 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 is nil 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.go

Length 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.go

Length of output: 1688

@@ -15,6 +15,7 @@ var ZKVerifierStorageLayout = new(solc.StorageLayout)

var ZKVerifierDeployedBin = "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80634292dc3e1461003b57806354fd4d5014610063575b600080fd5b61004e61004936600461576e565b6100ac565b60405190151581526020015b60405180910390f35b61009f6040518060400160405280600581526020017f302e312e3500000000000000000000000000000000000000000000000000000081525081565b60405161005a91906157e2565b60006100b661560b565b848460008181106100c9576100c9615855565b9050602002013570ffffffffffffffffffffffffffffffffff16816000600681106100f6576100f6615855565b602002015260888585600181811061011057610110615855565b90506020020135600116901b60888686600081811061013157610131615855565b90506020020135901c61014491906158b3565b60208201528484600281811061015c5761015c615855565b9050602002013570ffffffffffffffffffffffffffffffffff168160026006811061018957610189615855565b60200201526088858560038181106101a3576101a3615855565b90506020020135600116901b6088868660028181106101c4576101c4615855565b90506020020135901c6101d791906158b3565b606080830191909152608084811c908301526fffffffffffffffffffffffffffffffff841660a08301526040805160028082529281019091526000918291829182918291816020015b60408051808201909152600080825260208201528152602001906001900390816102205750506040805160028082526060820190925291925060009190602082015b61026a615629565b81526020019060019003908161026257905050905061028a8d8d896104fb565b85519399509097509095509350869083906000906102aa576102aa615855565b6020026020010151600001818152505083826000815181106102ce576102ce615855565b6020026020010151602001818152505084826001815181106102f2576102f2615855565b60200260200101516000018181525050828260018151811061031657610316615855565b6020026020010151602001818152505061032e614a62565b8160008151811061034157610341615855565b6020026020010181905250610354614b0d565b8160018151811061036757610367615855565b602002602001018190525061037c8282614bb4565b6103905760009750505050505050506104f2565b8a8a60008181106103a3576103a3615855565b90506020020135826000815181106103bd576103bd615855565b6020908102919091010151528a8a60018181106103dc576103dc615855565b90506020020135826000815181106103f6576103f6615855565b602002602001015160200181815250508a8a600281811061041957610419615855565b905060200201358260018151811061043357610433615855565b6020908102919091010151528a8a600381811061045257610452615855565b905060200201358260018151811061046c5761046c615855565b60200260200101516020018181525050610484614a62565b8160008151811061049757610497615855565b60200260200101819052506104aa614b0d565b816001815181106104bd576104bd615855565b60200260200101819052506104d28282614bb4565b6104e65760009750505050505050506104f2565b60019750505050505050505b95945050505050565b60008060008061050961564e565b61051161566d565b6000806105667f2754b04f3f510d0e86a0d0e811f0fc16f92b722514e1729066d2abf90811d6f27f1816b0f9909a5a979bd34c559e57b4096bee5cce7eb668bc0a9805677f40dc858b845b6020020151614e88565b90925090506105c07f174fa57071f8f6e53fcb31a5ecc33274ec76e4e186eeb0b64255d2f314cd50b27f1c399365e85e4de2761ebcf350da85ff4518cc82f7cef64a477a7a5fd11d4a448b60015b60200201518585614eee565b90925090506106127f259a4d5cd83279b6dc9ca2008b669f82e91f23804e2524c5087a2452d52c33bd7f303abddb7ae0f35e3a6bd39314b347c3c3a433f72833dda1998ad2176258baa38b60026105b4565b90925090506106647f252b158900f31a7c0c00b924e7d3c8d61a60c5e9fd2b83251ba73d1dc0b680f57f29c8c2b3f0d74267bc2b0f9f3568838cdb0eee4719391790d93d0015c00ce5af8b60036105b4565b90925090506106b67f0c25f9f3c38b6a128d7d38c5625a3976d389b5f9f33098bb419968e4d18e150e7f21fb777462c7f4af71940423babc7f882f0c97be9620ef84f6f11974ee0edb8e8b60046105b4565b90925090506107087f2280a0fd7dbf95c450830906ffc607a373d5b9b56b9101138e925ad557eb355a7f0697ab7e9a5377e2759ab6d1283301ccae9c72bad14946a9513ee19be1ec825e8b60056105b4565b6020860152845261073b7f0000000000000000000000000000000000000000000000000000000000000000846000614f3a565b8351602085015161074f9190856002614f86565b600091505b600482116107ed576107db8b8b61076c8560026158fa565b6107779060006158b3565b81811061078657610786615855565b905060200201358c8c85600261079c91906158fa565b6107a79060016158b3565b8181106107b6576107b6615855565b90506020020135858560036107cb91906158fa565b6107d69060056158b3565b614f86565b816107e581615937565b925050610754565b6107f8836014614ff6565b6040850152600091505b600d8211610896576108848b8b61081a8560026158fa565b61082590600a6158b3565b81811061083457610834615855565b905060200201358c8c85600261084a91906158fa565b61085590600b6158b3565b81811061086457610864615855565b905060200201358585600361087991906158fa565b6107d69060016158b3565b8161088e81615937565b925050610802565b6108a183602b614ff6565b60608501526108b1836001614ff6565b6080850152600091505b600982116109205761090e8b8b6108d38560026158fa565b6108de9060266158b3565b8181106108ed576108ed615855565b905060200201358c8c85600261090391906158fa565b6108559060276158b3565b8161091881615937565b9250506108bb565b61092b83601f614ff6565b60a0850152600091505b6003821161099a576109888b8b61094d8560026158fa565b61095890603a6158b3565b81811061096757610967615855565b905060200201358c8c85600261097d91906158fa565b61085590603b6158b3565b8161099281615937565b925050610935565b6109a583600d614ff6565b60c0850152600091505b60468211610a1857610a068b8b6109c78560016158fa565b6109d29060426158b3565b8181106109e1576109e1615855565b90506020020135848460026109f691906158fa565b610a019060016158b3565b614f3a565b81610a1081615937565b9250506109af565b610a2383608f614ff6565b60e0850152600091505b60038211610a9257610a808b8b610a458560026158fa565b610a509060896158b3565b818110610a5f57610a5f615855565b905060200201358c8c856002610a7591906158fa565b61085590608a6158b3565b81610a8a81615937565b925050610a2d565b610a9d83600d614ff6565b61010085015260c0840151600080516020615a45833981519152907f1dba8b5bdd64ef6ce29a9039aca3c0e524395c43b9227b96c75090cc6cc7ec97900961012085015260c0840151600080516020615a45833981519152907f24a1fcd63e9f03b27281db85fe631ec8e5c466f8178a4ee94d4942b7ccd90e1c900961014085015260c0840151600080516020615a45833981519152907f20bab6e5f766b4edf82399e9c5ff0e40d4b6875321a3d8020e18521d8f5c7241900961016085015260c0840151610b70906304000000615058565b610180850152600080516020615a45833981519152610b9060018261596f565b610180860151086101a08501819052600080516020615a45833981519152907f30644e66c81e03716be83b486d6feabcc7ddd0fe6cbf5e72d585d142f7829b05096101c0850152600080516020615a45833981519152610bf160018261596f565b60c0860151089150610c0b84600e5b6020020151836150bf565b6101c08501526101a0840151600080516020615a45833981519152907f07baaa5b7af9cf52cd226bc56865f0f99ef8fcd4219060f09f43e9a148b5ab68096101e0850152600080516020615a45833981519152610c887f20bab6e5f766b4edf82399e9c5ff0e40d4b6875321a3d8020e18521d8f5c72418261596f565b60c0860151089150610c9b84600f610c00565b6101e08501526101a0840151600080516020615a45833981519152907f1c699f652457365bf2fc4fa2c5c63d6c4349b03cb46d633d7a2655c5da4b900a09610200850152600080516020615a45833981519152610d187f19277f31ecb5bfe8604677099c09556812b0b5c50cceb2b584098183a5a6c5c88261596f565b60c0860151089150610d2b846010610c00565b6102008501526101a0840151600080516020615a45833981519152907f205cdbaf03903a5c23e60eef0df90673bc65a25762694c501e3281153b4e588a09610220850152600080516020615a45833981519152610da87f082a7bd4c0a7e4352229d332c27a160da18f0d7c651f3047df41b80345532f6e8261596f565b60c0860151089150610dbb846011610c00565b6102208501526101a0840151600080516020615a45833981519152907f27db73b1a831278e143aab90091db38afdea3294c4ba05d1c697a392eb09cc7909610240850152600080516020615a45833981519152610e387f26501ebfe559ea5826f023d3e76e4b66f170cd940408eb5590a4075c80b498d68261596f565b60c0860151089150610e4b846012610c00565b6102408501526101a0840151600080516020615a45833981519152907f0204822d629ab653697f028f5fa17d23ac2ba08c60c7112d98ebd28f325f0af609610260850152600080516020615a45833981519152610ec87f0d5eb4c216db2c3262de3f6a2ef71a9be95ff21a7a1a50ed069d6131e7d54e5f8261596f565b60c0860151089150610edb846013610c00565b6102608501526101a0840151600080516020615a45833981519152907f2622622a60c0d9327ccf066a0f1fce13c48601b976affd1f41c2a72a9f77da6409610280850152600080516020615a45833981519152610f587f24a1fcd63e9f03b27281db85fe631ec8e5c466f8178a4ee94d4942b7ccd90e1c8261596f565b60c0860151089150610f6b846014610c00565b6102808501526102008401516101e0850151600080516020615a458339815191529190089150600080516020615a45833981519152846011602002015183089150600080516020615a45833981519152846012602002015183089150600080516020615a45833981519152846013602002015183086101e085015261103c8b8b604a818110610ffc57610ffc615855565b905060200201358c8c604881811061101657611016615855565b905060200201358d8d604981811061103057611030615855565b905060200201356150ef565b915061107b8b8b604b81811061105457611054615855565b905060200201358c8c604381811061106e5761106e615855565b90506020020135846150ef565b91506110ad8b8b604c81811061109357611093615855565b905060200201358c8c604481811061106e5761106e615855565b91506110df8b8b604d8181106110c5576110c5615855565b905060200201358c8c604581811061106e5761106e615855565b91506111118b8b604e8181106110f7576110f7615855565b905060200201358c8c604681811061106e5761106e615855565b91506111438b8b604f81811061112957611129615855565b905060200201358c8c604781811061106e5761106e615855565b610200850152600080516020615a458339815191528b8b604481811061116b5761116b615855565b905060200201358c8c604381811061118557611185615855565b905060200201350991506111ca8b8b60508181106111a5576111a5615855565b9050602002013583866010605481106111c0576111c0615855565b60200201516150ef565b610200850152600080516020615a458339815191528b8b60468181106111f2576111f2615855565b905060200201358c8c604581811061120c5761120c615855565b9050602002013509915061122c8b8b60518181106111a5576111a5615855565b610200850152600080516020615a458339815191528b8b606181811061125457611254615855565b90506020020135600080516020615a45833981519152611274919061596f565b6001089150600080516020615a458339815191528285600e602002015109610220850152600080516020615a458339815191528b8b60648181106112ba576112ba615855565b905060200201358c8c60648181106112d4576112d4615855565b90506020020135099150600080516020615a458339815191528b8b606481811061130057611300615855565b90506020020135600080516020615a45833981519152611320919061596f565b83089150600080516020615a4583398151915282856014602002015109610240850152600080516020615a458339815191528b8b606381811061136557611365615855565b90506020020135600080516020615a45833981519152611385919061596f565b8c8c606481811061139857611398615855565b90506020020135089150600080516020615a4583398151915284600e6020020151830961026085015260c08401516060850151600080516020615a458339815191529190096102a08501526101e0840151610280850151600080516020615a458339815191529190089150600080516020615a4583398151915261142a83600080516020615a4583398151915261596f565b6001086101e08501526080840151600080516020615a45833981519152908c8c604381811061145b5761145b615855565b90506020020135086102c08501526114a68b8b605b81811061147f5761147f615855565b905060200201358560036054811061149957611499615855565b60200201518660166111c0565b9150600080516020615a458339815191528b8b60628181106114ca576114ca615855565b9050602002013583096102e08501526102a08401516102c0850151600080516020615a458339815191529190089150600080516020615a458339815191528b8b606181811061151b5761151b615855565b9050602002013583096102c08501526102a0840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096103008501526080840151600080516020615a45833981519152908c8c604481811061159057611590615855565b90506020020135086103208501526115db8b8b605c8181106115b4576115b4615855565b90506020020135856003605481106115ce576115ce615855565b60200201518660196111c0565b9150600080516020615a45833981519152846017602002015183096102e0850152610300840151610320850151600080516020615a458339815191529190089150600080516020615a45833981519152846016602002015183096102c0850152610300840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096103008501526080840151600080516020615a45833981519152908c8c60458181106116a1576116a1615855565b90506020020135086103208501526116c58b8b605d8181106115b4576115b4615855565b9150600080516020615a45833981519152846017602002015183096102e0850152610300840151610320850151600080516020615a458339815191529190089150600080516020615a45833981519152846016602002015183096102c0850152610300840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096103008501526102c0840151600080516020615a4583398151915290611783908261596f565b6102e0860151089150600080516020615a4583398151915284600f602002015183096102c08501526102a0840151600080516020615a45833981519152907f18afdf23e9bd9302673fc1e076a492d4d65bd18ebc4d854ed189139bab313e5290096102a08501526080840151600080516020615a45833981519152908c8c604681811061181257611812615855565b90506020020135086102e085015261185d8b8b605e81811061183657611836615855565b905060200201358560036054811061185057611850615855565b60200201518660176111c0565b9150600080516020615a458339815191528b8b606581811061188157611881615855565b9050602002013583096103008501526102a08401516102e0850151600080516020615a458339815191529190089150600080516020615a458339815191528b8b60648181106118d2576118d2615855565b9050602002013583096102e08501526102a0840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096102a08501526080840151600080516020615a45833981519152908c8c604781811061194757611947615855565b905060200201350861032085015261196b8b8b605f8181106115b4576115b4615855565b9150600080516020615a45833981519152846018602002015183096103008501526102a0840151610320850151600080516020615a458339815191529190089150600080516020615a45833981519152846017602002015183096102e08501526102a0840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096102a08501526080840151600080516020615a45833981519152908c8c6042818110611a3157611a31615855565b9050602002013508610320850152611a558b8b60608181106115b4576115b4615855565b9150600080516020615a45833981519152846018602002015183096103008501526102a0840151610320850151600080516020615a458339815191529190089150600080516020615a45833981519152846017602002015183096102e08501526102a0840151600080516020615a45833981519152907f09226b6e22c6f0ca64ec26aad4c86e715b5f898e5e963f25870e56bbe533e9a2096102a08501526102e0840151600080516020615a4583398151915290611b13908261596f565b610300860151089150600080516020615a4583398151915284600f602002015183096102a08501526060840151600080516020615a45833981519152908c8c6068818110611b6357611b63615855565b90506020020135089150600080516020615a45833981519152828c8c6067818110611b9057611b90615855565b90506020020135096102e08501526080840151600080516020615a45833981519152908c8c606a818110611bc657611bc6615855565b90506020020135089150600080516020615a45833981519152828560176020020151096102e0850152600080516020615a458339815191528b8b6052818110611c1157611c11615855565b905060200201358c8c6043818110611c2b57611c2b615855565b90506020020135096103008501526040840151600080516020615a458339815191529060000960408501819052610300850151600080516020615a458339815191529108610300850152600080516020615a458339815191528b8b6053818110611c9757611c97615855565b9050602002013585600260548110611cb157611cb1615855565b602002015108610320850152600080516020615a458339815191528b8b606a818110611cdf57611cdf615855565b90506020020135600080516020615a45833981519152611cff919061596f565b8c8c6068818110611d1257611d12615855565b9050602002013508610340850152600080516020615a458339815191528b8b6066818110611d4257611d42615855565b90506020020135600080516020615a45833981519152611d62919061596f565b6001089150600080516020615a458339815191528285600e602002015109610360850152600080516020615a458339815191528b8b6066818110611da857611da8615855565b905060200201358c8c6066818110611dc257611dc2615855565b90506020020135099150600080516020615a458339815191528b8b6066818110611dee57611dee615855565b90506020020135600080516020615a45833981519152611e0e919061596f565b83089150600080516020615a45833981519152828560146020020151096103808501526060840151610300850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c6066818110611e7357611e73615855565b90506020020135096103008501526080840151610320850151600080516020615a458339815191529190086103208501819052610300850151600080516020615a458339815191529190099150600080516020615a45833981519152611ee783600080516020615a4583398151915261596f565b6102e0860151089150600080516020615a4583398151915284600f602002015183096102e08501526103408401516101c0850151600080516020615a45833981519152919009610300850152600080516020615a458339815191528b8b6069818110611f5557611f55615855565b90506020020135600080516020615a45833981519152611f75919061596f565b8c8c6068818110611f8857611f88615855565b90506020020135089150600080516020615a458339815191528285601a6020020151099150600080516020615a4583398151915284600f602002015183096103408501526060840151600080516020615a45833981519152908c8c606d818110611ff457611ff4615855565b90506020020135089150600080516020615a45833981519152828c8c606c81811061202157612021615855565b90506020020135096103a08501526080840151600080516020615a45833981519152908c8c606f81811061205757612057615855565b90506020020135089150600080516020615a458339815191528285601d6020020151096103a08501526120ca8b8b605281811061209657612096615855565b905060200201358c8c60448181106120b0576120b0615855565b90506020020135866002605481106111c0576111c0615855565b6103c0850152600080516020615a458339815191528b8b606f8181106120f2576120f2615855565b90506020020135600080516020615a45833981519152612112919061596f565b8c8c606d81811061212557612125615855565b90506020020135086103e0850152600080516020615a458339815191528b8b606b81811061215557612155615855565b90506020020135600080516020615a45833981519152612175919061596f565b6001089150600080516020615a458339815191528285600e602002015109610400850152600080516020615a458339815191528b8b606b8181106121bb576121bb615855565b905060200201358c8c606b8181106121d5576121d5615855565b90506020020135099150600080516020615a458339815191528b8b606b81811061220157612201615855565b90506020020135600080516020615a45833981519152612221919061596f565b83089150600080516020615a458339815191528285601460200201510961042085015260608401516103c0850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c606b81811061228657612286615855565b90506020020135099150600080516020615a45833981519152846019602002015183099150600080516020615a458339815191526122d283600080516020615a4583398151915261596f565b6103a0860151089150600080516020615a4583398151915284600f602002015183096103a08501526103e08401516101c0850151600080516020615a458339815191529190096103c0850152600080516020615a458339815191528b8b606e81811061234057612340615855565b90506020020135600080516020615a45833981519152612360919061596f565b8c8c606d81811061237357612373615855565b90506020020135089150600080516020615a458339815191528285601f6020020151099150600080516020615a4583398151915284600f602002015183096103e08501526060840151600080516020615a45833981519152908c8c60728181106123df576123df615855565b90506020020135089150600080516020615a45833981519152828c8c607181811061240c5761240c615855565b90506020020135096104408501526080840151600080516020615a45833981519152908c8c607481811061244257612442615855565b90506020020135089150600080516020615a458339815191528285602260200201510961044085015261249b8b8b605281811061248157612481615855565b905060200201358c8c60458181106120b0576120b0615855565b610460850152600080516020615a458339815191528b8b60748181106124c3576124c3615855565b90506020020135600080516020615a458339815191526124e3919061596f565b8c8c60728181106124f6576124f6615855565b9050602002013508610480850152600080516020615a458339815191528b8b607081811061252657612526615855565b90506020020135600080516020615a45833981519152612546919061596f565b6001089150600080516020615a458339815191528285600e6020020151096104a0850152600080516020615a458339815191528b8b607081811061258c5761258c615855565b905060200201358c8c60708181106125a6576125a6615855565b90506020020135099150600080516020615a458339815191528b8b60708181106125d2576125d2615855565b90506020020135600080516020615a458339815191526125f2919061596f565b83089150600080516020615a45833981519152828560146020020151096104c08501526060840151610460850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c607081811061265757612657615855565b90506020020135099150600080516020615a45833981519152846019602002015183099150600080516020615a458339815191526126a383600080516020615a4583398151915261596f565b610440860151089150600080516020615a4583398151915284600f602002015183096104408501526104808401516101c0850151600080516020615a45833981519152919009610460850152600080516020615a458339815191528b8b607381811061271157612711615855565b90506020020135600080516020615a45833981519152612731919061596f565b8c8c607281811061274457612744615855565b90506020020135089150600080516020615a45833981519152828560246020020151099150600080516020615a4583398151915284600f602002015183096104808501526060840151600080516020615a45833981519152908c8c60778181106127b0576127b0615855565b90506020020135089150600080516020615a45833981519152828c8c60768181106127dd576127dd615855565b90506020020135096104e08501526080840151600080516020615a45833981519152908c8c607981811061281357612813615855565b90506020020135089150600080516020615a45833981519152828560276020020151096104e085015261286c8b8b605281811061285257612852615855565b905060200201358c8c60468181106120b0576120b0615855565b610500850152600080516020615a458339815191528b8b607981811061289457612894615855565b90506020020135600080516020615a458339815191526128b4919061596f565b8c8c60778181106128c7576128c7615855565b9050602002013508610520850152600080516020615a458339815191528b8b60758181106128f7576128f7615855565b90506020020135600080516020615a45833981519152612917919061596f565b6001089150600080516020615a458339815191528285600e602002015109610540850152600080516020615a458339815191528b8b607581811061295d5761295d615855565b905060200201358c8c607581811061297757612977615855565b90506020020135099150600080516020615a458339815191528b8b60758181106129a3576129a3615855565b90506020020135600080516020615a458339815191526129c3919061596f565b83089150600080516020615a45833981519152828560146020020151096105608501526060840151610500850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c6075818110612a2857612a28615855565b90506020020135099150600080516020615a45833981519152846019602002015183099150600080516020615a45833981519152612a7483600080516020615a4583398151915261596f565b6104e0860151089150600080516020615a4583398151915284600f602002015183096103208501526105208401516101c0850151600080516020615a458339815191529190096104e0850152600080516020615a458339815191528b8b6078818110612ae257612ae2615855565b90506020020135600080516020615a45833981519152612b02919061596f565b8c8c6077818110612b1557612b15615855565b90506020020135089150600080516020615a45833981519152828560296020020151099150600080516020615a4583398151915284600f602002015183096105008501526060840151600080516020615a45833981519152908c8c607c818110612b8157612b81615855565b90506020020135089150600080516020615a45833981519152828c8c607b818110612bae57612bae615855565b90506020020135096105208501526080840151600080516020615a45833981519152908c8c607e818110612be457612be4615855565b90506020020135089150600080516020615a4583398151915282856029602002015109610520850152612c3d8b8b6054818110612c2357612c23615855565b905060200201358c8c60438181106120b0576120b0615855565b610580850152600080516020615a458339815191528b8b6055818110612c6557612c65615855565b9050602002013585600260548110612c7f57612c7f615855565b6020020151086105a0850152600080516020615a458339815191528b8b607e818110612cad57612cad615855565b90506020020135600080516020615a45833981519152612ccd919061596f565b8c8c607c818110612ce057612ce0615855565b90506020020135086105c0850152600080516020615a458339815191528b8b607a818110612d1057612d10615855565b90506020020135600080516020615a45833981519152612d30919061596f565b6001089150600080516020615a458339815191528285600e6020020151096105e0850152600080516020615a458339815191528b8b607a818110612d7657612d76615855565b905060200201358c8c607a818110612d9057612d90615855565b90506020020135099150600080516020615a458339815191528b8b607a818110612dbc57612dbc615855565b90506020020135600080516020615a45833981519152612ddc919061596f565b83089150600080516020615a45833981519152828560146020020151096106008501526060840151610580850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c607a818110612e4157612e41615855565b905060200201350961058085015260808401516105a0850151600080516020615a458339815191529190089150600080516020615a458339815191528285602c6020020151099150600080516020615a45833981519152612eb083600080516020615a4583398151915261596f565b610520860151089150600080516020615a4583398151915284600f602002015183096105208501526105c08401516101c0850151600080516020615a45833981519152919009610580850152600080516020615a458339815191528b8b607d818110612f1e57612f1e615855565b90506020020135600080516020615a45833981519152612f3e919061596f565b8c8c607c818110612f5157612f51615855565b90506020020135089150600080516020615a458339815191528285602e6020020151099150600080516020615a4583398151915284600f602002015183096105a08501526060840151600080516020615a45833981519152908c8c6081818110612fbd57612fbd615855565b90506020020135089150600080516020615a45833981519152828c8c6080818110612fea57612fea615855565b90506020020135096105c08501526080840151600080516020615a45833981519152908c8c608381811061302057613020615855565b90506020020135089150600080516020615a458339815191528285602e6020020151096105c085015261305f8b8b6056818110612c2357612c23615855565b610620850152600080516020615a458339815191528b8b605781811061308757613087615855565b90506020020135856002605481106130a1576130a1615855565b602002015108610640850152600080516020615a458339815191528b8b60838181106130cf576130cf615855565b90506020020135600080516020615a458339815191526130ef919061596f565b8c8c608181811061310257613102615855565b9050602002013508610660850152600080516020615a458339815191528b8b607f81811061313257613132615855565b90506020020135600080516020615a45833981519152613152919061596f565b6001089150600080516020615a458339815191528285600e602002015109610680850152600080516020615a458339815191528b8b607f81811061319857613198615855565b905060200201358c8c607f8181106131b2576131b2615855565b90506020020135099150600080516020615a458339815191528b8b607f8181106131de576131de615855565b90506020020135600080516020615a458339815191526131fe919061596f565b83089150600080516020615a45833981519152828560146020020151096106a08501526060840151610620850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c607f81811061326357613263615855565b90506020020135096106208501526080840151610640850151600080516020615a458339815191529190089150600080516020615a45833981519152828560316020020151099150600080516020615a458339815191526132d283600080516020615a4583398151915261596f565b6105c0860151089150600080516020615a4583398151915284600f602002015183096105c08501526106608401516101c0850151600080516020615a45833981519152919009610620850152600080516020615a458339815191528b8b608281811061334057613340615855565b90506020020135600080516020615a45833981519152613360919061596f565b8c8c608181811061337357613373615855565b90506020020135089150600080516020615a45833981519152828560336020020151099150600080516020615a4583398151915284600f602002015183096106408501526060840151600080516020615a45833981519152908c8c60868181106133df576133df615855565b90506020020135089150600080516020615a45833981519152828c8c608581811061340c5761340c615855565b90506020020135096106608501526080840151600080516020615a45833981519152908c8c608881811061344257613442615855565b90506020020135089150600080516020615a45833981519152828560336020020151096106608501526134818b8b6058818110612c2357612c23615855565b6106c0850152600080516020615a458339815191528b8b60598181106134a9576134a9615855565b90506020020135856002605481106134c3576134c3615855565b6020020151086040850152600080516020615a458339815191528b8b60888181106134f0576134f0615855565b90506020020135600080516020615a45833981519152613510919061596f565b8c8c608681811061352357613523615855565b90506020020135086106e0850152600080516020615a458339815191528b8b608481811061355357613553615855565b90506020020135600080516020615a45833981519152613573919061596f565b6001089150600080516020615a458339815191528285600e602002015109610700850152600080516020615a458339815191528b8b60848181106135b9576135b9615855565b905060200201358c8c60848181106135d3576135d3615855565b90506020020135099150600080516020615a458339815191528b8b60848181106135ff576135ff615855565b90506020020135600080516020615a4583398151915261361f919061596f565b83089150600080516020615a458339815191528285601460200201510961028085015260608401516106c0850151600080516020615a458339815191529190089150600080516020615a45833981519152828c8c608481811061368457613684615855565b9050602002013509606085015260808401516040850151600080516020615a458339815191529190089150600080516020615a45833981519152828560036020020151099150600080516020615a458339815191526136f183600080516020615a4583398151915261596f565b610660860151089150600080516020615a4583398151915284600f6020020151830960408501526106e08401516101c0850151600080516020615a458339815191529190096060850152600080516020615a458339815191528b8b608781811061375d5761375d615855565b90506020020135600080516020615a4583398151915261377d919061596f565b8c8c608681811061379057613790615855565b90506020020135089150600080516020615a45833981519152828560376020020151099150600080516020615a4583398151915284600f60200201518309608085015260a08401516137e69060008660106111c0565b915061381b8480600560200201517f35342d2c29302f2827192b2a24232226251f1e1d21201a18171c1b15161312118561511c565b915061383984806005602002015168ff040302143832312e8561511c565b915061384c8285600d60200201516150bf565b6040850152610100840151600080516020615a4583398151915290800960608501819052610100850151600080516020615a45833981519152910960808501526138d68b8b608f8181106138a2576138a2615855565b905060200201358c8c60908181106138bc576138bc615855565b905060200201358660046054811061055c5761055c615855565b90925090506138ef848c8c65ffff088b038d868661519f565b909250905061393282828d8d608981811061390c5761390c615855565b905060200201358e8e608a81811061392657613926615855565b905060200201356152a7565b6101e08601526101c08501526101608401516080850151600080516020615a4583398151915291900960a085015260e08401516080850151600080516020615a45833981519152919009610160850181905260e0850151600080516020615a4583398151915291096101a0850181905260e0850151600080516020615a458339815191529109610200850181905260e0850151600080516020615a458339815191529109610220850181905260e0850151600080516020615a458339815191529109610240850181905260e0850151600080516020615a458339815191529109610260850152600080516020615a458339815191528b8b6087818110613a3a57613a3a615855565b9050602002013585601360548110613a5457613a54615855565b6020020151099150613a75848c8c6bffff0b6e0d731078117d128286615315565b9150613ab28b8b6069818110613a8d57613a8d615855565b9050602002013585600460548110613aa757613aa7615855565b6020020151846150ef565b6102808501526101408401516060850151600080516020615a45833981519152919009610140850152613b188b8b6063818110613af157613af1615855565b9050602002013585600360548110613b0b57613b0b615855565b60200201518660146111c0565b610280850152610120840151610100850151600080516020615a4583398151915291900961012085015260e0840151610100850151600080516020615a458339815191529190096102a0850152600091505b6008821015613c1957600080516020615a4583398151915284613b8e8460006158fa565b613b999060076158b3565b60548110613ba957613ba9615855565b602002015185613bba8560016158fa565b613bc59060156158b3565b60548110613bd557613bd5615855565b60200201510984613be78460016158fa565b613bf29060166158b3565b60548110613c0257613c02615855565b602002015281613c1181615937565b925050613b6a565b600080516020615a458339815191528b8b6085818110613c3b57613c3b615855565b9050602002013585601d60548110613c5557613c55615855565b6020020151099150613c7e848c8c73ffff0848156216651767186c19711a761b7b1c8086615315565b9150600080516020615a45833981519152828560146020020151086102808501526102a08401516060850151600080516020615a45833981519152919008606085015260e0840151600080516020615a458339815191529080096102a0850181905260e0850151600080516020615a4583398151915291096103c0850152600091505b6032821015613db057600080516020615a4583398151915284613d258460006158fa565b613d309060076158b3565b60548110613d4057613d40615855565b602002015185613d518560016158fa565b613d5c90601e6158b3565b60548110613d6c57613d6c615855565b60200201510984613d7e8460016158fa565b613d8990601f6158b3565b60548110613d9957613d99615855565b602002015281613da881615937565b925050613d01565b600080516020615a458339815191528b8b605a818110613dd257613dd2615855565b9050602002013585605060548110613dec57613dec615855565b602002015109610a208501526101808401516109e0850151600080516020615a45833981519152919009610a408501819052610180850151600080516020615a458339815191529109610a608501819052610180850151600080516020615a4583398151915291096101808501526109e08401516040850151613e7291908660516111c0565b9150613ea1848c8c7f3f50405141524253435444554556465747584859495b4a5c4b5d4c5e4d5f4e6086615315565b9150613ed0848c8c7f2f7a307c317e327f338134833584368637883849394a3a4b3b4c3c4d3d4e3e4f86615315565b9150613eff848c8c7f1f4620472161226423662468256a266b276d286f29702a722b742c752d772e7986615315565b9150613f16848c8c67ffff074315441e4586615315565b9150600080516020615a458339815191528b8b6042818110613f3a57613f3a615855565b9050602002013583089150600080516020615a458339815191528285601460200201510860408501526106c0840151610260850151600080516020615a458339815191529190086102608501526106a08401516103a0850151600080516020615a45833981519152919008610280850152610660840151610240850151600080516020615a45833981519152919008610240850152610640840151610380850151600080516020615a45833981519152919008610380850152610600840151610220850151600080516020615a458339815191529190086102208501526105e0840151610360850151600080516020615a458339815191529190086103608501526105a0840151610200850151600080516020615a45833981519152919008610200850152610580840151610340850151600080516020615a458339815191529190086103408501526105408401516101a0850151600080516020615a458339815191529190086101a0850152610520840151610320850151600080516020615a458339815191529190086103208501526104e0840151610160850151600080516020615a458339815191529190086101608501526104c0840151610300850151600080516020615a458339815191529190086103008501526104808401516080850151600080516020615a4583398151915291900860808501526104608401516102e0850151600080516020615a458339815191529190086102e08501526104408401516102c0850151600080516020615a458339815191529190086102c08501526104208401516060850151600080516020615a458339815191529190086060850152610400840151610100850151600080516020615a4583398151915291900861010085015261420d8b8b608f8181106141d9576141d9615855565b905060200201358c8c60908181106141f3576141f3615855565b905060200201358660056054811061055c5761055c615855565b9092509050614240848c8c7f182c192e1a301b321c341436098b03260a8d040a0b0e0d121016111a121e1322868661519f565b9092509050614267848c8c73ffff4f3a523c533e0c405038068908081628172a868661519f565b90925090506142b87e664f6a89a34d248445c568185b3df0822d3396dea9f9d2e9d43529a58ae3487f132fecdbd8477c405599f1c88897f0f4ddccc95895696530cc6446ac4137e42286604e6105b4565b909250905061430a7f1b40cd837026dfdbb6df3c4744da63e9e5a8d1660e225f816f2977c86b95a31b7f18f95e0be87b1fe22795f46b29c594ae559e0690d85822571acacf389576ecd486604d6105b4565b909250905061435c7f2f84599888b7bb19759153b8952e3450330b6ab6d14e927458e66d92759c27067f08d13eced574c8d09def1eab8d2c5d587b682c8fbd0cdda6f6a867f08faf9c1f86604c6105b4565b90925090506143ae7f13d1720ddb4933bfffffd6293776f43cc0e52d41749be8f32ce46530ae2477cd7f2aedb069508ff896c46d0895bec9977ec3f8880efe1d988f4895e4e71776486e86604b6105b4565b90925090506144007f0f77117979785d9d8dc4679d4db9a477b40cf4eeaf778708e82a1c734b4c00bb7f0a3f79406f6643a8345a64b0b98fbb7ddfdb35daf3ef78f49f245b5b2cd1bbe486604a6105b4565b90925090506144527f14fa5fb073ccc98551b6f0498b978d50f8b22761be87dffd89f9b342d17f10f87f283324c8f5bdeb0e7521421fe4af6172d9ece0181897f269368ae604e6b9efdc8660496105b4565b90925090506144a47f2bf75d9dd944249cd720ee71585980774cb83905b860feb5af3da42ca043b1157f07b4ff44a8e4250bf3ce16c06e8430b585a7a1e85243febe565a7929db37cc9f8660486105b4565b90925090506144f67f11f73e29244b44d54c1f2a6c9ee8c97294e6f9ca20108f5e3df9644e05d73af27f0d9bc372f4207ee05211e34d4c14eb5bb513151fff97b69fd0270dd3ac6e69f98660476105b4565b90925090506145487f25d344a083be7e69cb907b8705b3bab3417d4a23f06d43ca7b287028a88ec5837f2c03f591ec6858cdff27cadaac1a67a1dc9ab7877f898686efe7033e7fd02a168660466105b4565b909250905061459a7f2ad6d333c4ce75298934d4213ed43f37e3b58efdaf011ca21dfe28f30adafece7f1786d4c0a17ef0498d00e0ba0d6d062930a3833c940d0ec44381a841c6b7f73f8660456105b4565b90925090506145ec7f2bf75d9dd944249cd720ee71585980774cb83905b860feb5af3da42ca043b1157f07b4ff44a8e4250bf3ce16c06e8430b585a7a1e85243febe565a7929db37cc9f8660446105b4565b909250905061463e7f27cd85ecea3494f04879593ae873031d93dc7719449505fe793a7d88fff4d19e7f22a643b787a9ba74ec30e9c19362c00a29360a95f617d6fef549c62021e4cbcb8660436105b4565b90925090506146907f2fd08ae291ca0c95ada3f562b9f9be896737fd57493c4cefa087979abda4d2d67f04a6506069e2d39e944abcc54e70e881ccdd429ed4c1017fbe1099efeb70465f8660426105b4565b90925090506146e27f267eef8f848858b7d24eafe2f8631f1d041135de8e4bdb6522c2775357afc6467f0d12b24f7a7dc55ffa02c09f8ecd9a8aac8c044d9671855436faee0722a423948660416105b4565b90925090506147347f2eed9b77afb6dd8bbb2cf5d7793dd5a3225c8f590ef9070fc6111d69f19bc4507f29fa825da796671c1abca00af2c315317b19e67e1410dada6a2fc34f1d402f408660406105b4565b90925090506147867f0bfeb30042200560ff6218d6dc1060fe5aa5086bef6c82ae86a3355e830e07fd7f1614eb3d1c218c6da1c77d02cffc147a8c64b41a0e377155cde9a6d2bb4627cd86603f6105b4565b90925090506147d87f0cf6886df1426404f912fb52edf579c1077bf573006dbca87d6a181935e234ff7f211b654670c8567a5d6fa5739e3e8e29d8288592ea47e5cd5bf8b23a6e843dd786603e6105b4565b909250905061482a7f272a3415b7e303bf0bb85aa5c0ff3609501e5b2464aebb93fec39e2fb413a1ac7f21ee830e0b21d16673fe14b97fc4d3bedebc721661ea6563e93a3c22c2d83fd186603d6105b4565b909250905061487c7f1394472a7573940ae385caa13cff2d775d9b4401b316dd2ee1dd3a4cb53eb05f7f0c585ec5a80cc04ad0a91ec2fbea54dae78a4269db22da099cfdb8289f81373d86603c6105b4565b90925090506148ce7f0b790ee6c5b25cded870dc285ce2dac4f306be5cd112bc16283b8f770bdf161a7f2c3c609710493ba0578607c093e93e31c9bdacea8ad2314c2bcf171b17c5f81386603b6105b4565b90925090506149207f2d67fbd36c5f1a5e22a39db5dc97894591edc23b1d6b9774e3264cae237bb2c37f04a8a2ecb7f6e0b8d22187a5b8343d81f1771e5f11571579c19636cfa39c1e2286603a6105b4565b90925090506149727f212914adf2f7bde74e593d6c9954f3ca5f0971f4234c71a817f324c5cab470d87f2e934dc5970b910a6f2959d9d67dd0d60cf50e93e4d51a053a961a91cad410248660396105b4565b90925090506149c47f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008660386105b4565b90925090506149ef848c8c77ffff070015021e041f06250c28102b142e18311c34203724868661519f565b85516020870151929450909250614a0991849184916152a7565b60208601528452614a1e60016002868161055c565b85516020870151929450909250614a369184846153b7565b602086018190528186526101c08601516101e090960151959d959c50909a509850929650505050505050565b614a6a615629565b80517f186282957db913abd99f91db59fe69922e95040603ef44c0bd7aa3adeef8f5ac905280517f17944351223333f260ddc3b4af45191b856689eda9eab5cbcddbbe570ce860d2602091820152810180517f298adc7396bd3865cbf6d6df91bae406694e6d2215baa893bdeadb63052895f49052517f297772d34bc9aa8ae56162486363ffe417b02dc7e8c207fc2cc20203e67a02ad9060015b602002015290565b614b15615629565b80517f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2905280517f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed602091820152810180517f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec9052517f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d906001614b05565b60008083516006614bc591906158fa565b905060008167ffffffffffffffff811115614be257614be26158cb565b604051908082528060200260200182016040528015614c0b578160200160208202803683370190505b509050614c1661568c565b60008551875114614c2657600080fd5b60005b8751811015614e5f57878181518110614c4457614c44615855565b60200260200101516000015184826006614c5e91906158fa565b614c699060006158b3565b81518110614c7957614c79615855565b602002602001018181525050878181518110614c9757614c97615855565b60200260200101516020015184826006614cb191906158fa565b614cbc9060016158b3565b81518110614ccc57614ccc615855565b602002602001018181525050868181518110614cea57614cea615855565b6020908102919091010151515184614d038360066158fa565b614d0e9060026158b3565b81518110614d1e57614d1e615855565b602002602001018181525050868181518110614d3c57614d3c615855565b60209081029190910181015151015184614d578360066158fa565b614d629060036158b3565b81518110614d7257614d72615855565b602002602001018181525050868181518110614d9057614d90615855565b602002602001015160200151600060028110614dae57614dae615855565b602002015184614dbf8360066158fa565b614dca9060046158b3565b81518110614dda57614dda615855565b602002602001018181525050868181518110614df857614df8615855565b602002602001015160200151600160028110614e1657614e16615855565b602002015184614e278360066158fa565b614e329060056158b3565b81518110614e4257614e42615855565b602090810291909101015280614e5781615937565b915050614c29565b50602082602086026020860160085afa905080614e7b57600080fd5b5051151595945050505050565b600080614e936156aa565b6000614eb2604051806040016040528060008152602001600081525090565b8783526020830187905260408084018790528160608560075afa915081614ed857600080fd5b8051602090910151909890975095505050505050565b600080614ef96156c8565b87815260208101879052604081018690526060810185905260808101849052614f21816153fc565b6060810151608090910151909890975095505050505050565b60028282614f4781615937565b935060908110614f5957614f59615855565b6020020152828282614f6a81615937565b935060908110614f7c57614f7c615855565b6020020152505050565b60018282614f9381615937565b935060908110614fa557614fa5615855565b6020020152838282614fb681615937565b935060908110614fc857614fc8615855565b6020020152828282614fd981615937565b935060908110614feb57614feb615855565b602002015250505050565b600080838363ffffffff166090811061501157615011615855565b60200201818152505060006150438484602061502d9190615986565b6150389060016159b2565b63ffffffff16615437565b51905061504f8161546d565b93525090919050565b600061506261560b565b61506a61568c565b6020808352828101819052604083018190526060830186905260808301859052600080516020615a4583398151915260a08401526000908260c08560055afa9050806150b557600080fd5b5051949350505050565b6000816000036150ce57600080fd5b600080516020615a458339815191526150e6836155e1565b84099392505050565b6000600080516020615a4583398151915282600080516020615a4583398151915285870908949350505050565b6000805b60208110156151955760ff80851690811461517c5760089490941c93600080516020615a4583398151915287826054811061515d5761515d615855565b6020020151600080516020615a45833981519152868909089350615182565b50615195565b5061518e6001826158b3565b9050615120565b5090949350505050565b6000806151aa6156c8565b606081018590526080810184905260005b602081101561528c5760ff80881690811461527357601088901c9760081c60ff168a8a838181106151ee576151ee615855565b905060200201358460006005811061520857615208615855565b60200201528a8a61521a8460016158b3565b81811061522957615229615855565b905060200201358460016005811061524357615243615855565b60200201528b816054811061525a5761525a615855565b6020020151604085015261526d846153fc565b50615279565b5061528c565b506152856002826158b3565b90506151bb565b50606081015160809091015190999098509650505050505050565b60008060006152c9604051806040016040528060008152602001600081525090565b6152d16156e6565b888152602081018890526040808201889052606082018790528260808360065afa9250826152fe57600080fd5b508051602090910151909890975095505050505050565b6000805b60208110156153ac5760ff80851690811461539357601085901c9460081c60ff16600080516020615a4583398151915285600080516020615a458339815191528b846054811061536b5761536b615855565b60200201518b8b8781811061538257615382615855565b905060200201350908945050615399565b506153ac565b506153a56002826158b3565b9050615319565b509095945050505050565b6000806153ef8686866153ea877f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4761596f565b6152a7565b9150915094509492505050565b600060406020830160608460075afa90508061541757600080fd5b60406060830160806020850160065afa90508061543357600080fd5b5050565b61543f61568c565b6000602082848660026107d05a03fa9050808061545857fe5b5080615466576154666159da565b5092915050565b6000816155c08160008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b6008827fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff0016901c1790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b6010827fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff000016901c1790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b6020827fffffffff00000000ffffffff00000000ffffffff00000000ffffffff0000000016901c17905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b6040827fffffffffffffffff0000000000000000ffffffffffffffff000000000000000016901c179050608081901b608082901c179050919050565b90506155da600080516020615a4583398151915282615a09565b9392505050565b6000615605826156006002600080516020615a4583398151915261596f565b615058565b92915050565b6040518060c001604052806006906020820280368337509192915050565b604051806040016040528061563c615704565b8152602001615649615704565b905290565b60405180610a8001604052806054906020820280368337509192915050565b6040518061120001604052806090906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60008083601f84011261573457600080fd5b50813567ffffffffffffffff81111561574c57600080fd5b6020830191508360208260051b850101111561576757600080fd5b9250929050565b60008060008060006060868803121561578657600080fd5b853567ffffffffffffffff8082111561579e57600080fd5b6157aa89838a01615722565b909750955060208801359150808211156157c357600080fd5b506157d088828901615722565b96999598509660400135949350505050565b600060208083528351808285015260005b8181101561580f578581018301518582016040015282016157f3565b81811115615821576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156158c6576158c6615884565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561593257615932615884565b500290565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361596857615968615884565b5060010190565b60008282101561598157615981615884565b500390565b600063ffffffff808316818516818304811182151516156159a9576159a9615884565b02949350505050565b600063ffffffff8083168185168083038211156159d1576159d1615884565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082615a3f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c634300080f000a"


Copy link
Contributor

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.

Comment on lines 1 to 2
import '@kroma/hardhat-deploy-config'
import { DeployFunction } from 'hardhat-deploy/dist/types'
Copy link
Contributor

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.

Suggested change
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'

Copy link
Contributor

@kangsorang kangsorang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Pangssu Pangssu merged commit e08185d into dev May 27, 2024
2 checks passed
@Pangssu Pangssu deleted the chore/revert-mint-manager branch May 27, 2024 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants