@@ -101,66 +101,31 @@ async fn transfer_handler(
101101 return Ok(());
102102 }
103103
104- if bulk_data.len() > 100 {
105- let result = context
106- .database
107- .bulk_insert_via_copy(
108- "rust_rocket_pool_eth.transfer",
109- &[
110- "contract_address".to_string(),
111- "from".to_string(),
112- "to".to_string(),
113- "value".to_string(),
114- "tx_hash".to_string(),
115- "block_number".to_string(),
116- "block_hash".to_string(),
117- "network".to_string(),
118- ],
119- &bulk_data
120- .first()
121- .ok_or("No first element in bulk data, impossible")?
122- .iter()
123- .map(|param| param.to_type())
124- .collect::<Vec<PgType>>(),
125- &bulk_data,
126- )
127- .await;
128-
129- if let Err(e) = result {
130- rindexer_error!(
131- "RocketPoolETHEventType::Transfer inserting bulk data: {:?}",
132- e
133- );
134-
135- return Err(e.to_string());
136- }
137- } else {
138- let result = context
139- .database
140- .bulk_insert(
141- "rust_rocket_pool_eth.transfer",
142- &[
143- "contract_address".to_string(),
144- "from".to_string(),
145- "to".to_string(),
146- "value".to_string(),
147- "tx_hash".to_string(),
148- "block_number".to_string(),
149- "block_hash".to_string(),
150- "network".to_string(),
151- ],
152- &bulk_data,
153- )
154- .await;
155-
156- if let Err(e) = result {
157- rindexer_error!(
158- "RocketPoolETHEventType::Transfer inserting bulk data: {:?}",
159- e
160- );
161-
162- return Err(e.to_string());
163- }
104+ let result = context
105+ .database
106+ .insert_bulk(
107+ "rust_rocket_pool_eth.transfer",
108+ &[
109+ "contract_address".to_string(),
110+ "from".to_string(),
111+ "to".to_string(),
112+ "value".to_string(),
113+ "tx_hash".to_string(),
114+ "block_number".to_string(),
115+ "block_hash".to_string(),
116+ "network".to_string(),
117+ ],
118+ &bulk_data,
119+ )
120+ .await;
121+
122+ if let Err(e) = result {
123+ rindexer_error!(
124+ "RocketPoolETHEventType::Transfer inserting bulk data: {:?}",
125+ e
126+ );
127+
128+ return Err(e.to_string());
164129 }
165130
166131 rindexer_info!(
@@ -822,7 +787,7 @@ You can query data from the database and write data to the database, here are th
822787- ` context.database.query` - This is for querying data from the database.
823788- ` context.database.query_one` - This is for querying a single row from the database.
824789- ` context.database.query_one_or_none` - This is for querying a single row from the database or returning None if no rows are found.
825- - ` context.database.batch_insert ` - This is for inserting multiple rows into the database.
790+ - ` context.database.insert_bulk ` - This is for inserting multiple rows into the database efficiently .
826791- ` context.database.copy_in` - This is for inserting multiple rows into the database using the COPY command.
827792
828793# ## EthereumSqlTypeWrapper
0 commit comments