diff --git a/inc/class-wp-rainbow-login-functionality.php b/inc/class-wp-rainbow-login-functionality.php index 44248f9..508e1d3 100644 --- a/inc/class-wp-rainbow-login-functionality.php +++ b/inc/class-wp-rainbow-login-functionality.php @@ -308,7 +308,7 @@ public function login_callback( WP_REST_Request $request ): WP_REST_Response { // @TODO Figure out if ABI should be an option (or formatted differently). $example_abi = '[{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]'; - $contract = new Contract( 'https://' . map_filtered_network_to_infura_endpoint( $filtered_infura_network ) . '.infura.io/v3/' . $filtered_infura_id, $example_abi ); + $contract = new Contract( 'https://' . wp_rainbow_map_filtered_network_to_infura_endpoint( $filtered_infura_network ) . '.infura.io/v3/' . $filtered_infura_id, $example_abi ); $contract->at( $wp_rainbow_options['wp_rainbow_field_required_token'] )->call( 'balanceOf', $address, diff --git a/inc/class-wp-rainbow-settings.php b/inc/class-wp-rainbow-settings.php index 410fafc..54da552 100644 --- a/inc/class-wp-rainbow-settings.php +++ b/inc/class-wp-rainbow-settings.php @@ -71,7 +71,7 @@ public function action_rest_api_init() { return current_user_can( 'manage_options' ); }, 'args' => [ - 'wp_rainbow_field_cool_mode' => [ + 'wp_rainbow_field_cool_mode' => [ 'required' => true, 'type' => 'string', 'description' => 'Whether RainbowKit Cool Mode is enabled', @@ -80,7 +80,7 @@ public function action_rest_api_init() { 'off', ], ], - 'wp_rainbow_field_rainbowkit_theme' => [ + 'wp_rainbow_field_rainbowkit_theme' => [ 'required' => true, 'type' => 'string', 'description' => 'What base theme is used by RainbowKit', @@ -90,7 +90,7 @@ public function action_rest_api_init() { 'midnightTheme', ], ], - 'wp_rainbow_field_compact_modal' => [ + 'wp_rainbow_field_compact_modal' => [ 'required' => true, 'type' => 'string', 'description' => 'Whether RainbowKit should use the compact modal', @@ -126,7 +126,7 @@ public function action_rest_api_init() { 'off', ], ], - 'wp_rainbow_field_set_user_roles' => [ + 'wp_rainbow_field_set_user_roles' => [ 'required' => true, 'type' => 'string', 'description' => 'Whether user roles should be set on account creation', @@ -144,17 +144,17 @@ public function action_rest_api_init() { 'off', ], ], - 'wp_rainbow_field_default_user_role' => [ + 'wp_rainbow_field_default_user_role' => [ 'required' => false, 'type' => 'string', 'description' => 'Default RainbowKit Login user role', ], - 'wp_rainbow_field_infura_id' => [ + 'wp_rainbow_field_infura_id' => [ 'required' => false, 'type' => 'string', 'description' => 'Infura ID field', ], - 'wp_rainbow_field_provider' => [ + 'wp_rainbow_field_provider' => [ 'required' => true, 'type' => 'string', 'description' => 'RPC provider to use for RainbowKit login', @@ -163,7 +163,7 @@ public function action_rest_api_init() { 'other', ], ], - 'wp_rainbow_field_infura_network' => [ + 'wp_rainbow_field_infura_network' => [ 'required' => false, 'type' => 'string', 'description' => 'Infura network', @@ -185,12 +185,12 @@ public function action_rest_api_init() { 'zoraSepolia', ], ], - 'wp_rainbow_field_rpc_url' => [ + 'wp_rainbow_field_rpc_url' => [ 'required' => false, 'type' => 'string', 'description' => 'RPC URL', ], - 'wp_rainbow_field_rpc_url_mainnet' => [ + 'wp_rainbow_field_rpc_url_mainnet' => [ 'required' => false, 'type' => 'string', 'description' => 'RPC URL', @@ -200,12 +200,12 @@ public function action_rest_api_init() { 'type' => 'string', 'description' => 'WalletConnect Project ID', ], - 'wp_rainbow_field_redirect_url' => [ + 'wp_rainbow_field_redirect_url' => [ 'required' => true, 'type' => 'string', 'description' => 'Default redirect URL', ], - 'wp_rainbow_field_required_token' => [ + 'wp_rainbow_field_required_token' => [ 'required' => true, 'type' => 'string', 'description' => 'Required token contract', @@ -225,7 +225,7 @@ public function action_rest_api_init() { 'type' => 'string', 'description' => 'Role to ID mapping', ], - 'wp_rainbow_redirect_url_field' => [ + 'wp_rainbow_redirect_url_field' => [ 'required' => false, 'type' => 'string', 'description' => 'ERC-1155 redirect URL', diff --git a/inc/class-wp-rainbow.php b/inc/class-wp-rainbow.php index 9395b98..b44a3d5 100644 --- a/inc/class-wp-rainbow.php +++ b/inc/class-wp-rainbow.php @@ -82,21 +82,27 @@ public function get_redirect_url_filtered() { * @return mixed|void Filtered RPC URL. */ public function get_rpc_url() { - $options = get_option( 'wp_rainbow_options', [ 'wp_rainbow_field_provider' => '', 'wp_rainbow_field_rpc_url' => '' ] ); + $options = get_option( + 'wp_rainbow_options', + [ + 'wp_rainbow_field_provider' => '', + 'wp_rainbow_field_rpc_url' => '', + ] + ); $rpc_url = ''; if ( ! empty( $options['wp_rainbow_field_provider'] ) && - $options['wp_rainbow_field_provider'] === 'other' && + 'other' === $options['wp_rainbow_field_provider'] && ! empty( $options['wp_rainbow_field_rpc_url'] ) ) { $rpc_url = $options['wp_rainbow_field_rpc_url']; } elseif ( empty( $options['wp_rainbow_field_provider'] ) || - $options['wp_rainbow_field_provider'] === 'infura' + 'infura' === $options['wp_rainbow_field_provider'] ) { $infura_network = $this->get_infura_network_filtered(); - $infura_id = $this->get_infura_id_filtered(); - $rpc_url = 'https://' . map_filtered_network_to_infura_endpoint( $infura_network ) . '.infura.io/v3/' . $infura_id; + $infura_id = $this->get_infura_id_filtered(); + $rpc_url = 'https://' . wp_rainbow_map_filtered_network_to_infura_endpoint( $infura_network ) . '.infura.io/v3/' . $infura_id; } /** @@ -113,19 +119,25 @@ public function get_rpc_url() { * @return mixed|void Filtered RPC URL for mainnet. */ public function get_rpc_url_mainnet() { - $options = get_option( 'wp_rainbow_options', [ 'wp_rainbow_field_provider' => '', 'wp_rainbow_field_rpc_url_mainnet' => '' ] ); + $options = get_option( + 'wp_rainbow_options', + [ + 'wp_rainbow_field_provider' => '', + 'wp_rainbow_field_rpc_url_mainnet' => '', + ] + ); $rpc_url_mainnet = ''; if ( ! empty( $options['wp_rainbow_field_provider'] ) && - $options['wp_rainbow_field_provider'] === 'other' && + 'other' === $options['wp_rainbow_field_provider'] && ! empty( $options['wp_rainbow_field_rpc_url_mainnet'] ) ) { $rpc_url_mainnet = $options['wp_rainbow_field_rpc_url_mainnet']; } elseif ( empty( $options['wp_rainbow_field_provider'] ) || - $options['wp_rainbow_field_provider'] === 'infura' + 'infura' === $options['wp_rainbow_field_provider'] ) { - $infura_id = $this->get_infura_id_filtered(); + $infura_id = $this->get_infura_id_filtered(); $rpc_url_mainnet = 'https://mainnet.infura.io/v3/' . $infura_id; } @@ -143,7 +155,7 @@ public function get_rpc_url_mainnet() { * @return mixed|void Filtered Infura ID. */ public function get_infura_id_filtered() { - $options = get_option( 'wp_rainbow_options', [ 'wp_rainbow_field_infura_id' => '' ] ); + $options = get_option( 'wp_rainbow_options', [ 'wp_rainbow_field_infura_id' => '' ] ); $infura_id = $options['wp_rainbow_field_infura_id'] ?? ''; /** * Filter the Infura ID used for WP Rainbow integration. diff --git a/inc/functions.php b/inc/functions.php index f35b2c6..87faeae 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -1,4 +1,10 @@ 'arbitrum-mainnet', - 'arbitrumGoerli' => 'arbitrum-goerli', - 'arbitrumSepolia' => 'arbitrum-sepolia', - 'optimism' => 'optimism-mainnet', - 'optimismGoerli' => 'optimism-goerli', - 'optimismSepolia' => 'optimism-sepolia', - 'polygon' => 'polygon-mainnet', - 'polygonMumbai' => 'polygon-mumbai', - ]; - if ( ! empty( $overrides[ $filtered_network ] ) ) { - return $overrides[ $filtered_network ]; - } +function wp_rainbow_map_filtered_network_to_infura_endpoint( string $filtered_network ): string { + $overrides = [ + 'arbitrum' => 'arbitrum-mainnet', + 'arbitrumGoerli' => 'arbitrum-goerli', + 'arbitrumSepolia' => 'arbitrum-sepolia', + 'optimism' => 'optimism-mainnet', + 'optimismGoerli' => 'optimism-goerli', + 'optimismSepolia' => 'optimism-sepolia', + 'polygon' => 'polygon-mainnet', + 'polygonMumbai' => 'polygon-mumbai', + ]; + if ( ! empty( $overrides[ $filtered_network ] ) ) { + return $overrides[ $filtered_network ]; + } - return $filtered_network; + return $filtered_network; }