I am writing a code on Ethereum transactions between couple of wallets. My goal is to make an animation to show that how the transactions are being done between these wallets. So I gave each wallet an X-Y coordination and I wrote a code which shows how the transaction is directed from a wallet to another one. My code works fine when I do that for one transaction at a time , but the problem is when I want to make some of the wallets to make transactions at the same time(as in real world it can happen ), the program doesn’t work. I pasted my code here. I will be glad if you guys can help me.

```
Table table; // Table object
float beginX;
float beginY;
float endX;
float endY;
float distX;`Preformatted text`
float distY;
float exponent = 4; // Determines the curve
float xDots = 0.0; // Current x-coordinate
float yDots = 0.0; // Current y-coordinate
float step = 0.01; // Size of each step along the path
float pct = 0.01; // Percentage traveled (0.0 to 1.0)
int p = 0;
int iteration = 0;
int multiplier;
void setup() {
size(1920, 1580); // HD size
background(255); // White background; black=(0)
frameRate(30);
//loadData();
// =IF(F3=F2,L2,RANDBETWEEN(1,1919)) =IF(F3=F2,L2,RANDBETWEEN(1,1079))
}
void draw() { // Load CSV file into a Table object. "header" option indicates file has header row; loadData
table = loadTable("Data_First1000B.csv", "header");
for (int p = 2; p<table.getRowCount(); p++) { //p<883; p<table.getRowCount()
TableRow row = table.getRow(p);
// You can access the fields via their column name (or index)
float x = row.getFloat("from_x");
float y = row.getFloat("from_y");
float w = row.getFloat("to_x");
float z = row.getFloat("to_y");
int rowz = row.getInt("row");
beginX = x; // Initial x-coordinate
beginY = y; // Initial y-coordinate
endX = w; // Final x-coordinate
endY = z; // Final y-coordinate
distX = endX - beginX; // X-axis distance to move
distY = endY - beginY; // Y-axis distance to move
pct=0;
while (pct < 1.0) {
println(rowz);
println(distX);
println(distY);
xDots = beginX + (pct * distX);
yDots = beginY + (pow(pct, exponent) * distY);
println(x, y, w, z);
println(pct);
println(xDots);
println(yDots);
fill(0, 255, 0); //green starting wallet
ellipse(beginX, beginY, 10, 10);
fill(255*pct, 0, 0); // red flow, starts tiny grows bigger
ellipse(xDots, yDots, pct*10, pct*10);
fill(0, 0, 255); // blue ending wallet
ellipse(endX, endY, 10, 10);
multiplier = round(pct*100000);
if (pct <= 0) {
if (p < 10) {
save("00000" + p + "_" + multiplier + "00000.png");
} else if (p < 100) {
save("0000" + p + "_" + multiplier + "00000.png");
} else {
save("000" + p + "_" + multiplier + "00000.png");
}
} else if (p < 10) {
if (multiplier < 10000) {
save("00000" + p + "_" + "00" + multiplier + ".png");
} else if (multiplier < 100000) {
save("00000" + p + "_" + "0" + multiplier + ".png");
} else {
save("00000" + p + "_" + multiplier + ".png");
}
} else if (p < 100) {
if (multiplier < 10000) {
save("0000" + p + "_" + "00" + multiplier + ".png");
} else if (multiplier < 100000) {
save("0000" + p + "_" + "0" + multiplier + ".png");
} else {
save("0000" + p + "_" + multiplier + ".png");
}
} else if (p < 1000) {
if (multiplier < 10000) {
save("000" + p + "_" + "00" + multiplier + ".png");
} else if (multiplier < 100000) {
save("000" + p + "_" + "0" + multiplier + ".png");
} else {
save("000" + p + "_" + multiplier + ".png");
}
}
pct += step;
}
}
}
```