Migrate contracts directory from npm to pnpm
- Delete package-lock.json and create pnpm-lock.yaml - Add .npmrc with strict peer deps and frozen lockfile settings - Update CI workflows to use pnpm instead of npm - Update shell scripts to use pnpm instead of npm/npx - Update documentation to reference pnpm commands - Validate migration with successful hardhat compile
This commit is contained in:
@@ -50,7 +50,13 @@ jobs:
|
|||||||
- name: Setup Node.js environment
|
- name: Setup Node.js environment
|
||||||
run: |
|
run: |
|
||||||
cd "${{ env.WORKSPACE }}/repo/contracts"
|
cd "${{ env.WORKSPACE }}/repo/contracts"
|
||||||
npm install
|
|
||||||
|
# Install pnpm if not available
|
||||||
|
if ! command -v pnpm &> /dev/null; then
|
||||||
|
npm install -g pnpm
|
||||||
|
fi
|
||||||
|
|
||||||
|
pnpm install
|
||||||
echo "✅ Node.js environment ready"
|
echo "✅ Node.js environment ready"
|
||||||
|
|
||||||
- name: Run gas usage benchmarks
|
- name: Run gas usage benchmarks
|
||||||
@@ -60,7 +66,7 @@ jobs:
|
|||||||
echo "🧪 Running gas usage benchmarks"
|
echo "🧪 Running gas usage benchmarks"
|
||||||
|
|
||||||
# Run benchmarks (gas reporting will be added when tests are implemented)
|
# Run benchmarks (gas reporting will be added when tests are implemented)
|
||||||
npx hardhat test test/benchmarks/gas-usage.test.js
|
pnpm hardhat test test/benchmarks/gas-usage.test.js
|
||||||
|
|
||||||
echo "✅ Gas usage benchmarks completed"
|
echo "✅ Gas usage benchmarks completed"
|
||||||
|
|
||||||
@@ -103,7 +109,13 @@ jobs:
|
|||||||
- name: Setup Node.js environment
|
- name: Setup Node.js environment
|
||||||
run: |
|
run: |
|
||||||
cd "${{ env.WORKSPACE }}/repo/contracts"
|
cd "${{ env.WORKSPACE }}/repo/contracts"
|
||||||
npm install
|
|
||||||
|
# Install pnpm if not available
|
||||||
|
if ! command -v pnpm &> /dev/null; then
|
||||||
|
npm install -g pnpm
|
||||||
|
fi
|
||||||
|
|
||||||
|
pnpm install
|
||||||
echo "✅ Node.js environment ready"
|
echo "✅ Node.js environment ready"
|
||||||
|
|
||||||
- name: Run execution time benchmarks
|
- name: Run execution time benchmarks
|
||||||
@@ -112,7 +124,7 @@ jobs:
|
|||||||
|
|
||||||
echo "🧪 Running execution time benchmarks"
|
echo "🧪 Running execution time benchmarks"
|
||||||
|
|
||||||
npx hardhat test test/benchmarks/execution-time.test.js
|
pnpm hardhat test test/benchmarks/execution-time.test.js
|
||||||
|
|
||||||
echo "✅ Execution time benchmarks completed"
|
echo "✅ Execution time benchmarks completed"
|
||||||
|
|
||||||
@@ -154,7 +166,13 @@ jobs:
|
|||||||
- name: Setup Node.js environment
|
- name: Setup Node.js environment
|
||||||
run: |
|
run: |
|
||||||
cd "${{ env.WORKSPACE }}/repo/contracts"
|
cd "${{ env.WORKSPACE }}/repo/contracts"
|
||||||
npm install
|
|
||||||
|
# Install pnpm if not available
|
||||||
|
if ! command -v pnpm &> /dev/null; then
|
||||||
|
npm install -g pnpm
|
||||||
|
fi
|
||||||
|
|
||||||
|
pnpm install
|
||||||
echo "✅ Node.js environment ready"
|
echo "✅ Node.js environment ready"
|
||||||
|
|
||||||
- name: Run throughput benchmarks
|
- name: Run throughput benchmarks
|
||||||
@@ -163,7 +181,7 @@ jobs:
|
|||||||
|
|
||||||
echo "🧪 Running throughput benchmarks"
|
echo "🧪 Running throughput benchmarks"
|
||||||
|
|
||||||
npx hardhat test test/benchmarks/throughput.test.js
|
pnpm hardhat test test/benchmarks/throughput.test.js
|
||||||
|
|
||||||
echo "✅ Throughput benchmarks completed"
|
echo "✅ Throughput benchmarks completed"
|
||||||
|
|
||||||
|
|||||||
@@ -61,8 +61,14 @@ jobs:
|
|||||||
if: inputs.skip_tests != true
|
if: inputs.skip_tests != true
|
||||||
run: |
|
run: |
|
||||||
cd "${{ env.WORKSPACE }}/repo/contracts"
|
cd "${{ env.WORKSPACE }}/repo/contracts"
|
||||||
npm install
|
|
||||||
npx hardhat test
|
# Install pnpm if not available
|
||||||
|
if ! command -v pnpm &> /dev/null; then
|
||||||
|
npm install -g pnpm
|
||||||
|
fi
|
||||||
|
|
||||||
|
pnpm install
|
||||||
|
pnpm hardhat test
|
||||||
echo "✅ Contract tests passed"
|
echo "✅ Contract tests passed"
|
||||||
|
|
||||||
- name: Verify deployment readiness
|
- name: Verify deployment readiness
|
||||||
@@ -105,13 +111,19 @@ jobs:
|
|||||||
- name: Setup Node.js environment
|
- name: Setup Node.js environment
|
||||||
run: |
|
run: |
|
||||||
cd "${{ env.WORKSPACE }}/repo/contracts"
|
cd "${{ env.WORKSPACE }}/repo/contracts"
|
||||||
npm install
|
|
||||||
|
# Install pnpm if not available
|
||||||
|
if ! command -v pnpm &> /dev/null; then
|
||||||
|
npm install -g pnpm
|
||||||
|
fi
|
||||||
|
|
||||||
|
pnpm install
|
||||||
echo "✅ Node.js environment ready"
|
echo "✅ Node.js environment ready"
|
||||||
|
|
||||||
- name: Compile contracts
|
- name: Compile contracts
|
||||||
run: |
|
run: |
|
||||||
cd "${{ env.WORKSPACE }}/repo/contracts"
|
cd "${{ env.WORKSPACE }}/repo/contracts"
|
||||||
npx hardhat compile
|
pnpm hardhat compile
|
||||||
echo "✅ Contracts compiled"
|
echo "✅ Contracts compiled"
|
||||||
|
|
||||||
- name: Deploy contracts to mainnet
|
- name: Deploy contracts to mainnet
|
||||||
@@ -124,7 +136,7 @@ jobs:
|
|||||||
export MAINNET_RPC_URL=${{ secrets.MAINNET_RPC_URL }}
|
export MAINNET_RPC_URL=${{ secrets.MAINNET_RPC_URL }}
|
||||||
|
|
||||||
# Deploy contracts with gas optimization
|
# Deploy contracts with gas optimization
|
||||||
npx hardhat run scripts/deploy-mainnet.js --network mainnet
|
pnpm hardhat run scripts/deploy-mainnet.js --network mainnet
|
||||||
|
|
||||||
echo "✅ Contracts deployed to mainnet"
|
echo "✅ Contracts deployed to mainnet"
|
||||||
|
|
||||||
@@ -140,16 +152,16 @@ jobs:
|
|||||||
echo "🔍 Verifying contracts on Etherscan..."
|
echo "🔍 Verifying contracts on Etherscan..."
|
||||||
|
|
||||||
# Verify PaymentProcessor
|
# Verify PaymentProcessor
|
||||||
npx hardhat verify --network mainnet $PAYMENT_PROCESSOR_ADDRESS --constructor-args scripts/deployment/args/payment-processor-args.js
|
pnpm hardhat verify --network mainnet $PAYMENT_PROCESSOR_ADDRESS --constructor-args scripts/deployment/args/payment-processor-args.js
|
||||||
|
|
||||||
# Verify AgentMarketplace
|
# Verify AgentMarketplace
|
||||||
npx hardhat verify --network mainnet $AGENT_MARKETPLACE_ADDRESS --constructor-args scripts/deployment/args/agent-marketplace-args.js
|
pnpm hardhat verify --network mainnet $AGENT_MARKETPLACE_ADDRESS --constructor-args scripts/deployment/args/agent-marketplace-args.js
|
||||||
|
|
||||||
# Verify StakingContract
|
# Verify StakingContract
|
||||||
npx hardhat verify --network mainnet $STAKING_CONTRACT_ADDRESS --constructor-args scripts/deployment/args/staking-contract-args.js
|
pnpm hardhat verify --network mainnet $STAKING_CONTRACT_ADDRESS --constructor-args scripts/deployment/args/staking-contract-args.js
|
||||||
|
|
||||||
# Verify TreasuryManager
|
# Verify TreasuryManager
|
||||||
npx hardhat verify --network mainnet $TREASURY_MANAGER_ADDRESS --constructor-args scripts/deployment/args/treasury-manager-args.js
|
pnpm hardhat verify --network mainnet $TREASURY_MANAGER_ADDRESS --constructor-args scripts/deployment/args/treasury-manager-args.js
|
||||||
|
|
||||||
echo "✅ All contracts verified on Etherscan"
|
echo "✅ All contracts verified on Etherscan"
|
||||||
|
|
||||||
|
|||||||
@@ -51,20 +51,26 @@ jobs:
|
|||||||
- name: Setup Node.js environment
|
- name: Setup Node.js environment
|
||||||
run: |
|
run: |
|
||||||
cd "${{ env.WORKSPACE }}/repo/contracts"
|
cd "${{ env.WORKSPACE }}/repo/contracts"
|
||||||
npm install
|
|
||||||
|
# Install pnpm if not available
|
||||||
|
if ! command -v pnpm &> /dev/null; then
|
||||||
|
npm install -g pnpm
|
||||||
|
fi
|
||||||
|
|
||||||
|
pnpm install
|
||||||
echo "✅ Node.js environment ready"
|
echo "✅ Node.js environment ready"
|
||||||
|
|
||||||
- name: Compile contracts
|
- name: Compile contracts
|
||||||
run: |
|
run: |
|
||||||
cd "${{ env.WORKSPACE }}/repo/contracts"
|
cd "${{ env.WORKSPACE }}/repo/contracts"
|
||||||
npx hardhat compile
|
pnpm hardhat compile
|
||||||
echo "✅ Contracts compiled"
|
echo "✅ Contracts compiled"
|
||||||
|
|
||||||
- name: Run contract tests
|
- name: Run contract tests
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
cd "${{ env.WORKSPACE }}/repo/contracts"
|
cd "${{ env.WORKSPACE }}/repo/contracts"
|
||||||
npx hardhat test || echo "⚠️ Some contract tests failed - continuing with deployment"
|
pnpm hardhat test || echo "⚠️ Some contract tests failed - continuing with deployment"
|
||||||
echo "✅ Contract tests completed"
|
echo "✅ Contract tests completed"
|
||||||
|
|
||||||
- name: Deploy contracts to testnet
|
- name: Deploy contracts to testnet
|
||||||
@@ -87,7 +93,7 @@ jobs:
|
|||||||
export TESTNET_EXPLORER_URL=${{ secrets.TESTNET_EXPLORER_URL }}
|
export TESTNET_EXPLORER_URL=${{ secrets.TESTNET_EXPLORER_URL }}
|
||||||
|
|
||||||
# Verify deployed contracts
|
# Verify deployed contracts
|
||||||
npx hardhat verify --network testnet DEPLOYED_CONTRACT_ADDRESS CONSTRUCTOR_ARGS
|
pnpm hardhat verify --network testnet DEPLOYED_CONTRACT_ADDRESS CONSTRUCTOR_ARGS
|
||||||
|
|
||||||
echo "✅ Contracts verified on block explorer"
|
echo "✅ Contracts verified on block explorer"
|
||||||
|
|
||||||
|
|||||||
@@ -58,16 +58,21 @@ jobs:
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Node: $(node --version), npm: $(npm --version)"
|
echo "Node: $(node --version), pnpm: $(pnpm --version)"
|
||||||
|
|
||||||
|
# Install pnpm if not available
|
||||||
|
if ! command -v pnpm &> /dev/null; then
|
||||||
|
npm install -g pnpm
|
||||||
|
fi
|
||||||
|
|
||||||
# Install
|
# Install
|
||||||
npm install --legacy-peer-deps
|
pnpm install
|
||||||
|
|
||||||
# Compile
|
# Compile
|
||||||
if [[ -f "hardhat.config.js" ]] || [[ -f "hardhat.config.ts" ]]; then
|
if [[ -f "hardhat.config.js" ]] || [[ -f "hardhat.config.ts" ]]; then
|
||||||
npx hardhat compile
|
pnpm hardhat compile
|
||||||
echo "✅ Compiled"
|
echo "✅ Compiled"
|
||||||
npx hardhat test
|
pnpm hardhat test
|
||||||
echo "✅ Tests passed"
|
echo "✅ Tests passed"
|
||||||
elif [[ -f "foundry.toml" ]]; then
|
elif [[ -f "foundry.toml" ]]; then
|
||||||
forge build
|
forge build
|
||||||
@@ -76,10 +81,10 @@ jobs:
|
|||||||
echo "✅ Tests passed"
|
echo "✅ Tests passed"
|
||||||
else
|
else
|
||||||
if node -e "const pkg=require('./package.json'); process.exit(pkg.scripts && pkg.scripts.compile ? 0 : 1)"; then
|
if node -e "const pkg=require('./package.json'); process.exit(pkg.scripts && pkg.scripts.compile ? 0 : 1)"; then
|
||||||
npm run compile
|
pnpm run compile
|
||||||
echo "✅ Compiled"
|
echo "✅ Compiled"
|
||||||
elif node -e "const pkg=require('./package.json'); process.exit(pkg.scripts && pkg.scripts.build ? 0 : 1)"; then
|
elif node -e "const pkg=require('./package.json'); process.exit(pkg.scripts && pkg.scripts.build ? 0 : 1)"; then
|
||||||
npm run build
|
pnpm run build
|
||||||
echo "✅ Compiled"
|
echo "✅ Compiled"
|
||||||
else
|
else
|
||||||
echo "❌ No compile or build script found"
|
echo "❌ No compile or build script found"
|
||||||
@@ -87,7 +92,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if node -e "const pkg=require('./package.json'); process.exit(pkg.scripts && pkg.scripts.test ? 0 : 1)"; then
|
if node -e "const pkg=require('./package.json'); process.exit(pkg.scripts && pkg.scripts.test ? 0 : 1)"; then
|
||||||
npm test
|
pnpm test
|
||||||
echo "✅ Tests passed"
|
echo "✅ Tests passed"
|
||||||
else
|
else
|
||||||
echo "❌ No test script found"
|
echo "❌ No test script found"
|
||||||
@@ -189,10 +194,15 @@ jobs:
|
|||||||
if [[ -d "$project" ]] && [[ -f "$project/package.json" ]]; then
|
if [[ -d "$project" ]] && [[ -f "$project/package.json" ]]; then
|
||||||
echo "=== Linting $project ==="
|
echo "=== Linting $project ==="
|
||||||
cd "$project"
|
cd "$project"
|
||||||
npm install --legacy-peer-deps
|
|
||||||
|
# Install pnpm if not available
|
||||||
|
if ! command -v pnpm &> /dev/null; then
|
||||||
|
npm install -g pnpm
|
||||||
|
fi
|
||||||
|
pnpm install
|
||||||
|
|
||||||
if node -e "const pkg=require('./package.json'); process.exit(pkg.scripts && pkg.scripts.lint ? 0 : 1)"; then
|
if node -e "const pkg=require('./package.json'); process.exit(pkg.scripts && pkg.scripts.lint ? 0 : 1)"; then
|
||||||
npm run lint
|
pnpm run lint
|
||||||
echo "✅ Lint passed"
|
echo "✅ Lint passed"
|
||||||
else
|
else
|
||||||
echo "⚠️ No lint script for $project, skipping"
|
echo "⚠️ No lint script for $project, skipping"
|
||||||
@@ -237,23 +247,28 @@ jobs:
|
|||||||
|
|
||||||
echo "=== Deploying Contracts to Localhost ==="
|
echo "=== Deploying Contracts to Localhost ==="
|
||||||
|
|
||||||
|
# Install pnpm if not available
|
||||||
|
if ! command -v pnpm &> /dev/null; then
|
||||||
|
npm install -g pnpm
|
||||||
|
fi
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
npm install --legacy-peer-deps
|
pnpm install
|
||||||
|
|
||||||
# Compile contracts
|
# Compile contracts
|
||||||
npx hardhat compile
|
pnpm hardhat compile
|
||||||
|
|
||||||
# Start local node in background
|
# Start local node in background
|
||||||
npx hardhat node &
|
pnpm hardhat node &
|
||||||
NODE_PID=$!
|
NODE_PID=$!
|
||||||
sleep 10
|
sleep 10
|
||||||
|
|
||||||
# Deploy contracts
|
# Deploy contracts
|
||||||
npx hardhat run scripts/deploy-automation.js --network localhost
|
pnpm hardhat run scripts/deploy-automation.js --network localhost
|
||||||
echo "✅ Contracts deployed successfully"
|
echo "✅ Contracts deployed successfully"
|
||||||
|
|
||||||
# Verify deployment
|
# Verify deployment
|
||||||
DEPLOYMENT_FILE="deployments-localhost.json" npx hardhat run scripts/verify-deployment.js --network localhost
|
DEPLOYMENT_FILE="deployments-localhost.json" pnpm hardhat run scripts/verify-deployment.js --network localhost
|
||||||
echo "✅ Deployment verified"
|
echo "✅ Deployment verified"
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
|
|||||||
@@ -145,7 +145,12 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd "${{ env.WORKSPACE }}/repo/contracts"
|
cd "${{ env.WORKSPACE }}/repo/contracts"
|
||||||
|
|
||||||
npm install
|
# Install pnpm if not available
|
||||||
|
if ! command -v pnpm &> /dev/null; then
|
||||||
|
npm install -g pnpm
|
||||||
|
fi
|
||||||
|
|
||||||
|
pnpm install
|
||||||
echo "✅ Node.js environment ready"
|
echo "✅ Node.js environment ready"
|
||||||
|
|
||||||
- name: Run staking contract tests
|
- name: Run staking contract tests
|
||||||
@@ -153,8 +158,8 @@ jobs:
|
|||||||
cd "${{ env.WORKSPACE }}/repo/contracts"
|
cd "${{ env.WORKSPACE }}/repo/contracts"
|
||||||
|
|
||||||
echo "🧪 Running staking contract tests..."
|
echo "🧪 Running staking contract tests..."
|
||||||
npx hardhat compile
|
pnpm hardhat compile
|
||||||
npx hardhat test test/AgentStaking.test.js
|
pnpm hardhat test test/AgentStaking.test.js
|
||||||
echo "✅ Contract tests completed"
|
echo "✅ Contract tests completed"
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
|
|||||||
4
contracts/.npmrc
Normal file
4
contracts/.npmrc
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
auto-install-peers=false
|
||||||
|
strict-peer-dependencies=true
|
||||||
|
prefer-frozen-lockfile=true
|
||||||
|
shamefully-hoist=true
|
||||||
@@ -152,8 +152,8 @@ docs/
|
|||||||
## 🎯 **Next Steps**
|
## 🎯 **Next Steps**
|
||||||
|
|
||||||
### **✅ Ready for Production**
|
### **✅ Ready for Production**
|
||||||
1. **Deploy to Testnet**: `npm run deploy-phase4`
|
1. **Deploy to Testnet**: `pnpm run deploy-phase4`
|
||||||
2. **Run Verification**: `npm run verify-phase4`
|
2. **Run Verification**: `pnpm run verify-phase4`
|
||||||
3. **Integration Testing**: Test with existing AITBC contracts
|
3. **Integration Testing**: Test with existing AITBC contracts
|
||||||
4. **Mainnet Deployment**: Production deployment
|
4. **Mainnet Deployment**: Production deployment
|
||||||
|
|
||||||
|
|||||||
@@ -198,16 +198,16 @@ The ContractRegistry enables:
|
|||||||
### **Deployment Commands**
|
### **Deployment Commands**
|
||||||
```bash
|
```bash
|
||||||
# Compile contracts
|
# Compile contracts
|
||||||
npm run compile
|
pnpm run compile
|
||||||
|
|
||||||
# Deploy Phase 4 modular contracts
|
# Deploy Phase 4 modular contracts
|
||||||
npm run deploy-phase4
|
pnpm run deploy-phase4
|
||||||
|
|
||||||
# Run comprehensive tests
|
# Run comprehensive tests
|
||||||
npm run test-phase4
|
pnpm run test-phase4
|
||||||
|
|
||||||
# Verify deployment
|
# Verify deployment
|
||||||
npm run verify-phase4
|
pnpm run verify-phase4
|
||||||
```
|
```
|
||||||
|
|
||||||
### **Configuration**
|
### **Configuration**
|
||||||
|
|||||||
680
contracts/cache/solidity-files-cache.json
vendored
680
contracts/cache/solidity-files-cache.json
vendored
@@ -2,7 +2,7 @@
|
|||||||
"_format": "hh-sol-cache-2",
|
"_format": "hh-sol-cache-2",
|
||||||
"files": {
|
"files": {
|
||||||
"/opt/aitbc/contracts/contracts/AIPowerRental.sol": {
|
"/opt/aitbc/contracts/contracts/AIPowerRental.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446277,
|
||||||
"contentHash": "d8c0ce86b1f2b089fa6f06084b7cb190",
|
"contentHash": "d8c0ce86b1f2b089fa6f06084b7cb190",
|
||||||
"sourceName": "contracts/AIPowerRental.sol",
|
"sourceName": "contracts/AIPowerRental.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -303,7 +303,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/PerformanceVerifier.sol": {
|
"/opt/aitbc/contracts/contracts/PerformanceVerifier.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446313,
|
||||||
"contentHash": "4c06ef6a765d764a5561389584e9d4ef",
|
"contentHash": "4c06ef6a765d764a5561389584e9d4ef",
|
||||||
"sourceName": "contracts/PerformanceVerifier.sol",
|
"sourceName": "contracts/PerformanceVerifier.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -536,7 +536,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/TreasuryManager.sol": {
|
"/opt/aitbc/contracts/contracts/TreasuryManager.sol": {
|
||||||
"lastModificationDate": 1776798809550,
|
"lastModificationDate": 1778145446317,
|
||||||
"contentHash": "4b2fe1b18bb9d35d4302593ba04c9c9f",
|
"contentHash": "4b2fe1b18bb9d35d4302593ba04c9c9f",
|
||||||
"sourceName": "contracts/TreasuryManager.sol",
|
"sourceName": "contracts/TreasuryManager.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -580,7 +580,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/ContractRegistry.sol": {
|
"/opt/aitbc/contracts/contracts/ContractRegistry.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446305,
|
||||||
"contentHash": "fe9d06f15a808ea45ceee1baaafce6fa",
|
"contentHash": "fe9d06f15a808ea45ceee1baaafce6fa",
|
||||||
"sourceName": "contracts/ContractRegistry.sol",
|
"sourceName": "contracts/ContractRegistry.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -665,7 +665,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/StakingPoolFactory.sol": {
|
"/opt/aitbc/contracts/contracts/StakingPoolFactory.sol": {
|
||||||
"lastModificationDate": 1776798809550,
|
"lastModificationDate": 1778145446313,
|
||||||
"contentHash": "7679638d7265ded0348342ad3f040808",
|
"contentHash": "7679638d7265ded0348342ad3f040808",
|
||||||
"sourceName": "contracts/StakingPoolFactory.sol",
|
"sourceName": "contracts/StakingPoolFactory.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -709,7 +709,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/RewardDistributor.sol": {
|
"/opt/aitbc/contracts/contracts/RewardDistributor.sol": {
|
||||||
"lastModificationDate": 1776798809550,
|
"lastModificationDate": 1778145446313,
|
||||||
"contentHash": "53b2bbac86b3e883647a8e0ac5443afa",
|
"contentHash": "53b2bbac86b3e883647a8e0ac5443afa",
|
||||||
"sourceName": "contracts/RewardDistributor.sol",
|
"sourceName": "contracts/RewardDistributor.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -753,7 +753,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/PerformanceAggregator.sol": {
|
"/opt/aitbc/contracts/contracts/PerformanceAggregator.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446313,
|
||||||
"contentHash": "aac6767f07379cb2fca471c04b780055",
|
"contentHash": "aac6767f07379cb2fca471c04b780055",
|
||||||
"sourceName": "contracts/PerformanceAggregator.sol",
|
"sourceName": "contracts/PerformanceAggregator.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -795,7 +795,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/DAOGovernanceEnhanced.sol": {
|
"/opt/aitbc/contracts/contracts/DAOGovernanceEnhanced.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446309,
|
||||||
"contentHash": "389b30f1a2bddc7bab05aa470322cc13",
|
"contentHash": "389b30f1a2bddc7bab05aa470322cc13",
|
||||||
"sourceName": "contracts/DAOGovernanceEnhanced.sol",
|
"sourceName": "contracts/DAOGovernanceEnhanced.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -838,7 +838,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/MemoryVerifier.sol": {
|
"/opt/aitbc/contracts/contracts/MemoryVerifier.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446313,
|
||||||
"contentHash": "0774eb50ca48ba109f10505731c47a71",
|
"contentHash": "0774eb50ca48ba109f10505731c47a71",
|
||||||
"sourceName": "contracts/MemoryVerifier.sol",
|
"sourceName": "contracts/MemoryVerifier.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -877,7 +877,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/AgentMemory.sol": {
|
"/opt/aitbc/contracts/contracts/AgentMemory.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446301,
|
||||||
"contentHash": "d65664faa2b98da3286309fbf9619a92",
|
"contentHash": "d65664faa2b98da3286309fbf9619a92",
|
||||||
"sourceName": "contracts/AgentMemory.sol",
|
"sourceName": "contracts/AgentMemory.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -917,7 +917,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/KnowledgeGraphMarket.sol": {
|
"/opt/aitbc/contracts/contracts/KnowledgeGraphMarket.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446313,
|
||||||
"contentHash": "ea02313df07f22808306946349dafcab",
|
"contentHash": "ea02313df07f22808306946349dafcab",
|
||||||
"sourceName": "contracts/KnowledgeGraphMarket.sol",
|
"sourceName": "contracts/KnowledgeGraphMarket.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1001,7 +1001,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/AITBCPaymentProcessor.sol": {
|
"/opt/aitbc/contracts/contracts/AITBCPaymentProcessor.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446293,
|
||||||
"contentHash": "5ec26ac0543a051dc1941c013ad73639",
|
"contentHash": "5ec26ac0543a051dc1941c013ad73639",
|
||||||
"sourceName": "contracts/AITBCPaymentProcessor.sol",
|
"sourceName": "contracts/AITBCPaymentProcessor.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1043,7 +1043,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/DisputeResolution.sol": {
|
"/opt/aitbc/contracts/contracts/DisputeResolution.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446309,
|
||||||
"contentHash": "f4f92c013eb32e8083a38d42037a1586",
|
"contentHash": "f4f92c013eb32e8083a38d42037a1586",
|
||||||
"sourceName": "contracts/DisputeResolution.sol",
|
"sourceName": "contracts/DisputeResolution.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1086,7 +1086,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/DynamicPricing.sol": {
|
"/opt/aitbc/contracts/contracts/DynamicPricing.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446309,
|
||||||
"contentHash": "369efa756a98c8775c28ad327f0214c9",
|
"contentHash": "369efa756a98c8775c28ad327f0214c9",
|
||||||
"sourceName": "contracts/DynamicPricing.sol",
|
"sourceName": "contracts/DynamicPricing.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1129,7 +1129,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/DAOGovernance.sol": {
|
"/opt/aitbc/contracts/contracts/DAOGovernance.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446309,
|
||||||
"contentHash": "eedc031861f30107b2eddd1aab3f22d0",
|
"contentHash": "eedc031861f30107b2eddd1aab3f22d0",
|
||||||
"sourceName": "contracts/DAOGovernance.sol",
|
"sourceName": "contracts/DAOGovernance.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1170,7 +1170,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/CrossChainReputation.sol": {
|
"/opt/aitbc/contracts/contracts/CrossChainReputation.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446305,
|
||||||
"contentHash": "66140705bb9ab2298187dac9d432683f",
|
"contentHash": "66140705bb9ab2298187dac9d432683f",
|
||||||
"sourceName": "contracts/CrossChainReputation.sol",
|
"sourceName": "contracts/CrossChainReputation.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1208,7 +1208,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/CrossChainBridge.sol": {
|
"/opt/aitbc/contracts/contracts/CrossChainBridge.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446305,
|
||||||
"contentHash": "4f2d2d2cfde1b1784b5bf00eb2a71228",
|
"contentHash": "4f2d2d2cfde1b1784b5bf00eb2a71228",
|
||||||
"sourceName": "contracts/CrossChainBridge.sol",
|
"sourceName": "contracts/CrossChainBridge.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1437,7 +1437,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/AgentPortfolioManager.sol": {
|
"/opt/aitbc/contracts/contracts/AgentPortfolioManager.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446301,
|
||||||
"contentHash": "81870b762005afada2741c1940e91bcb",
|
"contentHash": "81870b762005afada2741c1940e91bcb",
|
||||||
"sourceName": "contracts/AgentPortfolioManager.sol",
|
"sourceName": "contracts/AgentPortfolioManager.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1523,7 +1523,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/CrossChainAtomicSwap.sol": {
|
"/opt/aitbc/contracts/contracts/CrossChainAtomicSwap.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446305,
|
||||||
"contentHash": "a565b38a8b80295fc48923eebca31763",
|
"contentHash": "a565b38a8b80295fc48923eebca31763",
|
||||||
"sourceName": "contracts/CrossChainAtomicSwap.sol",
|
"sourceName": "contracts/CrossChainAtomicSwap.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1734,7 +1734,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/AgentWallet.sol": {
|
"/opt/aitbc/contracts/contracts/AgentWallet.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446305,
|
||||||
"contentHash": "95b1c5ed8ed5c2ea1228eaff07a71894",
|
"contentHash": "95b1c5ed8ed5c2ea1228eaff07a71894",
|
||||||
"sourceName": "contracts/AgentWallet.sol",
|
"sourceName": "contracts/AgentWallet.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1775,7 +1775,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/AgentServiceMarketplace.sol": {
|
"/opt/aitbc/contracts/contracts/AgentServiceMarketplace.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446301,
|
||||||
"contentHash": "17dabc7a7ddcedf8b2443ce8e28f8c66",
|
"contentHash": "17dabc7a7ddcedf8b2443ce8e28f8c66",
|
||||||
"sourceName": "contracts/AgentServiceMarketplace.sol",
|
"sourceName": "contracts/AgentServiceMarketplace.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1817,7 +1817,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/AgentMarketplaceV2.sol": {
|
"/opt/aitbc/contracts/contracts/AgentMarketplaceV2.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446301,
|
||||||
"contentHash": "0527d6127218f552ade59c56bc5673d0",
|
"contentHash": "0527d6127218f552ade59c56bc5673d0",
|
||||||
"sourceName": "contracts/AgentMarketplaceV2.sol",
|
"sourceName": "contracts/AgentMarketplaceV2.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -1859,7 +1859,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"/opt/aitbc/contracts/contracts/AgentCommunication.sol": {
|
"/opt/aitbc/contracts/contracts/AgentCommunication.sol": {
|
||||||
"lastModificationDate": 1776798809546,
|
"lastModificationDate": 1778145446301,
|
||||||
"contentHash": "2570253be1f560aae48e69e15bf67288",
|
"contentHash": "2570253be1f560aae48e69e15bf67288",
|
||||||
"sourceName": "contracts/AgentCommunication.sol",
|
"sourceName": "contracts/AgentCommunication.sol",
|
||||||
"solcConfig": {
|
"solcConfig": {
|
||||||
@@ -2006,6 +2006,640 @@
|
|||||||
"artifacts": [
|
"artifacts": [
|
||||||
"IERC1271"
|
"IERC1271"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/security/Pausable.sol": {
|
||||||
|
"lastModificationDate": 1779481488709,
|
||||||
|
"contentHash": "25c8108f36fdd472bc78d4c4af240c11",
|
||||||
|
"sourceName": "@openzeppelin/contracts/security/Pausable.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"../utils/Context.sol"
|
||||||
|
],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"Pausable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/access/Ownable.sol": {
|
||||||
|
"lastModificationDate": 1779481488709,
|
||||||
|
"contentHash": "5a20b2cad87ddb61c7a3a6af21289e28",
|
||||||
|
"sourceName": "@openzeppelin/contracts/access/Ownable.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"../utils/Context.sol"
|
||||||
|
],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"Ownable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/security/ReentrancyGuard.sol": {
|
||||||
|
"lastModificationDate": 1779481488713,
|
||||||
|
"contentHash": "1535f8c0c68463f8c1b5239f7584e71f",
|
||||||
|
"sourceName": "@openzeppelin/contracts/security/ReentrancyGuard.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"ReentrancyGuard"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": {
|
||||||
|
"lastModificationDate": 1779481488705,
|
||||||
|
"contentHash": "df36f7051335cd1e748b1b6463b7fdd3",
|
||||||
|
"sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"IERC20"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/utils/Context.sol": {
|
||||||
|
"lastModificationDate": 1779481488697,
|
||||||
|
"contentHash": "f07feb4a44b1a4872370da5aa70e8e46",
|
||||||
|
"sourceName": "@openzeppelin/contracts/utils/Context.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"Context"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": {
|
||||||
|
"lastModificationDate": 1779481488701,
|
||||||
|
"contentHash": "3ae5166c6827a9cf1a7a462d1632b464",
|
||||||
|
"sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"./IERC20.sol",
|
||||||
|
"./extensions/IERC20Metadata.sol",
|
||||||
|
"../../utils/Context.sol"
|
||||||
|
],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"ERC20"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
|
||||||
|
"lastModificationDate": 1779481488705,
|
||||||
|
"contentHash": "909ab67fc5c25033fe6cd364f8c056f9",
|
||||||
|
"sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"../IERC20.sol"
|
||||||
|
],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"IERC20Metadata"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": {
|
||||||
|
"lastModificationDate": 1779481488713,
|
||||||
|
"contentHash": "1b5d667d3740d866eca0352758e59827",
|
||||||
|
"sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"../IERC20.sol",
|
||||||
|
"../extensions/IERC20Permit.sol",
|
||||||
|
"../../../utils/Address.sol"
|
||||||
|
],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"SafeERC20"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol": {
|
||||||
|
"lastModificationDate": 1779481488709,
|
||||||
|
"contentHash": "525fcdad8d171312933f47baf01d1ed8",
|
||||||
|
"sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"IERC20Permit"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/utils/Address.sol": {
|
||||||
|
"lastModificationDate": 1779481488697,
|
||||||
|
"contentHash": "211ffd288c1588ba8c10eae668ca3c66",
|
||||||
|
"sourceName": "@openzeppelin/contracts/utils/Address.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.1"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"Address"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": {
|
||||||
|
"lastModificationDate": 1779481488701,
|
||||||
|
"contentHash": "d822a8a9468649cab463f29f5decf5cc",
|
||||||
|
"sourceName": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"../Strings.sol"
|
||||||
|
],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"ECDSA"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/utils/cryptography/MerkleProof.sol": {
|
||||||
|
"lastModificationDate": 1779481488709,
|
||||||
|
"contentHash": "1ccd3348ad628f1330ce36eb6a30618d",
|
||||||
|
"sourceName": "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"MerkleProof"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/utils/Strings.sol": {
|
||||||
|
"lastModificationDate": 1779481488713,
|
||||||
|
"contentHash": "48686fc32a22a3754b8e63321857dd2a",
|
||||||
|
"sourceName": "@openzeppelin/contracts/utils/Strings.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"./math/Math.sol",
|
||||||
|
"./math/SignedMath.sol"
|
||||||
|
],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"Strings"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/utils/math/Math.sol": {
|
||||||
|
"lastModificationDate": 1779481488709,
|
||||||
|
"contentHash": "fe63409d8a06818b926cf89e0ea88b1b",
|
||||||
|
"sourceName": "@openzeppelin/contracts/utils/math/Math.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"Math"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": {
|
||||||
|
"lastModificationDate": 1779481488713,
|
||||||
|
"contentHash": "9488ebd4daacfee8ad04811600d7d061",
|
||||||
|
"sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"SignedMath"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol": {
|
||||||
|
"lastModificationDate": 1779481488713,
|
||||||
|
"contentHash": "53d16b3bec482493405bdc74852eb2cd",
|
||||||
|
"sourceName": "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"./ECDSA.sol",
|
||||||
|
"../../interfaces/IERC1271.sol"
|
||||||
|
],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"SignatureChecker"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/opt/aitbc/contracts/node_modules/.pnpm/@openzeppelin+contracts@4.9.6/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol": {
|
||||||
|
"lastModificationDate": 1779481488705,
|
||||||
|
"contentHash": "8fe867b95c856b204f954a1910e28a1e",
|
||||||
|
"sourceName": "@openzeppelin/contracts/interfaces/IERC1271.sol",
|
||||||
|
"solcConfig": {
|
||||||
|
"version": "0.8.19",
|
||||||
|
"settings": {
|
||||||
|
"optimizer": {
|
||||||
|
"enabled": true,
|
||||||
|
"runs": 200
|
||||||
|
},
|
||||||
|
"viaIR": true,
|
||||||
|
"outputSelection": {
|
||||||
|
"*": {
|
||||||
|
"*": [
|
||||||
|
"abi",
|
||||||
|
"evm.bytecode",
|
||||||
|
"evm.deployedBytecode",
|
||||||
|
"evm.methodIdentifiers",
|
||||||
|
"metadata"
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
"ast"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [],
|
||||||
|
"versionPragmas": [
|
||||||
|
"^0.8.0"
|
||||||
|
],
|
||||||
|
"artifacts": [
|
||||||
|
"IERC1271"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
7442
contracts/package-lock.json
generated
7442
contracts/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -5,7 +5,7 @@ echo "=== AITBC Smart Contract Compilation ==="
|
|||||||
# Check if solc is installed
|
# Check if solc is installed
|
||||||
if ! command -v solc &> /dev/null; then
|
if ! command -v solc &> /dev/null; then
|
||||||
echo "Error: solc (Solidity compiler) not found"
|
echo "Error: solc (Solidity compiler) not found"
|
||||||
echo "Please install solc: npm install -g solc"
|
echo "Please install solc: pnpm add -g solc"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
# Deploy ZKReceiptVerifier to testnet
|
# Deploy ZKReceiptVerifier to testnet
|
||||||
#
|
#
|
||||||
# Prerequisites:
|
# Prerequisites:
|
||||||
# npm install -g hardhat @nomicfoundation/hardhat-toolbox
|
# pnpm install -g hardhat @nomicfoundation/hardhat-toolbox
|
||||||
# cd contracts && npm init -y && npm install hardhat
|
# cd contracts && pnpm install hardhat
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# ./scripts/deploy-testnet.sh [--network <network>]
|
# ./scripts/deploy-testnet.sh [--network <network>]
|
||||||
@@ -29,13 +29,13 @@ else
|
|||||||
echo "Generating Groth16Verifier.sol from circuit..."
|
echo "Generating Groth16Verifier.sol from circuit..."
|
||||||
ZK_DIR="$CONTRACTS_DIR/../apps/zk-circuits"
|
ZK_DIR="$CONTRACTS_DIR/../apps/zk-circuits"
|
||||||
if [[ -f "$ZK_DIR/circuit_final.zkey" ]]; then
|
if [[ -f "$ZK_DIR/circuit_final.zkey" ]]; then
|
||||||
npx snarkjs zkey export solidityverifier \
|
pnpm snarkjs zkey export solidityverifier \
|
||||||
"$ZK_DIR/circuit_final.zkey" \
|
"$ZK_DIR/circuit_final.zkey" \
|
||||||
"$CONTRACTS_DIR/Groth16Verifier.sol"
|
"$CONTRACTS_DIR/Groth16Verifier.sol"
|
||||||
echo "Generated Groth16Verifier.sol"
|
echo "Generated Groth16Verifier.sol"
|
||||||
else
|
else
|
||||||
echo "WARNING: circuit_final.zkey not found. Using stub verifier."
|
echo "WARNING: circuit_final.zkey not found. Using stub verifier."
|
||||||
echo "To generate: cd apps/zk-circuits && npx snarkjs groth16 setup ..."
|
echo "To generate: cd apps/zk-circuits && pnpm snarkjs groth16 setup ..."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -43,18 +43,18 @@ fi
|
|||||||
echo ""
|
echo ""
|
||||||
echo "--- Step 2: Compile Contracts ---"
|
echo "--- Step 2: Compile Contracts ---"
|
||||||
cd "$CONTRACTS_DIR"
|
cd "$CONTRACTS_DIR"
|
||||||
if command -v npx &>/dev/null && [[ -f "hardhat.config.js" ]]; then
|
if command -v pnpm &>/dev/null && [[ -f "hardhat.config.js" ]]; then
|
||||||
npx hardhat compile
|
pnpm hardhat compile
|
||||||
else
|
else
|
||||||
echo "Hardhat not configured. Compile manually:"
|
echo "Hardhat not configured. Compile manually:"
|
||||||
echo " cd contracts && npx hardhat compile"
|
echo " cd contracts && pnpm hardhat compile"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Step 3: Deploy
|
# Step 3: Deploy
|
||||||
echo ""
|
echo ""
|
||||||
echo "--- Step 3: Deploy to $NETWORK ---"
|
echo "--- Step 3: Deploy to $NETWORK ---"
|
||||||
if command -v npx &>/dev/null && [[ -f "hardhat.config.js" ]]; then
|
if command -v pnpm &>/dev/null && [[ -f "hardhat.config.js" ]]; then
|
||||||
npx hardhat run scripts/deploy.js --network "$NETWORK"
|
pnpm hardhat run scripts/deploy.js --network "$NETWORK"
|
||||||
else
|
else
|
||||||
echo "Deploy script template:"
|
echo "Deploy script template:"
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
#
|
#
|
||||||
# Prerequisites:
|
# Prerequisites:
|
||||||
# pip install slither-analyzer mythril
|
# pip install slither-analyzer mythril
|
||||||
# npm install -g solc
|
# pnpm add -g solc
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# ./scripts/security-analysis.sh [--slither-only | --mythril-only]
|
# ./scripts/security-analysis.sh [--slither-only | --mythril-only]
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ Configure the following secrets in your CI/CD system:
|
|||||||
### Local Setup
|
### Local Setup
|
||||||
```bash
|
```bash
|
||||||
cd /opt/aitbc/contracts
|
cd /opt/aitbc/contracts
|
||||||
npm install
|
pnpm install
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -101,13 +101,13 @@ export PRIVATE_KEY=<your-testnet-private-key>
|
|||||||
export TESTNET_RPC_URL=<testnet-rpc-url>
|
export TESTNET_RPC_URL=<testnet-rpc-url>
|
||||||
|
|
||||||
# Compile contracts
|
# Compile contracts
|
||||||
npx hardhat compile
|
pnpm hardhat compile
|
||||||
|
|
||||||
# Run tests
|
# Run tests
|
||||||
npx hardhat test
|
pnpm hardhat test
|
||||||
|
|
||||||
# Deploy contracts
|
# Deploy contracts
|
||||||
npx hardhat run scripts/deploy-testnet.js --network testnet
|
pnpm hardhat run scripts/deploy-testnet.js --network testnet
|
||||||
```
|
```
|
||||||
|
|
||||||
### Contract Addresses
|
### Contract Addresses
|
||||||
@@ -152,16 +152,16 @@ export PRIVATE_KEY=<your-mainnet-private-key>
|
|||||||
export MAINNET_RPC_URL=<mainnet-rpc-url>
|
export MAINNET_RPC_URL=<mainnet-rpc-url>
|
||||||
|
|
||||||
# Compile contracts
|
# Compile contracts
|
||||||
npx hardhat compile
|
pnpm hardhat compile
|
||||||
|
|
||||||
# Run security scan
|
# Run security scan
|
||||||
bash scripts/ci/security-scan.sh
|
bash scripts/ci/security-scan.sh
|
||||||
|
|
||||||
# Run contract tests
|
# Run contract tests
|
||||||
npx hardhat test
|
pnpm hardhat test
|
||||||
|
|
||||||
# Deploy contracts
|
# Deploy contracts
|
||||||
npx hardhat run scripts/deploy-mainnet.js --network mainnet
|
pnpm hardhat run scripts/deploy-mainnet.js --network mainnet
|
||||||
```
|
```
|
||||||
|
|
||||||
### Deployment Safety
|
### Deployment Safety
|
||||||
@@ -184,13 +184,13 @@ Automated verification is performed during deployment using:
|
|||||||
export ETHERSCAN_API_KEY=<your-etherscan-api-key>
|
export ETHERSCAN_API_KEY=<your-etherscan-api-key>
|
||||||
|
|
||||||
# Verify PaymentProcessor
|
# Verify PaymentProcessor
|
||||||
npx hardhat verify --network mainnet <PAYMENT_PROCESSOR_ADDRESS> --constructor-args scripts/deployment/args/payment-processor-args.js
|
pnpm hardhat verify --network mainnet <PAYMENT_PROCESSOR_ADDRESS> --constructor-args scripts/deployment/args/payment-processor-args.js
|
||||||
|
|
||||||
# Verify AgentMarketplace
|
# Verify AgentMarketplace
|
||||||
npx hardhat verify --network mainnet <AGENT_MARKETPLACE_ADDRESS> --constructor-args scripts/deployment/args/agent-marketplace-args.js
|
pnpm hardhat verify --network mainnet <AGENT_MARKETPLACE_ADDRESS> --constructor-args scripts/deployment/args/agent-marketplace-args.js
|
||||||
|
|
||||||
# Verify StakingContract
|
# Verify StakingContract
|
||||||
npx hardhat verify --network mainnet <STAKING_CONTRACT_ADDRESS> --constructor-args scripts/deployment/args/staking-contract-args.js
|
pnpm hardhat verify --network mainnet <STAKING_CONTRACT_ADDRESS> --constructor-args scripts/deployment/args/staking-contract-args.js
|
||||||
```
|
```
|
||||||
|
|
||||||
### Testnet Verification
|
### Testnet Verification
|
||||||
@@ -270,7 +270,7 @@ bash scripts/monitoring/verify-monitoring.sh <network>
|
|||||||
curl -X POST $RPC_URL -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
curl -X POST $RPC_URL -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
|
||||||
|
|
||||||
# Check account balance
|
# Check account balance
|
||||||
npx hardhat run scripts/check-balance.js --network <network>
|
pnpm hardhat run scripts/check-balance.js --network <network>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Verification Fails
|
### Verification Fails
|
||||||
@@ -287,7 +287,7 @@ npx hardhat run scripts/check-balance.js --network <network>
|
|||||||
curl https://api.etherscan.io/api?module=contract&action=getabiaddress&address=<CONTRACT_ADDRESS>&apikey=<API_KEY>
|
curl https://api.etherscan.io/api?module=contract&action=getabiaddress&address=<CONTRACT_ADDRESS>&apikey=<API_KEY>
|
||||||
|
|
||||||
# Re-verify with correct arguments
|
# Re-verify with correct arguments
|
||||||
npx hardhat verify --network <network> <ADDRESS> <CONSTRUCTOR_ARGS>
|
pnpm hardhat verify --network <network> <ADDRESS> <CONSTRUCTOR_ARGS>
|
||||||
```
|
```
|
||||||
|
|
||||||
### Monitoring Not Working
|
### Monitoring Not Working
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ touch dev/tests/test_new_feature.py
|
|||||||
touch dev/scripts/fix_bug.py
|
touch dev/scripts/fix_bug.py
|
||||||
|
|
||||||
# Right way to handle dependencies
|
# Right way to handle dependencies
|
||||||
npm install # Use in contracts/ directory for smart contracts development
|
pnpm install # Use in contracts/ directory for smart contracts development
|
||||||
source /opt/aitbc/venv/bin/activate # Use central Python virtual environment
|
source /opt/aitbc/venv/bin/activate # Use central Python virtual environment
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user