Skip to content

Commit 92f0f6b

Browse files
Merge pull request #31 from OpenZeppelin/fix/window-blank-instances
fix: removed instances of window=_blank
2 parents 5b4b04e + cfc15f8 commit 92f0f6b

32 files changed

+214
-214
lines changed

content/defender/dac.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ There are a few ways you can set up the `serverless.yml` configuration:
3434

3535
* Create it from scratch;
3636
* Use Defender’s 2.0 Serverless export capability;
37-
* Leverage the example [template, window=_blank](https://github.com/OpenZeppelin/defender-as-code/blob/main/template/serverless.yml) provided in the `defender-as-code` repository.
37+
* Leverage the example [template](https://github.com/OpenZeppelin/defender-as-code/blob/main/template/serverless.yml) provided in the `defender-as-code` repository.
3838

3939
If you already have resources such as contracts, notifications, relayers, actions, etc. in Defender, you can export a `serverless.yml` configuration file containing these resources from the manage → advanced page.
4040

content/defender/faq.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,28 @@ OpenZeppelin Defender is the evolution of Defender, with an improved user experi
88

99
New sign-ups were disabled on June 30, 2025. Until the final shutdown on July 1, 2026, Defender will remain fully operational while we focus on the open source versions of tools like Relayers and Monitor. Detailed migration guides are coming soon to help you transition seamlessly to open source.
1010

11-
[Read more, window=_blank](https://blog.openzeppelin.com/doubling-down-on-open-source-and-phasing-out-defender)
11+
[Read more](https://blog.openzeppelin.com/doubling-down-on-open-source-and-phasing-out-defender)
1212

1313
## Once I migrate to Defender, can I continue using Defender legacy?
1414

1515
No, once you migrate to Defender, you will no longer have access to Defender 1.0 UI and API.
1616

1717
## Are there any breaking changes when migrating?
1818

19-
Yes, there are multiple changes to the API endpoints that will require you to update your integrations. You can find the API docs [here, window=_blank](https://www.api-docs.defender.openzeppelin.com/#defender-sdk).
19+
Yes, there are multiple changes to the API endpoints that will require you to update your integrations. You can find the API docs [here](https://www.api-docs.defender.openzeppelin.com/#defender-sdk).
2020

2121
## What are the pricing options for Defender?
2222

23-
You can find the pricing for Defender [here, window=_blank](https://www.openzeppelin.com/pricing).
23+
You can find the pricing for Defender [here](https://www.openzeppelin.com/pricing).
2424

2525
## Does Defender offer support?
2626

2727
We offer a Service Level and Support Agreement (SLA) for paid subscriptions. Learn more [here](index#sla).
2828

2929
## How can I get an upgrade my tenant account?
3030

31-
You can use the billing page to upgrade your tenant account to a higher tier [here, window=_blank](https://defender.openzeppelin.com/v2/#/billing/).
31+
You can use the billing page to upgrade your tenant account to a higher tier [here](https://defender.openzeppelin.com/v2/#/billing/).
3232

3333
## Where can I see my tier quota usage?
3434

35-
You can see your tier quota usage in the billing page [here, window=_blank](https://defender.openzeppelin.com/v2/#/billing/usage).
35+
You can see your tier quota usage in the billing page [here](https://defender.openzeppelin.com/v2/#/billing/usage).

content/defender/guide/factory-monitor.mdx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,24 @@ The factory-clone pattern can be advantageous for minimizing gas costs. However,
77
This guide shows how to use Defender to monitor a factory contract as well as the clone contracts created by it. Monitor automation is achieved through the following structure of Defender modules:
88

99
* A Monitor watches for successful event emitted by the factory contract that creates a clone. If detected, it triggers an [Action](module/actions) and [passes along information](module/actions#monitor_invocations) about the transaction.
10-
* The Action makes use of the [`defender-sdk`, window=_blank](https://www.npmjs.com/package/@openzeppelin/defender-sdk) to add the address of the newly created contract to the [address book](module/address-book) for easier monitoring.
11-
* Aditionally, the Action uses the [`defender-sdk`, window=_blank](https://www.npmjs.com/package/@openzeppelin/defender-sdk) to add the clone address to the list of addresses watched by a Monitor.
10+
* The Action makes use of the [`defender-sdk`](https://www.npmjs.com/package/@openzeppelin/defender-sdk) to add the address of the newly created contract to the [address book](module/address-book) for easier monitoring.
11+
* Aditionally, the Action uses the [`defender-sdk`](https://www.npmjs.com/package/@openzeppelin/defender-sdk) to add the clone address to the list of addresses watched by a Monitor.
1212

13-
In this case, the contract ABI can be pre-supplied since clone contracts will have identical ABIs. Alternatively, you may be able to dynamically retrieve the ABI from a verified contract at a given address using [Etherscan’s API, window=_blank](https://docs.etherscan.io/api-endpoints/contracts).
13+
In this case, the contract ABI can be pre-supplied since clone contracts will have identical ABIs. Alternatively, you may be able to dynamically retrieve the ABI from a verified contract at a given address using [Etherscan’s API](https://docs.etherscan.io/api-endpoints/contracts).
1414

1515
## Generate API Key
1616

17-
To programmatically add a contract to the address book, the [`sdk`, window=_blank](https://www.npmjs.com/package/@openzeppelin/defender-sdk) requires credentials in the form of an API key and secret. Create and copy the credentials in the [API keys page, window=_blank](https://defender.openzeppelin.com/v2/#/settings/api-keys/new).
17+
To programmatically add a contract to the address book, the [`sdk`](https://www.npmjs.com/package/@openzeppelin/defender-sdk) requires credentials in the form of an API key and secret. Create and copy the credentials in the [API keys page](https://defender.openzeppelin.com/v2/#/settings/api-keys/new).
1818

1919
![Create API credentials](/defender/guide-factory-api.png)
2020

21-
Now, navigate to the [Secrets, window=_blank](https://defender.openzeppelin.com/v2/#/settings/secrets) page in Defender and create a new secret with the name `API_KEY` and paste in the API key. Create another secret with the name `API_SECRET` and paste in the API secret. These secrets will be used by the Action securely.
21+
Now, navigate to the [Secrets](https://defender.openzeppelin.com/v2/#/settings/secrets) page in Defender and create a new secret with the name `API_KEY` and paste in the API key. Create another secret with the name `API_SECRET` and paste in the API secret. These secrets will be used by the Action securely.
2222

2323
![Save API credentials](/defender/guide-factory-secrets.png)
2424

2525
## Create the Action
2626

27-
Navigate to the [Action creation page, window=_blank](https://defender.openzeppelin.com/v2/#/actions/automatic/new?), enter a name, and select `Webhook` as trigger. Then, paste the following Action code and save it:
27+
Navigate to the [Action creation page](https://defender.openzeppelin.com/v2/#/actions/automatic/new?), enter a name, and select `Webhook` as trigger. Then, paste the following Action code and save it:
2828

2929
```jsx
3030
const Defender = require('@openzeppelin/defender-sdk');
@@ -113,7 +113,7 @@ Manually triggering this Action will be raise an error, since the Action relies
113113
114114
## Create the Monitor
115115
116-
This Monitor will watch for an event emitted by the factory contract signaling that a new clone has been created. Navigate to the [Monitor creation page, window=_blank](https://defender.openzeppelin.com/v2/#/monitor/new/custom), choose a name, risk category, and select the Factory contract (add the factory if it’s not already added).
116+
This Monitor will watch for an event emitted by the factory contract signaling that a new clone has been created. Navigate to the [Monitor creation page](https://defender.openzeppelin.com/v2/#/monitor/new/custom), choose a name, risk category, and select the Factory contract (add the factory if it’s not already added).
117117
118118
![Monitor General Information](/defender/guide-factory-monitor-general-information.png)
119119
@@ -129,7 +129,7 @@ As with any action, the triggering of this Monitor will be recorded in the [Logs
129129
130130
## Test run
131131
132-
To test the set up, navigate to [Transaction Proposals, window=_blank](https://defender.openzeppelin.com/v2/#/transaction-proposals/new?) to manually create a clone through the factory. Select the factory contract, and call the function that creates a clone with any parameters needed.
132+
To test the set up, navigate to [Transaction Proposals](https://defender.openzeppelin.com/v2/#/transaction-proposals/new?) to manually create a clone through the factory. Select the factory contract, and call the function that creates a clone with any parameters needed.
133133
134134
![Transaction Proposal to create clone](/defender/guide-factory-create-clone.png)
135135
@@ -139,7 +139,7 @@ Then, execute this this transaction with your preferred approval process, like a
139139
140140
## Create Monitor for clones
141141
142-
Now that you have a clone contract to serve as a template for all future clone contracts, it’s time to create a Monitor for them. Navigate to the [Monitor creation page, window=_blank](https://defender.openzeppelin.com/v2/#/monitor/new/custom), choose a name, risk category, and select the clone contract.
142+
Now that you have a clone contract to serve as a template for all future clone contracts, it’s time to create a Monitor for them. Navigate to the [Monitor creation page](https://defender.openzeppelin.com/v2/#/monitor/new/custom), choose a name, risk category, and select the clone contract.
143143
144144
Aditionally, feel free to add any other filters for transactions, events, and functions, or notifications. Save the Monitor and observe the logs/notifications to verify that the Monitor is working as expected.
145145

content/defender/guide/forked-network.mdx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ Defender empowers you to harness your customized network forks for deploying and
1010

1111
## 1. Configure your forked network
1212

13-
You will setup a forked network on [Phalcon, window=_blank](https://phalcon.xyz) and add this network to Defender. To configure a forked network, follow these steps:
13+
You will setup a forked network on [Phalcon](https://phalcon.xyz) and add this network to Defender. To configure a forked network, follow these steps:
1414

15-
1. Register an account on [Phalcon, window=_blank](https://phalcon.xyz) and create a new fork using Ethereum mainnet as the source network.
15+
1. Register an account on [Phalcon](https://phalcon.xyz) and create a new fork using Ethereum mainnet as the source network.
1616
2. Ensure anti-replay protection is activated to use a distinct chain ID for your fork, preventing conflicts with public chain IDs.
1717

1818
![Phalcon create a fork](/defender/tutorial-forked-network-phalcon-create.png)
1919
3. Copy the RPC URL and Explorer URL (this can be found under 'Scan') of your forked network. You will need it to add the network to Defender.
2020

2121
![Phalcon dashboard](/defender/tutorial-forked-networks-phalcon-dashboard.png)
22-
4. Open [Defender Forked Networks, window=_blank](https://defender.openzeppelin.com/v2/#/settings/networks/forks) in a web browser.
22+
4. Open [Defender Forked Networks](https://defender.openzeppelin.com/v2/#/settings/networks/forks) in a web browser.
2323
5. Click on **Add Forked Network**.
2424

2525
![Forked Networks landing page](/defender/tutorial-forked-networks-intro.png)
@@ -29,14 +29,14 @@ You will setup a forked network on [Phalcon, window=_blank](https://phalcon.xyz)
2929
![Forked Networks added network](/defender/tutorial-forked-networks-create.png)
3030

3131
<Callout>
32-
You may use any provider to fork a network, such as [Conduit, window=_blank](https://conduit.xyz). However, we recommend using Phalcon as it is free and easy to use.
32+
You may use any provider to fork a network, such as [Conduit](https://conduit.xyz). However, we recommend using Phalcon as it is free and easy to use.
3333
</Callout>
3434

3535
## 2. Configure the deploy environment
3636

3737
You will setup a deploy environment for the forked network you just added to Defender. To configure a deploy environment, follow these steps:
3838

39-
1. Open [Defender Deploy, window=_blank](https://defender.openzeppelin.com/v2/#/deploy) in a web browser.
39+
1. Open [Defender Deploy](https://defender.openzeppelin.com/v2/#/deploy) in a web browser.
4040
2. Click on **Setup** for your production environment (or setup a test environment if your network is forked from a testnet).
4141

4242
![Deploy landing page](/defender/tutorial-forked-networks-deploy-intro.png)
@@ -63,7 +63,7 @@ You should fund the relayer account with enough ETH to cover the gas costs of yo
6363

6464
You will deploy a smart contract on the forked network you just added to Defender. To deploy a smart contract, follow these steps:
6565

66-
1. Setup a JavaScript project and install the [defender-sdk-deploy-client, window=_blank](https://www.npmjs.com/package/@openzeppelin/defender-sdk-deploy-client) NPM package. Alternatively, you can use the [defender-sdk delpoy example script, window=_blank](https://github.com/OpenZeppelin/defender-sdk/blob/main/examples/deploy-contract/index.js) provided in the OpenZeppelin Defender SDK repository.
66+
1. Setup a JavaScript project and install the [defender-sdk-deploy-client](https://www.npmjs.com/package/@openzeppelin/defender-sdk-deploy-client) NPM package. Alternatively, you can use the [defender-sdk delpoy example script](https://github.com/OpenZeppelin/defender-sdk/blob/main/examples/deploy-contract/index.js) provided in the OpenZeppelin Defender SDK repository.
6767
2. The deployment code will look something like this:
6868

6969
```js
@@ -85,7 +85,7 @@ const deploymentStatus = await client.deploy.getDeployedContract(deployment.depl
8585
console.log(deploymentStatus);
8686
```
8787
. Run the script to deploy the contract. **Note** that providing a `salt` will deploy the contract using `CREATE2`. Otherwise, the contract will be deployed using the `CREATE` opcode. Visit the documentation for more information on the [caveats of deployment](https://docs.openzeppelin.com/defender/tutorial/deploy#deploy-caveat).
88-
. Once deployed, you can track the deployment status on the [Defender Deploy dashboard, window=_blank](https://defender.openzeppelin.com/v2/#/deploy/environment/production).
88+
. Once deployed, you can track the deployment status on the [Defender Deploy dashboard](https://defender.openzeppelin.com/v2/#/deploy/environment/production).
8989

9090
## Next steps
9191

@@ -100,5 +100,5 @@ After deploying a contract, we recommend creating a Monitor and setting up Actio
100100
* [Deploy Documentation](:module/deploy)
101101
* [Actions Documentation](:module/actions)
102102
* [Monitor Documentation](:module/monitor)
103-
* [Phalcon, window=_blank](https://phalcon.xyz)
104-
* [Conduit, window=_blank](https://conduit.xyz)
103+
* [Phalcon](https://phalcon.xyz)
104+
* [Conduit](https://conduit.xyz)

0 commit comments

Comments
 (0)