diff --git a/.gitea/workflows/api-endpoint-tests.yml b/.gitea/workflows/api-endpoint-tests.yml index 2ab9ab2c..8de46419 100644 --- a/.gitea/workflows/api-endpoint-tests.yml +++ b/.gitea/workflows/api-endpoint-tests.yml @@ -41,14 +41,15 @@ jobs: run: | echo "Waiting for AITBC services..." for port in 8000 8001 8003 8006; do - for i in $(seq 1 10); do - if curl -sf "http://localhost:$port/" >/dev/null 2>&1 || \ - curl -sf "http://localhost:$port/health" >/dev/null 2>&1; then + for i in $(seq 1 15); do + if curl -sf "http://localhost:$port/health" >/dev/null 2>&1 || \ + curl -sf "http://localhost:$port/api/health" >/dev/null 2>&1 || \ + curl -sf "http://localhost:$port/" >/dev/null 2>&1; then echo "✅ Port $port ready" break fi - [ "$i" -eq 10 ] && echo "⚠️ Port $port not ready" - sleep 1 + [ "$i" -eq 15 ] && echo "⚠️ Port $port not ready" + sleep 2 done done diff --git a/.gitea/workflows/integration-tests.yml b/.gitea/workflows/integration-tests.yml index e4d45cf2..33629820 100644 --- a/.gitea/workflows/integration-tests.yml +++ b/.gitea/workflows/integration-tests.yml @@ -56,12 +56,13 @@ jobs: for port in 8000 8001 8003 8006; do for i in $(seq 1 15); do if curl -sf "http://localhost:$port/health" >/dev/null 2>&1 || \ + curl -sf "http://localhost:$port/api/health" >/dev/null 2>&1 || \ curl -sf "http://localhost:$port/" >/dev/null 2>&1; then echo "✅ Port $port ready" break fi [ "$i" -eq 15 ] && echo "⚠️ Port $port not ready" - sleep 1 + sleep 2 done done diff --git a/.gitea/workflows/rust-zk-tests.yml b/.gitea/workflows/rust-zk-tests.yml index c9894793..0492ee55 100644 --- a/.gitea/workflows/rust-zk-tests.yml +++ b/.gitea/workflows/rust-zk-tests.yml @@ -30,29 +30,41 @@ jobs: - name: Verify Rust toolchain run: | + # Fix HOME mismatch (gitea-runner HOME vs euid root) + export HOME=/root + export RUSTUP_HOME="$HOME/.rustup" + export CARGO_HOME="$HOME/.cargo" + export PATH="$CARGO_HOME/bin:$PATH" + if ! command -v rustc >/dev/null 2>&1; then echo "Installing Rust..." curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y - source "$HOME/.cargo/env" fi + source "$CARGO_HOME/env" 2>/dev/null || true rustc --version cargo --version rustup component add rustfmt clippy 2>/dev/null || true - name: Check formatting run: | + export HOME=/root + export PATH="$HOME/.cargo/bin:$PATH" source "$HOME/.cargo/env" 2>/dev/null || true cd /var/lib/aitbc-workspaces/rust-zk-tests/repo/gpu_acceleration/research/gpu_zk_research cargo fmt -- --check 2>/dev/null && echo "✅ Formatting OK" || echo "⚠️ Format warnings" - name: Run Clippy run: | + export HOME=/root + export PATH="$HOME/.cargo/bin:$PATH" source "$HOME/.cargo/env" 2>/dev/null || true cd /var/lib/aitbc-workspaces/rust-zk-tests/repo/gpu_acceleration/research/gpu_zk_research cargo clippy -- -D warnings 2>/dev/null && echo "✅ Clippy OK" || echo "⚠️ Clippy warnings" - name: Build run: | + export HOME=/root + export PATH="$HOME/.cargo/bin:$PATH" source "$HOME/.cargo/env" 2>/dev/null || true cd /var/lib/aitbc-workspaces/rust-zk-tests/repo/gpu_acceleration/research/gpu_zk_research cargo build --release @@ -60,6 +72,8 @@ jobs: - name: Run tests run: | + export HOME=/root + export PATH="$HOME/.cargo/bin:$PATH" source "$HOME/.cargo/env" 2>/dev/null || true cd /var/lib/aitbc-workspaces/rust-zk-tests/repo/gpu_acceleration/research/gpu_zk_research cargo test && echo "✅ Tests passed" || echo "⚠️ Tests completed with issues" diff --git a/packages/py/aitbc-agent-sdk/src/aitbc_agent/agent.py b/packages/py/aitbc-agent-sdk/src/aitbc_agent/agent.py index 43085e74..dc44ca0e 100755 --- a/packages/py/aitbc-agent-sdk/src/aitbc_agent/agent.py +++ b/packages/py/aitbc-agent-sdk/src/aitbc_agent/agent.py @@ -21,12 +21,12 @@ class AgentCapabilities: """Agent capability specification""" compute_type: str # "inference", "training", "processing" gpu_memory: Optional[int] = None - supported_models: List[str] = None + supported_models: Optional[List[str]] = None performance_score: float = 0.0 max_concurrent_jobs: int = 1 specialization: Optional[str] = None - def __post_init__(self): + def __post_init__(self) -> None: if self.supported_models is None: self.supported_models = [] @@ -47,6 +47,9 @@ class AgentIdentity: password=None ) + if not isinstance(private_key, rsa.RSAPrivateKey): + raise TypeError("Only RSA private keys are supported") + signature = private_key.sign( message_str.encode(), padding.PSS( @@ -65,6 +68,9 @@ class AgentIdentity: self.public_key.encode() ) + if not isinstance(public_key, rsa.RSAPublicKey): + raise TypeError("Only RSA public keys are supported") + try: public_key.verify( bytes.fromhex(signature), diff --git a/packages/py/aitbc-agent-sdk/src/aitbc_agent/compute_provider.py b/packages/py/aitbc-agent-sdk/src/aitbc_agent/compute_provider.py index 3f0e2021..48c9d576 100755 --- a/packages/py/aitbc-agent-sdk/src/aitbc_agent/compute_provider.py +++ b/packages/py/aitbc-agent-sdk/src/aitbc_agent/compute_provider.py @@ -37,16 +37,18 @@ class JobExecution: class ComputeProvider(Agent): """Agent that provides computational resources""" - def __init__(self, *args, **kwargs): + def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) self.current_offers: List[ResourceOffer] = [] self.active_jobs: List[JobExecution] = [] - self.earnings = 0.0 - self.utilization_rate = 0.0 + self.earnings: float = 0.0 + self.utilization_rate: float = 0.0 + self.pricing_model: Dict[str, Any] = {} + self.dynamic_pricing: Dict[str, Any] = {} @classmethod - def register(cls, name: str, capabilities: Dict[str, Any], pricing_model: Dict[str, Any]) -> 'ComputeProvider': - """Register as a compute provider""" + def create_provider(cls, name: str, capabilities: Dict[str, Any], pricing_model: Dict[str, Any]) -> 'ComputeProvider': + """Create and register a compute provider""" agent = super().create(name, "compute_provider", capabilities) provider = cls(agent.identity, agent.capabilities) provider.pricing_model = pricing_model @@ -112,7 +114,7 @@ class ComputeProvider(Agent): logger.error(f"Failed to enable dynamic pricing: {e}") return False - async def _dynamic_pricing_loop(self): + async def _dynamic_pricing_loop(self) -> None: """Background task for dynamic price adjustments""" while getattr(self, 'dynamic_pricing', {}).get('enabled', False): try: @@ -173,7 +175,7 @@ class ComputeProvider(Agent): logger.error(f"Failed to accept job: {e}") return False - async def _execute_job(self, job: JobExecution, job_request: Dict[str, Any]): + async def _execute_job(self, job: JobExecution, job_request: Dict[str, Any]) -> None: """Execute a computational job""" try: # Simulate job execution @@ -202,7 +204,7 @@ class ComputeProvider(Agent): job.status = "failed" logger.error(f"Job execution failed: {job.job_id} - {e}") - async def _notify_job_completion(self, job: JobExecution, earnings: float): + async def _notify_job_completion(self, job: JobExecution, earnings: float) -> None: """Notify consumer about job completion""" notification = { "job_id": job.job_id, @@ -215,7 +217,7 @@ class ComputeProvider(Agent): await self.send_message(job.consumer_id, "job_completion", notification) - def _update_utilization(self): + def _update_utilization(self) -> None: """Update current utilization rate""" self.utilization_rate = len(self.active_jobs) / self.capabilities.max_concurrent_jobs @@ -227,8 +229,8 @@ class ComputeProvider(Agent): "utilization_rate": self.utilization_rate, "active_jobs": len(self.active_jobs), "total_earnings": self.earnings, - "average_job_duration": sum(j.actual_duration.total_seconds() for j in completed_jobs) / len(completed_jobs) if completed_jobs else 0, - "quality_score": sum(j.quality_score for j in completed_jobs if j.quality_score) / len(completed_jobs) if completed_jobs else 0, + "average_job_duration": sum(j.actual_duration.total_seconds() for j in completed_jobs if j.actual_duration) / len(completed_jobs) if completed_jobs else 0, + "quality_score": sum(j.quality_score for j in completed_jobs if j.quality_score is not None) / len(completed_jobs) if completed_jobs else 0, "current_offers": len(self.current_offers) } diff --git a/packages/py/aitbc-agent-sdk/src/aitbc_agent/swarm_coordinator.py b/packages/py/aitbc-agent-sdk/src/aitbc_agent/swarm_coordinator.py index 4b01a873..d08f9861 100755 --- a/packages/py/aitbc-agent-sdk/src/aitbc_agent/swarm_coordinator.py +++ b/packages/py/aitbc-agent-sdk/src/aitbc_agent/swarm_coordinator.py @@ -5,7 +5,7 @@ Swarm Coordinator - for agents participating in collective intelligence import asyncio import json import logging -from typing import Dict, List, Optional, Any +from typing import Dict, List, Optional, Any # noqa: F401 from datetime import datetime from dataclasses import dataclass from .agent import Agent @@ -37,7 +37,7 @@ class SwarmDecision: class SwarmCoordinator(Agent): """Agent that participates in swarm intelligence""" - def __init__(self, *args, **kwargs): + def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) self.joined_swarms: Dict[str, Dict[str, Any]] = {} self.swarm_reputation: Dict[str, float] = {} @@ -91,7 +91,7 @@ class SwarmCoordinator(Agent): logger.error(f"Failed to join swarm {swarm_type}: {e}") return False - async def _swarm_participation_loop(self, swarm_id: str): + async def _swarm_participation_loop(self, swarm_id: str) -> None: """Background task for active swarm participation""" while swarm_id in self.joined_swarms: try: @@ -145,7 +145,7 @@ class SwarmCoordinator(Agent): logger.error(f"Failed to broadcast to swarm: {e}") return False - async def _contribute_swarm_data(self, swarm_id: str): + async def _contribute_swarm_data(self, swarm_id: str) -> None: """Contribute data to swarm intelligence""" try: swarm_type = self.joined_swarms[swarm_id]["type"] @@ -308,22 +308,22 @@ class SwarmCoordinator(Agent): logger.error(f"Failed to analyze swarm benefits: {e}") return {"error": str(e)} - async def _register_with_swarm(self, swarm_id: str, registration: Dict[str, Any]): + async def _register_with_swarm(self, swarm_id: str, registration: Dict[str, Any]) -> None: """Register with swarm coordinator (placeholder)""" # TODO: Implement actual swarm registration await asyncio.sleep(0.1) - async def _broadcast_to_swarm_network(self, message: SwarmMessage): + async def _broadcast_to_swarm_network(self, message: SwarmMessage) -> None: """Broadcast message to swarm network (placeholder)""" # TODO: Implement actual swarm broadcasting await asyncio.sleep(0.1) - async def _process_swarm_messages(self, swarm_id: str): + async def _process_swarm_messages(self, swarm_id: str) -> None: """Process incoming swarm messages (placeholder)""" # TODO: Implement actual message processing await asyncio.sleep(0.1) - async def _participate_in_decisions(self, swarm_id: str): + async def _participate_in_decisions(self, swarm_id: str) -> None: """Participate in swarm decision making (placeholder)""" # TODO: Implement actual decision participation await asyncio.sleep(0.1) diff --git a/packages/solidity/aitbc-token/cache/solidity-files-cache.json b/packages/solidity/aitbc-token/cache/solidity-files-cache.json index de04e208..129757ca 100644 --- a/packages/solidity/aitbc-token/cache/solidity-files-cache.json +++ b/packages/solidity/aitbc-token/cache/solidity-files-cache.json @@ -1,18 +1,18 @@ { "_format": "hh-sol-cache-2", "files": { - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/contracts/AIToken.sol": { - "lastModificationDate": 1758948750896, + "/opt/aitbc/packages/solidity/aitbc-token/contracts/AIToken.sol": { + "lastModificationDate": 1774686815247, "contentHash": "9da3e499c2dda7c4cfdc56c633b86873", "sourceName": "contracts/AIToken.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -42,18 +42,18 @@ "AIToken" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/access/AccessControl.sol": { - "lastModificationDate": 1758948616475, - "contentHash": "d0e2c05f09a3aea7cd299bbd4a435ee2", + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/access/AccessControl.sol": { + "lastModificationDate": 1774782027955, + "contentHash": "798a29e3c30dbd3eda1a67add26571e2", "sourceName": "@openzeppelin/contracts/access/AccessControl.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -82,18 +82,54 @@ "AccessControl" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { - "lastModificationDate": 1758948616511, - "contentHash": "59dfce11284f2636db261df9b6a18f81", - "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { + "lastModificationDate": 1774782027963, + "contentHash": "b038f3665d2262af34fe6009e3cd78dd", + "sourceName": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.20" + ], + "artifacts": [ + "ECDSA" + ] + }, + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "lastModificationDate": 1774782027967, + "contentHash": "d15c4d05583536e080f1960ab282772d", + "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "solcConfig": { + "version": "0.8.25", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -123,54 +159,18 @@ "ERC20" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { - "lastModificationDate": 1758948616491, - "contentHash": "81de029d56aa803972be03c5d277cb6c", - "sourceName": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "solcConfig": { - "version": "0.8.24", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "ECDSA" - ] - }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { - "lastModificationDate": 1758948616595, - "contentHash": "260f3968eefa3bbd30520cff5384cd93", + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { + "lastModificationDate": 1774782027987, + "contentHash": "fab97298382d4c32182a66ec35255b71", "sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -191,60 +191,24 @@ "../Strings.sol" ], "versionPragmas": [ - "^0.8.20" + "^0.8.24" ], "artifacts": [ "MessageHashUtils" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/access/IAccessControl.sol": { - "lastModificationDate": 1758948616567, - "contentHash": "def1e8f7b6cac577cf2600655bf3bdf8", - "sourceName": "@openzeppelin/contracts/access/IAccessControl.sol", - "solcConfig": { - "version": "0.8.24", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - ">=0.8.4" - ], - "artifacts": [ - "IAccessControl" - ] - }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/Context.sol": { - "lastModificationDate": 1758948616483, + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/Context.sol": { + "lastModificationDate": 1774782027959, "contentHash": "67bfbc07588eb8683b3fd8f6f909563e", "sourceName": "@openzeppelin/contracts/utils/Context.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -269,18 +233,18 @@ "Context" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "lastModificationDate": 1758948616511, + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "lastModificationDate": 1774782027967, "contentHash": "0906d06dca25210d4696dcef6dad2909", "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -307,18 +271,54 @@ "ERC165" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "lastModificationDate": 1758948616575, - "contentHash": "7074c93b1ea0a122063f26ddd1db1032", - "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/access/IAccessControl.sol": { + "lastModificationDate": 1774782027979, + "contentHash": "def1e8f7b6cac577cf2600655bf3bdf8", + "sourceName": "@openzeppelin/contracts/access/IAccessControl.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + ">=0.8.4" + ], + "artifacts": [ + "IAccessControl" + ] + }, + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "lastModificationDate": 1774782027983, + "contentHash": "7074c93b1ea0a122063f26ddd1db1032", + "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "solcConfig": { + "version": "0.8.25", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -343,18 +343,18 @@ "IERC165" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { - "lastModificationDate": 1758948616491, - "contentHash": "5041977bbe908de2e6ed0270447f79ad", + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "lastModificationDate": 1774782027963, + "contentHash": "bcc76f4747d56c28c40ae272ef3470a6", "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -381,18 +381,18 @@ "IERC721Errors" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "lastModificationDate": 1758948616579, + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "lastModificationDate": 1774782027983, "contentHash": "9261adf6457863de3e9892f51317ec89", "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -417,18 +417,18 @@ "IERC20" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { - "lastModificationDate": 1758948616579, + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "lastModificationDate": 1774782027983, "contentHash": "513778b30d2750f5d2b9b19bbcf748a5", "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -455,18 +455,18 @@ "IERC20Metadata" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/Strings.sol": { - "lastModificationDate": 1758948616623, - "contentHash": "d8f70caf0e0c77dc908176ed44812fb7", + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/Strings.sol": { + "lastModificationDate": 1774782027999, + "contentHash": "d2fa243e766a193585b7e9bf36898d80", "sourceName": "@openzeppelin/contracts/utils/Strings.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -486,27 +486,104 @@ "imports": [ "./math/Math.sol", "./math/SafeCast.sol", - "./math/SignedMath.sol" + "./math/SignedMath.sol", + "./Bytes.sol" ], "versionPragmas": [ - "^0.8.20" + "^0.8.24" ], "artifacts": [ "Strings" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - "lastModificationDate": 1758948616595, - "contentHash": "5ec781e33d3a9ac91ffdc83d94420412", - "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/Bytes.sol": { + "lastModificationDate": 1774782027959, + "contentHash": "3b32ea3a40a2d708f61e7161f081ca93", + "sourceName": "@openzeppelin/contracts/utils/Bytes.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./math/Math.sol" + ], + "versionPragmas": [ + "^0.8.24" + ], + "artifacts": [ + "Bytes" + ] + }, + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { + "lastModificationDate": 1774782027995, + "contentHash": "ae3528afb8bdb0a7dcfba5b115ee8074", + "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "solcConfig": { + "version": "0.8.25", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "cancun", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./SafeCast.sol" + ], + "versionPragmas": [ + "^0.8.20" + ], + "artifacts": [ + "SignedMath" + ] + }, + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/math/Math.sol": { + "lastModificationDate": 1774782027987, + "contentHash": "5b8c6935ac52b7494df19d6feb38f5cc", + "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", + "solcConfig": { + "version": "0.8.25", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -534,56 +611,18 @@ "Math" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { - "lastModificationDate": 1758948616619, - "contentHash": "ae3528afb8bdb0a7dcfba5b115ee8074", - "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", - "solcConfig": { - "version": "0.8.24", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./SafeCast.sol" - ], - "versionPragmas": [ - "^0.8.20" - ], - "artifacts": [ - "SignedMath" - ] - }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": { - "lastModificationDate": 1758948616611, - "contentHash": "2adca1150f58fc6f3d1f0a0f22ee7cca", + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": { + "lastModificationDate": 1774782027995, + "contentHash": "f28a38cd37f4225d0a91fb5405dd850f", "sourceName": "@openzeppelin/contracts/utils/math/SafeCast.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -608,18 +647,18 @@ "SafeCast" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/Panic.sol": { - "lastModificationDate": 1758948616603, + "/opt/aitbc/packages/solidity/aitbc-token/node_modules/@openzeppelin/contracts/utils/Panic.sol": { + "lastModificationDate": 1774782027991, "contentHash": "2133dc13536b4a6a98131e431fac59e1", "sourceName": "@openzeppelin/contracts/utils/Panic.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ @@ -644,18 +683,18 @@ "Panic" ] }, - "/home/oib/windsurf/aitbc/packages/solidity/aitbc-token/contracts/AITokenRegistry.sol": { - "lastModificationDate": 1758946778726, + "/opt/aitbc/packages/solidity/aitbc-token/contracts/AITokenRegistry.sol": { + "lastModificationDate": 1774686815247, "contentHash": "5e787829fa19b0a69c958e431fea5757", "sourceName": "contracts/AITokenRegistry.sol", "solcConfig": { - "version": "0.8.24", + "version": "0.8.25", "settings": { "optimizer": { "enabled": true, "runs": 200 }, - "evmVersion": "paris", + "evmVersion": "cancun", "outputSelection": { "*": { "*": [ diff --git a/packages/solidity/aitbc-token/package.json b/packages/solidity/aitbc-token/package.json index 01981801..0a17d4d9 100644 --- a/packages/solidity/aitbc-token/package.json +++ b/packages/solidity/aitbc-token/package.json @@ -11,14 +11,25 @@ "deploy": "hardhat run scripts/deploy.ts --network localhost" }, "devDependencies": { + "@nomicfoundation/hardhat-chai-matchers": "^2.1.2", + "@nomicfoundation/hardhat-ethers": "^3.1.3", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.17", + "@nomicfoundation/hardhat-network-helpers": "^1.1.2", "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "@nomicfoundation/hardhat-verify": "^2.1.3", + "@typechain/ethers-v6": "^0.5.1", + "@typechain/hardhat": "^9.1.0", "@types/chai": "^4.3.11", "@types/mocha": "^10.0.10", "@types/node": "^20.11.30", "chai": "^4.4.1", + "ethers": "^6.16.0", "hardhat": "^2.22.1", + "hardhat-gas-reporter": "^1.0.10", "prettier": "^3.2.5", + "solidity-coverage": "^0.8.17", "ts-node": "^10.9.2", + "typechain": "^8.3.2", "typescript": "^5.9.2" }, "dependencies": { diff --git a/packages/solidity/aitbc-token/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts b/packages/solidity/aitbc-token/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts index 62499625..32d87d4e 100644 --- a/packages/solidity/aitbc-token/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts +++ b/packages/solidity/aitbc-token/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts @@ -2,3 +2,4 @@ /* tslint:disable */ /* eslint-disable */ export type { ECDSA } from "./ECDSA"; +export type { MessageHashUtils } from "./MessageHashUtils"; diff --git a/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts b/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts index 3bea47f2..aaa6680b 100644 --- a/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts +++ b/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts @@ -44,7 +44,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d3fa6b95cf4f76e64227a9b2373ccb228efd9715fd7983e0646867999cceb9fb64736f6c63430008180033"; + "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212201a6180167efb6562d882d394cd3a11d9f504b5200f4d3561a6332af0022ccaeb64736f6c63430008190033"; type StringsConstructorParams = | [signer?: Signer] diff --git a/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts b/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts index 70a839d0..6e0cdc93 100644 --- a/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts +++ b/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts @@ -45,7 +45,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a02ae933cd95f2ee943a9a3e5cbf4c6b7a6f7cc463d2cb58fac8fce23a0ba09464736f6c63430008180033"; + "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122026f40e2f9829b7940304d9f14a6e9e5677a59dd8116e9080cf27c2c2bc85ef5b64736f6c63430008190033"; type ECDSAConstructorParams = | [signer?: Signer] diff --git a/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts b/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts index cac1a837..cd0f9415 100644 --- a/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts +++ b/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts @@ -2,3 +2,4 @@ /* tslint:disable */ /* eslint-disable */ export { ECDSA__factory } from "./ECDSA__factory"; +export { MessageHashUtils__factory } from "./MessageHashUtils__factory"; diff --git a/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts b/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts index ab3b8820..e865fa7c 100644 --- a/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts +++ b/packages/solidity/aitbc-token/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts @@ -72,7 +72,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201c97bba8d553a67561101942b2a9afa3628667de55efed8df898d3aab783793c64736f6c63430008180033"; + "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122004223638d8d1e86abf400699f30c266341b4680b04bb0c8679d0cbf532d1c6d664736f6c63430008190033"; type SafeCastConstructorParams = | [signer?: Signer] diff --git a/packages/solidity/aitbc-token/typechain-types/factories/contracts/AITokenRegistry__factory.ts b/packages/solidity/aitbc-token/typechain-types/factories/contracts/AITokenRegistry__factory.ts index 78bf45f7..a808d6a5 100644 --- a/packages/solidity/aitbc-token/typechain-types/factories/contracts/AITokenRegistry__factory.ts +++ b/packages/solidity/aitbc-token/typechain-types/factories/contracts/AITokenRegistry__factory.ts @@ -412,7 +412,7 @@ const _abi = [ ] as const; const _bytecode = - "0x608060405234801561001057600080fd5b506040516109d13803806109d183398101604081905261002f916100ed565b61003a600082610041565b505061011d565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166100e3576000838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561009b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016100e7565b5060005b92915050565b6000602082840312156100ff57600080fd5b81516001600160a01b038116811461011657600080fd5b9392505050565b6108a58061012c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80633ae25916116100715780633ae25916146101915780636b366cb51461020857806391d148541461022f578063a217fddf14610242578063d11905651461024a578063d547741f1461025d57600080fd5b806301ffc9a7146100b95780630787bc27146100e15780631af431a714610125578063248a9ca31461013a5780632f2ff15d1461016b57806336568abe1461017e575b600080fd5b6100cc6100c7366004610754565b610270565b60405190151581526020015b60405180910390f35b61010e6100ef3660046107a1565b6001602081905260009182526040909120805491015460ff9091169082565b6040805192151583526020830191909152016100d8565b6101386101333660046107bc565b6102a7565b005b61015d6101483660046107e6565b60009081526020819052604090206001015490565b6040519081526020016100d8565b6101386101793660046107ff565b6103f5565b61013861018c3660046107ff565b610420565b6101eb61019f3660046107a1565b6040805180820190915260008082526020820152506001600160a01b03166000908152600160208181526040928390208351808501909452805460ff1615158452909101549082015290565b6040805182511515815260209283015192810192909252016100d8565b61015d7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc81565b6100cc61023d3660046107ff565b610458565b61015d600081565b61013861025836600461082b565b610481565b61013861026b3660046107ff565b6105e8565b60006001600160e01b03198216637965db0b60e01b14806102a157506301ffc9a760e01b6001600160e01b03198316145b92915050565b7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc6102d18161060d565b6001600160a01b03831661031f5760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210383937bb34b232b960811b60448201526064015b60405180910390fd5b6001600160a01b03831660009081526001602052604090205460ff161561037d5760405162461bcd60e51b8152602060048201526012602482015271185b1c9958591e481c9959da5cdd195c995960721b6044820152606401610316565b604080518082018252600180825260208083018681526001600160a01b03881660008181528484528690209451855460ff19169015151785559051939092019290925591518481527f90c9734131c1e4fb36cde2d71e6feb93fb258f71be8a85411c173d25e1516e80910160405180910390a2505050565b6000828152602081905260409020600101546104108161060d565b61041a838361061a565b50505050565b6001600160a01b03811633146104495760405163334bd91960e11b815260040160405180910390fd5b61045382826106ac565b505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc6104ab8161060d565b6001600160a01b0384166104f45760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210383937bb34b232b960811b6044820152606401610316565b6001600160a01b03841660009081526001602052604090205460ff16806105185750825b6105645760405162461bcd60e51b815260206004820152601760248201527f70726f7669646572206e6f7420726567697374657265640000000000000000006044820152606401610316565b60408051808201825284151580825260208083018681526001600160a01b03891660008181526001808552908790209551865460ff1916901515178655915194909101939093558351918252810185905290917fe226f4be7d881611b5a3ddc83f2e771728014b8012359a29890cd3d670c43dc8910160405180910390a250505050565b6000828152602081905260409020600101546106038161060d565b61041a83836106ac565b6106178133610717565b50565b60006106268383610458565b6106a4576000838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561065c3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102a1565b5060006102a1565b60006106b88383610458565b156106a4576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102a1565b6107218282610458565b6107505760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610316565b5050565b60006020828403121561076657600080fd5b81356001600160e01b03198116811461077e57600080fd5b9392505050565b80356001600160a01b038116811461079c57600080fd5b919050565b6000602082840312156107b357600080fd5b61077e82610785565b600080604083850312156107cf57600080fd5b6107d883610785565b946020939093013593505050565b6000602082840312156107f857600080fd5b5035919050565b6000806040838503121561081257600080fd5b8235915061082260208401610785565b90509250929050565b60008060006060848603121561084057600080fd5b61084984610785565b92506020840135801515811461085e57600080fd5b92959294505050604091909101359056fea2646970667358221220dcf376f102b1bc83ced9d7af3d5eb71077444d1080da7a114dd7fe4bff0ad28664736f6c63430008180033"; + "0x608060405234801561000f575f80fd5b506040516109a13803806109a183398101604081905261002e916100e8565b6100385f8261003f565b5050610115565b5f828152602081815260408083206001600160a01b038516845290915281205460ff166100df575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556100973390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016100e2565b505f5b92915050565b5f602082840312156100f8575f80fd5b81516001600160a01b038116811461010e575f80fd5b9392505050565b61087f806101225f395ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c80633ae259161161006e5780633ae259161461018b5780636b366cb51461020057806391d1485414610227578063a217fddf1461023a578063d119056514610241578063d547741f14610254575f80fd5b806301ffc9a7146100b55780630787bc27146100dd5780631af431a714610120578063248a9ca3146101355780632f2ff15d1461016557806336568abe14610178575b5f80fd5b6100c86100c336600461073e565b610267565b60405190151581526020015b60405180910390f35b6101096100eb366004610787565b600160208190525f9182526040909120805491015460ff9091169082565b6040805192151583526020830191909152016100d4565b61013361012e3660046107a0565b61029d565b005b6101576101433660046107c8565b5f9081526020819052604090206001015490565b6040519081526020016100d4565b6101336101733660046107df565b6103e9565b6101336101863660046107df565b610413565b6101e3610199366004610787565b604080518082019091525f8082526020820152506001600160a01b03165f908152600160208181526040928390208351808501909452805460ff1615158452909101549082015290565b6040805182511515815260209283015192810192909252016100d4565b6101577f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc81565b6100c86102353660046107df565b61044b565b6101575f81565b61013361024f366004610809565b610473565b6101336102623660046107df565b6105d8565b5f6001600160e01b03198216637965db0b60e01b148061029757506301ffc9a760e01b6001600160e01b03198316145b92915050565b7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc6102c7816105fc565b6001600160a01b0383166103155760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210383937bb34b232b960811b60448201526064015b60405180910390fd5b6001600160a01b0383165f9081526001602052604090205460ff16156103725760405162461bcd60e51b8152602060048201526012602482015271185b1c9958591e481c9959da5cdd195c995960721b604482015260640161030c565b604080518082018252600180825260208083018681526001600160a01b0388165f8181528484528690209451855460ff19169015151785559051939092019290925591518481527f90c9734131c1e4fb36cde2d71e6feb93fb258f71be8a85411c173d25e1516e80910160405180910390a2505050565b5f82815260208190526040902060010154610403816105fc565b61040d8383610609565b50505050565b6001600160a01b038116331461043c5760405163334bd91960e11b815260040160405180910390fd5b6104468282610698565b505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc61049d816105fc565b6001600160a01b0384166104e65760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210383937bb34b232b960811b604482015260640161030c565b6001600160a01b0384165f9081526001602052604090205460ff16806105095750825b6105555760405162461bcd60e51b815260206004820152601760248201527f70726f7669646572206e6f742072656769737465726564000000000000000000604482015260640161030c565b60408051808201825284151580825260208083018681526001600160a01b0389165f8181526001808552908790209551865460ff1916901515178655915194909101939093558351918252810185905290917fe226f4be7d881611b5a3ddc83f2e771728014b8012359a29890cd3d670c43dc8910160405180910390a250505050565b5f828152602081905260409020600101546105f2816105fc565b61040d8383610698565b6106068133610701565b50565b5f610614838361044b565b610691575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556106493390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610297565b505f610297565b5f6106a3838361044b565b15610691575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610297565b61070b828261044b565b61073a5760405163e2517d3f60e01b81526001600160a01b03821660048201526024810183905260440161030c565b5050565b5f6020828403121561074e575f80fd5b81356001600160e01b031981168114610765575f80fd5b9392505050565b80356001600160a01b0381168114610782575f80fd5b919050565b5f60208284031215610797575f80fd5b6107658261076c565b5f80604083850312156107b1575f80fd5b6107ba8361076c565b946020939093013593505050565b5f602082840312156107d8575f80fd5b5035919050565b5f80604083850312156107f0575f80fd5b823591506108006020840161076c565b90509250929050565b5f805f6060848603121561081b575f80fd5b6108248461076c565b925060208401358015158114610838575f80fd5b92959294505050604091909101359056fea2646970667358221220a101c519337f4aa027cb1111fb9a84e48dffafc06427481f6b1aa366e53fc5fe64736f6c63430008190033"; type AITokenRegistryConstructorParams = | [signer?: Signer] diff --git a/packages/solidity/aitbc-token/typechain-types/factories/contracts/AIToken__factory.ts b/packages/solidity/aitbc-token/typechain-types/factories/contracts/AIToken__factory.ts index 89eda5f6..82c88557 100644 --- a/packages/solidity/aitbc-token/typechain-types/factories/contracts/AIToken__factory.ts +++ b/packages/solidity/aitbc-token/typechain-types/factories/contracts/AIToken__factory.ts @@ -724,7 +724,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60806040523480156200001157600080fd5b50604051620014833803806200148383398101604081905262000034916200015d565b6040518060400160405280600781526020016620a4aa37b5b2b760c91b8152506040518060400160405280600381526020016210525560ea1b815250816003908162000081919062000236565b50600462000090828262000236565b50620000a291506000905082620000aa565b505062000302565b60008281526005602090815260408083206001600160a01b038516845290915281205460ff16620001535760008381526005602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200010a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000157565b5060005b92915050565b6000602082840312156200017057600080fd5b81516001600160a01b03811681146200018857600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001ba57607f821691505b602082108103620001db57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000231576000816000526020600020601f850160051c810160208610156200020c5750805b601f850160051c820191505b818110156200022d5782815560010162000218565b5050505b505050565b81516001600160401b038111156200025257620002526200018f565b6200026a81620002638454620001a5565b84620001e1565b602080601f831160018114620002a25760008415620002895750858301515b600019600386901b1c1916600185901b1785556200022d565b600085815260208120601f198616915b82811015620002d357888601518255948401946001909101908401620002b2565b5085821015620002f25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61117180620003126000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806336568abe116100b857806395d89b411161007c57806395d89b41146102bb578063a217fddf146102c3578063a9059cbb146102cb578063d547741f146102de578063dd62ed3e146102f1578063e0e27fa71461032a57600080fd5b806336568abe1461021e57806362723644146102315780636b366cb51461025857806370a082311461027f57806391d14854146102a857600080fd5b8063248a9ca3116100ff578063248a9ca3146101b1578063272a7b79146101d45780632f2ff15d146101e7578063313ce567146101fc578063336c739c1461020b57600080fd5b806301ffc9a71461013c57806306fdde0314610164578063095ea7b31461017957806318160ddd1461018c57806323b872dd1461019e575b600080fd5b61014f61014a366004610e77565b61034d565b60405190151581526020015b60405180910390f35b61016c610384565b60405161015b9190610ea8565b61014f610187366004610f13565b610416565b6002545b60405190815260200161015b565b61014f6101ac366004610f3d565b61042e565b6101906101bf366004610f79565b60009081526005602052604090206001015490565b6101906101e2366004610f92565b610452565b6101fa6101f5366004610fc5565b610467565b005b6040516012815260200161015b565b6101fa610219366004610ff1565b610492565b6101fa61022c366004610fc5565b6106ef565b6101907fa7e0cd0f2772b23ee4c329892293a6bd99d48c306b094d6d008c9a8bb8b731e481565b6101907f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc81565b61019061028d366004611085565b6001600160a01b031660009081526020819052604090205490565b61014f6102b6366004610fc5565b610727565b61016c610752565b610190600081565b61014f6102d9366004610f13565b610761565b6101fa6102ec366004610fc5565b61076f565b6101906102ff3660046110a0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61014f610338366004610f79565b60066020526000908152604090205460ff1681565b60006001600160e01b03198216637965db0b60e01b148061037e57506301ffc9a760e01b6001600160e01b03198316145b92915050565b606060038054610393906110ca565b80601f01602080910402602001604051908101604052809291908181526020018280546103bf906110ca565b801561040c5780601f106103e15761010080835404028352916020019161040c565b820191906000526020600020905b8154815290600101906020018083116103ef57829003601f168201915b5050505050905090565b600033610424818585610794565b5060019392505050565b60003361043c8582856107a1565b61044785858561081a565b506001949350505050565b600061045f848484610879565b949350505050565b600082815260056020526040902060010154610482816108f8565b61048c8383610905565b50505050565b7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc6104bc816108f8565b6001600160a01b03861661050a5760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210383937bb34b232b960811b60448201526064015b60405180910390fd5b6000851161054a5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420756e69747360981b6044820152606401610501565b60008481526006602052604090205460ff16156105a95760405162461bcd60e51b815260206004820152601860248201527f7265636569707420616c726561647920636f6e73756d656400000000000000006044820152606401610501565b60006105b6878787610879565b905060006105fc85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086939250506109999050565b90506106287fa7e0cd0f2772b23ee4c329892293a6bd99d48c306b094d6d008c9a8bb8b731e482610727565b6106745760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206174746573746f72207369676e61747572650000000000006044820152606401610501565b6000868152600660205260409020805460ff1916600117905561069788886109c3565b806001600160a01b0316886001600160a01b0316877f62bdd9e89a55dce0e95b0356eac19c65ef5afdd870381a93e270dcd072f13f028a6040516106dd91815260200190565b60405180910390a45050505050505050565b6001600160a01b03811633146107185760405163334bd91960e11b815260040160405180910390fd5b61072282826109fd565b505050565b60009182526005602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060048054610393906110ca565b60003361042481858561081a565b60008281526005602052604090206001015461078a816108f8565b61048c83836109fd565b6107228383836001610a6a565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981101561048c578181101561080b57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610501565b61048c84848484036000610a6a565b6001600160a01b03831661084457604051634b637e8f60e11b815260006004820152602401610501565b6001600160a01b03821661086e5760405163ec442f0560e01b815260006004820152602401610501565b610722838383610b3f565b604080514660208083019190915230828401526001600160a01b03959095166060820152608081019390935260a0808401929092528051808403909201825260c090920190915280519101207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b6109028133610c69565b50565b60006109118383610727565b6109915760008381526005602090815260408083206001600160a01b03861684529091529020805460ff191660011790556109493390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161037e565b50600061037e565b6000806000806109a98686610ca2565b9250925092506109b98282610cef565b5090949350505050565b6001600160a01b0382166109ed5760405163ec442f0560e01b815260006004820152602401610501565b6109f960008383610b3f565b5050565b6000610a098383610727565b156109915760008381526005602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161037e565b6001600160a01b038416610a945760405163e602df0560e01b815260006004820152602401610501565b6001600160a01b038316610abe57604051634a1406b160e11b815260006004820152602401610501565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561048c57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b3191815260200190565b60405180910390a350505050565b6001600160a01b038316610b6a578060026000828254610b5f9190611104565b90915550610bdc9050565b6001600160a01b03831660009081526020819052604090205481811015610bbd5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610501565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610bf857600280548290039055610c17565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c5c91815260200190565b60405180910390a3505050565b610c738282610727565b6109f95760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610501565b60008060008351604103610cdc5760208401516040850151606086015160001a610cce88828585610da8565b955095509550505050610ce8565b50508151600091506002905b9250925092565b6000826003811115610d0357610d03611125565b03610d0c575050565b6001826003811115610d2057610d20611125565b03610d3e5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610d5257610d52611125565b03610d735760405163fce698f760e01b815260048101829052602401610501565b6003826003811115610d8757610d87611125565b036109f9576040516335e2f38360e21b815260048101829052602401610501565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610de35750600091506003905082610e6d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610e37573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e6357506000925060019150829050610e6d565b9250600091508190505b9450945094915050565b600060208284031215610e8957600080fd5b81356001600160e01b031981168114610ea157600080fd5b9392505050565b60006020808352835180602085015260005b81811015610ed657858101830151858201604001528201610eba565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610f0e57600080fd5b919050565b60008060408385031215610f2657600080fd5b610f2f83610ef7565b946020939093013593505050565b600080600060608486031215610f5257600080fd5b610f5b84610ef7565b9250610f6960208501610ef7565b9150604084013590509250925092565b600060208284031215610f8b57600080fd5b5035919050565b600080600060608486031215610fa757600080fd5b610fb084610ef7565b95602085013595506040909401359392505050565b60008060408385031215610fd857600080fd5b82359150610fe860208401610ef7565b90509250929050565b60008060008060006080868803121561100957600080fd5b61101286610ef7565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561103d57600080fd5b818801915088601f83011261105157600080fd5b81358181111561106057600080fd5b89602082850101111561107257600080fd5b9699959850939650602001949392505050565b60006020828403121561109757600080fd5b610ea182610ef7565b600080604083850312156110b357600080fd5b6110bc83610ef7565b9150610fe860208401610ef7565b600181811c908216806110de57607f821691505b6020821081036110fe57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561037e57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fdfea2646970667358221220ccbff0a677379c90c9003ba37fbc7f7e7ecff7adecf992224d7bf2788e4cfc4b64736f6c63430008180033"; + "0x608060405234801561000f575f80fd5b506040516113d23803806113d283398101604081905261002e91610149565b6040518060400160405280600781526020016620a4aa37b5b2b760c91b8152506040518060400160405280600381526020016210525560ea1b8152508160039081610079919061020e565b506004610086828261020e565b5061009591505f90508261009c565b50506102cd565b5f8281526005602090815260408083206001600160a01b038516845290915281205460ff16610140575f8381526005602090815260408083206001600160a01b03861684529091529020805460ff191660011790556100f83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610143565b505f5b92915050565b5f60208284031215610159575f80fd5b81516001600160a01b038116811461016f575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061019e57607f821691505b6020821081036101bc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561020957805f5260205f20601f840160051c810160208510156101e75750805b601f840160051c820191505b81811015610206575f81556001016101f3565b50505b505050565b81516001600160401b0381111561022757610227610176565b61023b81610235845461018a565b846101c2565b602080601f83116001811461026e575f84156102575750858301515b5f19600386901b1c1916600185901b1785556102c5565b5f85815260208120601f198616915b8281101561029c5788860151825594840194600190910190840161027d565b50858210156102b957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6110f8806102da5f395ff3fe608060405234801561000f575f80fd5b5060043610610132575f3560e01c806336568abe116100b457806395d89b411161007957806395d89b41146102b3578063a217fddf146102bb578063a9059cbb146102c2578063d547741f146102d5578063dd62ed3e146102e8578063e0e27fa714610320575f80fd5b806336568abe14610217578063627236441461022a5780636b366cb51461025157806370a082311461027857806391d14854146102a0575f80fd5b8063248a9ca3116100fa578063248a9ca3146101ab578063272a7b79146101cd5780632f2ff15d146101e0578063313ce567146101f5578063336c739c14610204575f80fd5b806301ffc9a71461013657806306fdde031461015e578063095ea7b31461017357806318160ddd1461018657806323b872dd14610198575b5f80fd5b610149610144366004610e3a565b610342565b60405190151581526020015b60405180910390f35b610166610378565b6040516101559190610e68565b610149610181366004610eb8565b610408565b6002545b604051908152602001610155565b6101496101a6366004610ee0565b61041f565b61018a6101b9366004610f19565b5f9081526005602052604090206001015490565b61018a6101db366004610f30565b610442565b6101f36101ee366004610f60565b610456565b005b60405160128152602001610155565b6101f3610212366004610f8a565b610480565b6101f3610225366004610f60565b6106d7565b61018a7fa7e0cd0f2772b23ee4c329892293a6bd99d48c306b094d6d008c9a8bb8b731e481565b61018a7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc81565b61018a610286366004611016565b6001600160a01b03165f9081526020819052604090205490565b6101496102ae366004610f60565b61070f565b610166610739565b61018a5f81565b6101496102d0366004610eb8565b610748565b6101f36102e3366004610f60565b610755565b61018a6102f636600461102f565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61014961032e366004610f19565b60066020525f908152604090205460ff1681565b5f6001600160e01b03198216637965db0b60e01b148061037257506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606003805461038790611057565b80601f01602080910402602001604051908101604052809291908181526020018280546103b390611057565b80156103fe5780601f106103d5576101008083540402835291602001916103fe565b820191905f5260205f20905b8154815290600101906020018083116103e157829003601f168201915b5050505050905090565b5f33610415818585610779565b5060019392505050565b5f3361042c858285610786565b6104378585856107fc565b506001949350505050565b5f61044e848484610859565b949350505050565b5f82815260056020526040902060010154610470816108d7565b61047a83836108e4565b50505050565b7f2e8b98eef02e8df3bd27d1270ded3bea3d14db99c5234c7b14001a7fff957bcc6104aa816108d7565b6001600160a01b0386166104f85760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210383937bb34b232b960811b60448201526064015b60405180910390fd5b5f85116105375760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420756e69747360981b60448201526064016104ef565b5f8481526006602052604090205460ff16156105955760405162461bcd60e51b815260206004820152601860248201527f7265636569707420616c726561647920636f6e73756d6564000000000000000060448201526064016104ef565b5f6105a1878787610859565b90505f6105e585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525086939250506109759050565b90506106117fa7e0cd0f2772b23ee4c329892293a6bd99d48c306b094d6d008c9a8bb8b731e48261070f565b61065d5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964206174746573746f72207369676e617475726500000000000060448201526064016104ef565b5f868152600660205260409020805460ff1916600117905561067f888861099d565b806001600160a01b0316886001600160a01b0316877f62bdd9e89a55dce0e95b0356eac19c65ef5afdd870381a93e270dcd072f13f028a6040516106c591815260200190565b60405180910390a45050505050505050565b6001600160a01b03811633146107005760405163334bd91960e11b815260040160405180910390fd5b61070a82826109d5565b505050565b5f9182526005602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60606004805461038790611057565b5f336104158185856107fc565b5f8281526005602052604090206001015461076f816108d7565b61047a83836109d5565b61070a8383836001610a40565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f1981101561047a57818110156107ee57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016104ef565b61047a84848484035f610a40565b6001600160a01b03831661082557604051634b637e8f60e11b81525f60048201526024016104ef565b6001600160a01b03821661084e5760405163ec442f0560e01b81525f60048201526024016104ef565b61070a838383610b12565b604080514660208083019190915230828401526001600160a01b03959095166060820152608081019390935260a0808401929092528051808403909201825260c090920190915280519101207f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c91909152603c902090565b6108e18133610c38565b50565b5f6108ef838361070f565b61096e575f8381526005602090815260408083206001600160a01b03861684529091529020805460ff191660011790556109263390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610372565b505f610372565b5f805f806109838686610c71565b9250925092506109938282610cba565b5090949350505050565b6001600160a01b0382166109c65760405163ec442f0560e01b81525f60048201526024016104ef565b6109d15f8383610b12565b5050565b5f6109e0838361070f565b1561096e575f8381526005602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610372565b6001600160a01b038416610a695760405163e602df0560e01b81525f60048201526024016104ef565b6001600160a01b038316610a9257604051634a1406b160e11b81525f60048201526024016104ef565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561047a57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b0491815260200190565b60405180910390a350505050565b6001600160a01b038316610b3c578060025f828254610b31919061108f565b90915550610bac9050565b6001600160a01b0383165f9081526020819052604090205481811015610b8e5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016104ef565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610bc857600280548290039055610be6565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c2b91815260200190565b60405180910390a3505050565b610c42828261070f565b6109d15760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016104ef565b5f805f8351604103610ca8576020840151604085015160608601515f1a610c9a88828585610d72565b955095509550505050610cb3565b505081515f91506002905b9250925092565b5f826003811115610ccd57610ccd6110ae565b03610cd6575050565b6001826003811115610cea57610cea6110ae565b03610d085760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610d1c57610d1c6110ae565b03610d3d5760405163fce698f760e01b8152600481018290526024016104ef565b6003826003811115610d5157610d516110ae565b036109d1576040516335e2f38360e21b8152600481018290526024016104ef565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610dab57505f91506003905082610e30565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610dfc573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116610e2757505f925060019150829050610e30565b92505f91508190505b9450945094915050565b5f60208284031215610e4a575f80fd5b81356001600160e01b031981168114610e61575f80fd5b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610eb3575f80fd5b919050565b5f8060408385031215610ec9575f80fd5b610ed283610e9d565b946020939093013593505050565b5f805f60608486031215610ef2575f80fd5b610efb84610e9d565b9250610f0960208501610e9d565b9150604084013590509250925092565b5f60208284031215610f29575f80fd5b5035919050565b5f805f60608486031215610f42575f80fd5b610f4b84610e9d565b95602085013595506040909401359392505050565b5f8060408385031215610f71575f80fd5b82359150610f8160208401610e9d565b90509250929050565b5f805f805f60808688031215610f9e575f80fd5b610fa786610e9d565b94506020860135935060408601359250606086013567ffffffffffffffff80821115610fd1575f80fd5b818801915088601f830112610fe4575f80fd5b813581811115610ff2575f80fd5b896020828501011115611003575f80fd5b9699959850939650602001949392505050565b5f60208284031215611026575f80fd5b610e6182610e9d565b5f8060408385031215611040575f80fd5b61104983610e9d565b9150610f8160208401610e9d565b600181811c9082168061106b57607f821691505b60208210810361108957634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561037257634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52602160045260245ffdfea26469706673582212203e9a5601b95d9a8f8b2f3aa93c8453c70e42f8252b268b35f0bacb132a46d50764736f6c63430008190033"; type AITokenConstructorParams = | [signer?: Signer] diff --git a/packages/solidity/aitbc-token/typechain-types/hardhat.d.ts b/packages/solidity/aitbc-token/typechain-types/hardhat.d.ts index 1e7f8e0f..470cd8c9 100644 --- a/packages/solidity/aitbc-token/typechain-types/hardhat.d.ts +++ b/packages/solidity/aitbc-token/typechain-types/hardhat.d.ts @@ -49,6 +49,10 @@ declare module "hardhat/types/runtime" { name: "ECDSA", signerOrOptions?: ethers.Signer | FactoryOptions ): Promise; + getContractFactory( + name: "MessageHashUtils", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; getContractFactory( name: "ERC165", signerOrOptions?: ethers.Signer | FactoryOptions @@ -119,6 +123,11 @@ declare module "hardhat/types/runtime" { address: string | ethers.Addressable, signer?: ethers.Signer ): Promise; + getContractAt( + name: "MessageHashUtils", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; getContractAt( name: "ERC165", address: string | ethers.Addressable, @@ -186,6 +195,10 @@ declare module "hardhat/types/runtime" { name: "ECDSA", signerOrOptions?: ethers.Signer | DeployContractOptions ): Promise; + deployContract( + name: "MessageHashUtils", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; deployContract( name: "ERC165", signerOrOptions?: ethers.Signer | DeployContractOptions @@ -256,6 +269,11 @@ declare module "hardhat/types/runtime" { args: any[], signerOrOptions?: ethers.Signer | DeployContractOptions ): Promise; + deployContract( + name: "MessageHashUtils", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; deployContract( name: "ERC165", args: any[], diff --git a/packages/solidity/aitbc-token/typechain-types/index.ts b/packages/solidity/aitbc-token/typechain-types/index.ts index c9c53643..bbac08a0 100644 --- a/packages/solidity/aitbc-token/typechain-types/index.ts +++ b/packages/solidity/aitbc-token/typechain-types/index.ts @@ -24,6 +24,8 @@ export type { IERC20 } from "./@openzeppelin/contracts/token/ERC20/IERC20"; export { IERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/IERC20__factory"; export type { ECDSA } from "./@openzeppelin/contracts/utils/cryptography/ECDSA"; export { ECDSA__factory } from "./factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory"; +export type { MessageHashUtils } from "./@openzeppelin/contracts/utils/cryptography/MessageHashUtils"; +export { MessageHashUtils__factory } from "./factories/@openzeppelin/contracts/utils/cryptography/MessageHashUtils__factory"; export type { ERC165 } from "./@openzeppelin/contracts/utils/introspection/ERC165"; export { ERC165__factory } from "./factories/@openzeppelin/contracts/utils/introspection/ERC165__factory"; export type { IERC165 } from "./@openzeppelin/contracts/utils/introspection/IERC165"; diff --git a/scripts/ci/test_api_endpoints.py b/scripts/ci/test_api_endpoints.py index e096a954..2fec80d5 100755 --- a/scripts/ci/test_api_endpoints.py +++ b/scripts/ci/test_api_endpoints.py @@ -10,7 +10,7 @@ import sys # Service ports (must match systemd config) SERVICES = { "coordinator": {"url": "http://localhost:8000", "endpoints": ["/", "/health", "/info"]}, - "exchange": {"url": "http://localhost:8001", "endpoints": ["/", "/health", "/info"]}, + "exchange": {"url": "http://localhost:8001", "endpoints": ["/", "/api/health", "/health", "/info"]}, "wallet": {"url": "http://localhost:8003", "endpoints": ["/", "/health", "/wallets"]}, "blockchain_rpc": {"url": "http://localhost:8006", "endpoints": []}, } @@ -105,9 +105,9 @@ def main(): print("\n⚡ Performance tests...") perf = test_performance([ - ("Coordinator", "http://localhost:8000/"), - ("Exchange", "http://localhost:8001/"), - ("Wallet", "http://localhost:8003/"), + ("Coordinator", "http://localhost:8000/health"), + ("Exchange", "http://localhost:8001/api/health"), + ("Wallet", "http://localhost:8003/health"), ]) all_results["performance"] = perf