diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml new file mode 100644 index 0000000000..aedb2e2578 --- /dev/null +++ b/.github/workflows/claude.yml @@ -0,0 +1,58 @@ +name: Claude Code + +on: + issue_comment: + types: [created] + pull_request_review_comment: + types: [created] + issues: + types: [opened, assigned] + pull_request_review: + types: [submitted] + +jobs: + claude: + if: | + (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || + (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) || + (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) || + (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + issues: write + id-token: write + actions: read # Required for Claude to read CI results on PRs + steps: + - name: Checkout repository + uses: actions/checkout@v5 + with: + fetch-depth: 1 + + - name: Run Claude Code + id: claude + uses: anthropics/claude-code-action@v1 + with: + anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} + + # Optional: Customize the trigger phrase (default: @claude) + # trigger_phrase: "/claude" + + # Optional: Trigger when specific user is assigned to an issue + # assignee_trigger: "claude-bot" + + # Optional: Configure Claude's behavior with CLI arguments + # claude_args: | + # --model claude-opus-4-1-20250805 + # --max-turns 10 + # --allowedTools "Bash(npm install),Bash(npm run build),Bash(npm run test:*),Bash(npm run lint:*)" + # --system-prompt "Follow our coding standards. Ensure all new code has tests. Use TypeScript for new files." + + # Optional: Advanced settings configuration + # settings: | + # { + # "env": { + # "NODE_ENV": "test" + # } + # } diff --git a/courses/advanced-foundry/3-develop-defi-protocol/11-defi-deploy-script/+page.md b/courses/advanced-foundry/3-develop-defi-protocol/11-defi-deploy-script/+page.md index 832bb29728..07d3c63538 100644 --- a/courses/advanced-foundry/3-develop-defi-protocol/11-defi-deploy-script/+page.md +++ b/courses/advanced-foundry/3-develop-defi-protocol/11-defi-deploy-script/+page.md @@ -10,7 +10,7 @@ _Follow along the course with this video._ We've done a lot, so far and it's getting really complex. Now's a great time to perform a sanity check and write some tests. -_I have no idea if what I'm doing makes any sort of sense. I want to make sure I write some tests here._ +_I have no ideart if what I'm doing makes any sort of sense. I want to make sure I write some tests here._ Testing is crucial to ensure that our code is functioning as intended. Start by creating a new folder, `test/unit`. The tests we write are going to be integration tests, so lets prepare a deploy script. Create the file `script/DeployDSC.s.sol` as well. We should be well versed in setting up a deploy script at this point! diff --git a/courses/chainlink-fundamentals/2-smart-contract-and-solidity-fundamentals/4-testnet-funds/+page.md b/courses/chainlink-fundamentals/2-smart-contract-and-solidity-fundamentals/4-testnet-funds/+page.md index 31f562020c..de137d8ad7 100644 --- a/courses/chainlink-fundamentals/2-smart-contract-and-solidity-fundamentals/4-testnet-funds/+page.md +++ b/courses/chainlink-fundamentals/2-smart-contract-and-solidity-fundamentals/4-testnet-funds/+page.md @@ -42,7 +42,7 @@ Click the **Link** button at the top right, select the network(s) you want to ge LINK was easy to add to MetaMask since Chainlink included that cheeky **Add to wallet** button. But how do we add other tokens, such as USDC to MetaMask? -- Find the token address. For USDC, for example, we can head to the [Circle documentation](https://developers.circle.com/stablecoins/usdc-on-test-networks) to find the address of the USDC contract on different chains. Copy the address for the USDC token on the chain you are working on. +- Find the token address. For USDC, for example, we can head to the [Circle documentation](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet) to find the address of the USDC contract on different chains. Copy the address for the USDC token on the chain you are working on. - Open MetaMask and check you are on the same chain as the token address you just copied by clicking on the network button on the top left corner in MetMask diff --git a/courses/chainlink-fundamentals/5-chainlink-ccip-tokens/4-ccip-transporter/+page.md b/courses/chainlink-fundamentals/5-chainlink-ccip-tokens/4-ccip-transporter/+page.md index beff03394f..2bac89e1e5 100644 --- a/courses/chainlink-fundamentals/5-chainlink-ccip-tokens/4-ccip-transporter/+page.md +++ b/courses/chainlink-fundamentals/5-chainlink-ccip-tokens/4-ccip-transporter/+page.md @@ -16,7 +16,7 @@ In this lesson, we will use Transported to bridge USDC from Sepolia to Base Sepo - You have LINK funds on Sepolia. - You've added the LINK token to MetaMask on Sepolia and Base Sepolia. -- You've added the USDC token to MetaMask on Sepolia and Base Sepolia. A list of the addresses on different chains can be found in the [Circle documentation](https://developers.circle.com/stablecoins/usdc-on-test-networks). +- You've added the USDC token to MetaMask on Sepolia and Base Sepolia. A list of the addresses on different chains can be found in the [Circle documentation](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet). - You have test USDC on Sepolia., Use the [Circle USDC faucet](https://faucet.circle.com/) to do this. Visit Section 2 if you need a reminder of how to do this. diff --git a/courses/chainlink-fundamentals/5-chainlink-ccip-tokens/5-transferring-tokens-cross-chain-with-ccip-part-1/+page.md b/courses/chainlink-fundamentals/5-chainlink-ccip-tokens/5-transferring-tokens-cross-chain-with-ccip-part-1/+page.md index 5db8f56413..896e8955ee 100644 --- a/courses/chainlink-fundamentals/5-chainlink-ccip-tokens/5-transferring-tokens-cross-chain-with-ccip-part-1/+page.md +++ b/courses/chainlink-fundamentals/5-chainlink-ccip-tokens/5-transferring-tokens-cross-chain-with-ccip-part-1/+page.md @@ -100,7 +100,7 @@ We define the following constant variables (that have been hard-coded for clarit IRouterClient private constant CCIP_ROUTER = IRouterClient(0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59); // https://docs.chain.link/resources/link-token-contracts#ethereum-testnet-sepolia IERC20 private constant LINK_TOKEN = IERC20(0x779877A7B0D9E8603169DdbD7836e478b4624789); -// https://developers.circle.com/stablecoins/docs/usdc-on-test-networks +// https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet IERC20 private constant USDC_TOKEN = IERC20(0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238); // https://docs.chain.link/ccip/directory/testnet/chain/ethereum-testnet-sepolia-base-1 uint64 private constant DESTINATION_CHAIN_SELECTOR = 10344971235874465080;