@@ -1079,49 +1079,52 @@ private static void WriteToPsql(SmartContractEvent contractEvent)
10791079 {
10801080 Console . WriteLine ( String . Format ( "Blockheight={0}" , contractEvent . blockNumber ) ) ;
10811081
1082- WriteToEventTable ( contractEvent ) ;
1082+ string connString = Environment . GetEnvironmentVariable ( "DB_CONNECTION_STRING" ) ;
10831083
1084- if ( contractEvent . eventType == "created" )
1084+ using ( var conn = new NpgsqlConnection ( connString ) )
10851085 {
1086- WriteToOfferTable ( contractEvent ) ;
1087- }
1086+ conn . Open ( ) ;
10881087
1089- if ( contractEvent . eventType == "filled" )
1090- {
1091- WriteToTradeTable ( contractEvent ) ;
1088+ WriteToEventTable ( contractEvent , conn ) ;
1089+
1090+ if ( contractEvent . eventType == "created" )
1091+ {
1092+ WriteToOfferTable ( contractEvent , conn ) ;
1093+ }
1094+
1095+ if ( contractEvent . eventType == "filled" )
1096+ {
1097+ WriteToTradeTable ( contractEvent , conn ) ;
1098+ }
1099+
1100+ conn . Close ( ) ;
10921101 }
10931102
10941103 }
10951104
1096- private static void WriteToEventTable ( SmartContractEvent contractEvent )
1105+ private static void WriteToEventTable ( SmartContractEvent contractEvent , NpgsqlConnection conn )
10971106 {
10981107 Console . WriteLine ( String . Format ( "Event {0} {1}" , contractEvent . eventType , contractEvent . eventPayload ) ) ;
1099- string connString = Environment . GetEnvironmentVariable ( "DB_CONNECTION_STRING" ) ;
11001108 try
11011109 {
1102- using ( var conn = new NpgsqlConnection ( connString ) )
1110+ using ( var cmd = new NpgsqlCommand (
1111+ "INSERT INTO events (block_number, transaction_hash, contract_hash, event_type, event_payload, event_time, event_index, blockchain, " +
1112+ "created_at, updated_at) " +
1113+ "VALUES (@blockNumber, @transactionHash, @contractHash, @eventType, @eventPayload, @eventTime, @eventIndex, @blockchain, " +
1114+ "current_timestamp, current_timestamp)" , conn ) )
11031115 {
1104- conn . Open ( ) ;
1105- using ( var cmd = new NpgsqlCommand (
1106- "INSERT INTO events (block_number, transaction_hash, contract_hash, event_type, event_payload, event_time, event_index, blockchain, " +
1107- "created_at, updated_at) " +
1108- "VALUES (@blockNumber, @transactionHash, @contractHash, @eventType, @eventPayload, @eventTime, @eventIndex, @blockchain, " +
1109- "current_timestamp, current_timestamp)" , conn ) )
1110- {
1111- cmd . Parameters . AddWithValue ( "blockchain" , "neo" ) ;
1112- cmd . Parameters . AddWithValue ( "blockNumber" , NpgsqlDbType . Integer , contractEvent . blockNumber ) ;
1113- cmd . Parameters . AddWithValue ( "transactionHash" , contractEvent . transactionHash ) ;
1114- cmd . Parameters . AddWithValue ( "contractHash" , contractEvent . contractHash ) ;
1115- cmd . Parameters . AddWithValue ( "eventType" , contractEvent . eventType ) ;
1116- cmd . Parameters . AddWithValue ( "eventTime" , NpgsqlDbType . Timestamp , UnixTimeStampToDateTime ( contractEvent . eventTime ) ) ;
1117- cmd . Parameters . AddWithValue ( "eventIndex" , NpgsqlDbType . Numeric , contractEvent . eventIndex ) ;
1118- cmd . Parameters . AddWithValue ( "eventPayload" , NpgsqlDbType . Jsonb , contractEvent . eventPayload . ToString ( ) ) ;
1119-
1120- int nRows = cmd . ExecuteNonQuery ( ) ;
1121-
1122- Console . WriteLine ( String . Format ( "Rows inserted={0}" , nRows ) ) ;
1123- }
1124- conn . Close ( ) ;
1116+ cmd . Parameters . AddWithValue ( "blockchain" , "neo" ) ;
1117+ cmd . Parameters . AddWithValue ( "blockNumber" , NpgsqlDbType . Integer , contractEvent . blockNumber ) ;
1118+ cmd . Parameters . AddWithValue ( "transactionHash" , contractEvent . transactionHash ) ;
1119+ cmd . Parameters . AddWithValue ( "contractHash" , contractEvent . contractHash ) ;
1120+ cmd . Parameters . AddWithValue ( "eventType" , contractEvent . eventType ) ;
1121+ cmd . Parameters . AddWithValue ( "eventTime" , NpgsqlDbType . Timestamp , UnixTimeStampToDateTime ( contractEvent . eventTime ) ) ;
1122+ cmd . Parameters . AddWithValue ( "eventIndex" , NpgsqlDbType . Numeric , contractEvent . eventIndex ) ;
1123+ cmd . Parameters . AddWithValue ( "eventPayload" , NpgsqlDbType . Jsonb , contractEvent . eventPayload . ToString ( ) ) ;
1124+
1125+ int nRows = cmd . ExecuteNonQuery ( ) ;
1126+
1127+ Console . WriteLine ( String . Format ( "Rows inserted={0}" , nRows ) ) ;
11251128 }
11261129 }
11271130 catch ( PostgresException ex )
@@ -1138,49 +1141,44 @@ private static void WriteToEventTable(SmartContractEvent contractEvent)
11381141 }
11391142 }
11401143
1141- private static void WriteToOfferTable ( SmartContractEvent contractEvent )
1144+ private static void WriteToOfferTable ( SmartContractEvent contractEvent , NpgsqlConnection conn )
11421145 {
1143- Console . WriteLine ( String . Format ( "Write to offers {0} {1}" , contractEvent . eventType , contractEvent . eventPayload ) ) ;
1144- string connString = Environment . GetEnvironmentVariable ( "DB_CONNECTION_STRING" ) ;
1146+ Console . WriteLine ( String . Format ( "Offer {0}" , contractEvent . eventPayload ) ) ;
1147+
11451148 try
11461149 {
1147- using ( var conn = new NpgsqlConnection ( connString ) )
1150+ var address = contractEvent . eventPayload [ 0 ] . AsString ( ) ;
1151+ var offerHash = contractEvent . eventPayload [ 1 ] . AsString ( ) ;
1152+ var offerAssetId = contractEvent . eventPayload [ 2 ] . AsString ( ) ;
1153+ var offerAmount = contractEvent . eventPayload [ 3 ] . AsString ( ) ;
1154+ var wantAssetId = contractEvent . eventPayload [ 4 ] . AsString ( ) ;
1155+ var wantAmount = contractEvent . eventPayload [ 5 ] . AsString ( ) ;
1156+ var availableAmount = offerAmount ;
1157+
1158+ using ( var cmd = new NpgsqlCommand (
1159+ "INSERT INTO offers (block_number, transaction_hash, contract_hash, event_time, " +
1160+ "blockchain, address, available_amount, offer_hash, offer_asset_id, offer_amount, want_asset_id, want_amount, " +
1161+ "created_at, updated_at)" +
1162+ "VALUES (@blockNumber, @transactionHash, @contractHash, @eventTime, @blockchain, @address, " +
1163+ "@availableAmount, @offerHash, @offerAssetId, @offerAmount, @wantAssetId, @wantAmount, " +
1164+ "current_timestamp, current_timestamp)" , conn ) )
11481165 {
1149- conn . Open ( ) ;
1150- var address = contractEvent . eventPayload [ 0 ] . AsString ( ) ;
1151- var offerHash = contractEvent . eventPayload [ 1 ] . AsString ( ) ;
1152- var offerAssetId = contractEvent . eventPayload [ 2 ] . AsString ( ) ;
1153- var offerAmount = contractEvent . eventPayload [ 3 ] . AsString ( ) ;
1154- var wantAssetId = contractEvent . eventPayload [ 4 ] . AsString ( ) ;
1155- var wantAmount = contractEvent . eventPayload [ 5 ] . AsString ( ) ;
1156- var availableAmount = offerAmount ;
1157-
1158- using ( var cmd = new NpgsqlCommand (
1159- "INSERT INTO offers (block_number, transaction_hash, contract_hash, event_time, " +
1160- "blockchain, address, available_amount, offer_hash, offer_asset_id, offer_amount, want_asset_id, want_amount, " +
1161- "created_at, updated_at)" +
1162- "VALUES (@blockNumber, @transactionHash, @contractHash, @eventTime, @blockchain, @address, " +
1163- "@availableAmount, @offerHash, @offerAssetId, @offerAmount, @wantAssetId, @wantAmount, " +
1164- "current_timestamp, current_timestamp)" , conn ) )
1165- {
1166- cmd . Parameters . AddWithValue ( "blockNumber" , NpgsqlDbType . Integer , contractEvent . blockNumber ) ;
1167- cmd . Parameters . AddWithValue ( "transactionHash" , contractEvent . transactionHash ) ;
1168- cmd . Parameters . AddWithValue ( "contractHash" , contractEvent . contractHash ) ;
1169- cmd . Parameters . AddWithValue ( "eventTime" , NpgsqlDbType . Timestamp , UnixTimeStampToDateTime ( contractEvent . eventTime ) ) ;
1170- cmd . Parameters . AddWithValue ( "blockchain" , "neo" ) ;
1171- cmd . Parameters . AddWithValue ( "address" , NpgsqlDbType . Varchar , address ) ;
1172- cmd . Parameters . AddWithValue ( "availableAmount" , NpgsqlDbType . Numeric , availableAmount ) ;
1173- cmd . Parameters . AddWithValue ( "offerHash" , NpgsqlDbType . Varchar , offerHash ) ;
1174- cmd . Parameters . AddWithValue ( "offerAssetId" , NpgsqlDbType . Varchar , offerAssetId ) ;
1175- cmd . Parameters . AddWithValue ( "offerAmount" , NpgsqlDbType . Numeric , offerAmount ) ;
1176- cmd . Parameters . AddWithValue ( "wantAssetId" , NpgsqlDbType . Varchar , wantAssetId ) ;
1177- cmd . Parameters . AddWithValue ( "wantAmount" , NpgsqlDbType . Numeric , wantAmount ) ;
1178-
1179- int nRows = cmd . ExecuteNonQuery ( ) ;
1180-
1181- Console . WriteLine ( String . Format ( "Rows inserted={0}" , nRows ) ) ;
1182- }
1183- conn . Close ( ) ;
1166+ cmd . Parameters . AddWithValue ( "blockNumber" , NpgsqlDbType . Integer , contractEvent . blockNumber ) ;
1167+ cmd . Parameters . AddWithValue ( "transactionHash" , contractEvent . transactionHash ) ;
1168+ cmd . Parameters . AddWithValue ( "contractHash" , contractEvent . contractHash ) ;
1169+ cmd . Parameters . AddWithValue ( "eventTime" , NpgsqlDbType . Timestamp , UnixTimeStampToDateTime ( contractEvent . eventTime ) ) ;
1170+ cmd . Parameters . AddWithValue ( "blockchain" , "neo" ) ;
1171+ cmd . Parameters . AddWithValue ( "address" , NpgsqlDbType . Varchar , address ) ;
1172+ cmd . Parameters . AddWithValue ( "availableAmount" , NpgsqlDbType . Numeric , availableAmount ) ;
1173+ cmd . Parameters . AddWithValue ( "offerHash" , NpgsqlDbType . Varchar , offerHash ) ;
1174+ cmd . Parameters . AddWithValue ( "offerAssetId" , NpgsqlDbType . Varchar , offerAssetId ) ;
1175+ cmd . Parameters . AddWithValue ( "offerAmount" , NpgsqlDbType . Numeric , offerAmount ) ;
1176+ cmd . Parameters . AddWithValue ( "wantAssetId" , NpgsqlDbType . Varchar , wantAssetId ) ;
1177+ cmd . Parameters . AddWithValue ( "wantAmount" , NpgsqlDbType . Numeric , wantAmount ) ;
1178+
1179+ int nRows = cmd . ExecuteNonQuery ( ) ;
1180+
1181+ Console . WriteLine ( String . Format ( "Rows inserted={0}" , nRows ) ) ;
11841182 }
11851183 }
11861184 catch ( PostgresException ex )
@@ -1197,47 +1195,43 @@ private static void WriteToOfferTable(SmartContractEvent contractEvent)
11971195 }
11981196 }
11991197
1200- private static void WriteToTradeTable ( SmartContractEvent contractEvent )
1198+ private static void WriteToTradeTable ( SmartContractEvent contractEvent , NpgsqlConnection conn )
12011199 {
1202- Console . WriteLine ( String . Format ( "Write to trades {0} {1}" , contractEvent . eventType , contractEvent . eventPayload ) ) ;
1200+ Console . WriteLine ( String . Format ( "Trade {0}" , contractEvent . eventPayload ) ) ;
1201+
12031202 string connString = Environment . GetEnvironmentVariable ( "DB_CONNECTION_STRING" ) ;
12041203 try
12051204 {
1206- using ( var conn = new NpgsqlConnection ( connString ) )
1205+ var address = contractEvent . eventPayload [ 0 ] . AsString ( ) ;
1206+ var offerHash = contractEvent . eventPayload [ 1 ] . AsString ( ) ;
1207+ var filledAmount = contractEvent . eventPayload [ 2 ] . AsString ( ) ;
1208+ var offerAssetId = contractEvent . eventPayload [ 3 ] . AsString ( ) ;
1209+ var offerAmount = contractEvent . eventPayload [ 4 ] . AsString ( ) ;
1210+ var wantAssetId = contractEvent . eventPayload [ 5 ] . AsString ( ) ;
1211+ var wantAmount = contractEvent . eventPayload [ 6 ] . AsString ( ) ;
1212+
1213+ using ( var cmd = new NpgsqlCommand (
1214+ "INSERT INTO trades (block_number, transaction_hash, contract_hash, address, offer_hash, filled_amount, " +
1215+ "offer_asset_id, offer_amount, want_asset_id, want_amount, event_time, blockchain, created_at, updated_at)" +
1216+ "VALUES (@blockNumber, @transactionHash, @contractHash, @address, @offerHash, @filledAmount, " +
1217+ "@offerAssetId, @offerAmount, @wantAssetId, @wantAmount, @eventTime, @blockchain, current_timestamp, current_timestamp)" , conn ) )
12071218 {
1208- conn . Open ( ) ;
1209- var address = contractEvent . eventPayload [ 0 ] . AsString ( ) ;
1210- var offerHash = contractEvent . eventPayload [ 1 ] . AsString ( ) ;
1211- var filledAmount = contractEvent . eventPayload [ 2 ] . AsString ( ) ;
1212- var offerAssetId = contractEvent . eventPayload [ 3 ] . AsString ( ) ;
1213- var offerAmount = contractEvent . eventPayload [ 4 ] . AsString ( ) ;
1214- var wantAssetId = contractEvent . eventPayload [ 5 ] . AsString ( ) ;
1215- var wantAmount = contractEvent . eventPayload [ 6 ] . AsString ( ) ;
1216-
1217- using ( var cmd = new NpgsqlCommand (
1218- "INSERT INTO trades (block_number, transaction_hash, contract_hash, address, offer_hash, filled_amount, " +
1219- "offer_asset_id, offer_amount, want_asset_id, want_amount, event_time, blockchain, created_at, updated_at)" +
1220- "VALUES (@blockNumber, @transactionHash, @contractHash, @address, @offerHash, @filledAmount, " +
1221- "@offerAssetId, @offerAmount, @wantAssetId, @wantAmount, @eventTime, @blockchain, current_timestamp, current_timestamp)" , conn ) )
1222- {
1223- cmd . Parameters . AddWithValue ( "blockNumber" , NpgsqlDbType . Integer , contractEvent . blockNumber ) ;
1224- cmd . Parameters . AddWithValue ( "transactionHash" , contractEvent . transactionHash ) ;
1225- cmd . Parameters . AddWithValue ( "contractHash" , contractEvent . contractHash ) ;
1226- cmd . Parameters . AddWithValue ( "address" , NpgsqlDbType . Varchar , address ) ;
1227- cmd . Parameters . AddWithValue ( "offerHash" , NpgsqlDbType . Varchar , offerHash ) ;
1228- cmd . Parameters . AddWithValue ( "filledAmount" , NpgsqlDbType . Numeric , filledAmount ) ;
1229- cmd . Parameters . AddWithValue ( "offerAssetId" , NpgsqlDbType . Varchar , offerAssetId ) ;
1230- cmd . Parameters . AddWithValue ( "offerAmount" , NpgsqlDbType . Numeric , offerAmount ) ;
1231- cmd . Parameters . AddWithValue ( "wantAssetId" , NpgsqlDbType . Varchar , wantAssetId ) ;
1232- cmd . Parameters . AddWithValue ( "wantAmount" , NpgsqlDbType . Numeric , wantAmount ) ;
1233- cmd . Parameters . AddWithValue ( "eventTime" , NpgsqlDbType . Timestamp , UnixTimeStampToDateTime ( contractEvent . eventTime ) ) ;
1234- cmd . Parameters . AddWithValue ( "blockchain" , "neo" ) ;
1235-
1236- int nRows = cmd . ExecuteNonQuery ( ) ;
1237-
1238- Console . WriteLine ( String . Format ( "Rows inserted={0}" , nRows ) ) ;
1239- }
1240- conn . Close ( ) ;
1219+ cmd . Parameters . AddWithValue ( "blockNumber" , NpgsqlDbType . Integer , contractEvent . blockNumber ) ;
1220+ cmd . Parameters . AddWithValue ( "transactionHash" , contractEvent . transactionHash ) ;
1221+ cmd . Parameters . AddWithValue ( "contractHash" , contractEvent . contractHash ) ;
1222+ cmd . Parameters . AddWithValue ( "address" , NpgsqlDbType . Varchar , address ) ;
1223+ cmd . Parameters . AddWithValue ( "offerHash" , NpgsqlDbType . Varchar , offerHash ) ;
1224+ cmd . Parameters . AddWithValue ( "filledAmount" , NpgsqlDbType . Numeric , filledAmount ) ;
1225+ cmd . Parameters . AddWithValue ( "offerAssetId" , NpgsqlDbType . Varchar , offerAssetId ) ;
1226+ cmd . Parameters . AddWithValue ( "offerAmount" , NpgsqlDbType . Numeric , offerAmount ) ;
1227+ cmd . Parameters . AddWithValue ( "wantAssetId" , NpgsqlDbType . Varchar , wantAssetId ) ;
1228+ cmd . Parameters . AddWithValue ( "wantAmount" , NpgsqlDbType . Numeric , wantAmount ) ;
1229+ cmd . Parameters . AddWithValue ( "eventTime" , NpgsqlDbType . Timestamp , UnixTimeStampToDateTime ( contractEvent . eventTime ) ) ;
1230+ cmd . Parameters . AddWithValue ( "blockchain" , "neo" ) ;
1231+
1232+ int nRows = cmd . ExecuteNonQuery ( ) ;
1233+
1234+ Console . WriteLine ( String . Format ( "Rows inserted={0}" , nRows ) ) ;
12411235 }
12421236 }
12431237 catch ( PostgresException ex )
0 commit comments