From 85d5098d9daa36809436666c60d95ebdc8c33023 Mon Sep 17 00:00:00 2001
From: Evan Gray <battledingo@gmail.com>
Date: Tue, 10 Dec 2024 12:16:21 -0500
Subject: [PATCH] tilt: solana-test-validator multi-platform support

---
 Tiltfile                              |  5 ---
 sdk/js-query/src/query/solana.test.ts | 44 ++++++++++++++++++++-------
 solana/Dockerfile.test-validator      |  3 +-
 3 files changed, 34 insertions(+), 18 deletions(-)

diff --git a/Tiltfile b/Tiltfile
index ec890e5afb..1eb8324f6b 100644
--- a/Tiltfile
+++ b/Tiltfile
@@ -489,15 +489,10 @@ if solana or pythnet:
 
     # solana local devnet
 
-    build_args = {}
-    if m1:
-        build_args = {"BASE_IMAGE": "ghcr.io/wormholelabs-xyz/solana-test-validator-m1:1.17.29@sha256:c5a43c0762f2dab4873a9e632a389029b6d5f706be7dfb89a42a66cc65a3dd24"}
-
     docker_build(
         ref = "solana-test-validator",
         context = "solana",
         dockerfile = "solana/Dockerfile.test-validator",
-        build_args = build_args
     )
 
     k8s_yaml_with_ns("devnet/solana-devnet.yaml")
diff --git a/sdk/js-query/src/query/solana.test.ts b/sdk/js-query/src/query/solana.test.ts
index 7ca2e19a3d..6987871217 100644
--- a/sdk/js-query/src/query/solana.test.ts
+++ b/sdk/js-query/src/query/solana.test.ts
@@ -204,7 +204,9 @@ describe("solana", () => {
     expect(sar.results[0].lamports.toString()).toEqual(
       BigInt(1461600).toString()
     );
-    expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString());
+    expect(sar.results[0].rentEpoch.toString()).toEqual(
+      BigInt("18446744073709551615").toString()
+    );
     expect(sar.results[0].executable).toEqual(false);
     expect(base58.encode(Buffer.from(sar.results[0].owner))).toEqual(
       "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
@@ -216,7 +218,9 @@ describe("solana", () => {
     expect(sar.results[0].lamports.toString()).toEqual(
       BigInt(1461600).toString()
     );
-    expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString());
+    expect(sar.results[0].rentEpoch.toString()).toEqual(
+      BigInt("18446744073709551615").toString()
+    );
     expect(sar.results[1].executable).toEqual(false);
     expect(base58.encode(Buffer.from(sar.results[1].owner))).toEqual(
       "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
@@ -268,7 +272,9 @@ describe("solana", () => {
     expect(sar.results[0].lamports.toString()).toEqual(
       BigInt(1461600).toString()
     );
-    expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString());
+    expect(sar.results[0].rentEpoch.toString()).toEqual(
+      BigInt("18446744073709551615").toString()
+    );
     expect(sar.results[0].executable).toEqual(false);
     expect(base58.encode(Buffer.from(sar.results[0].owner))).toEqual(
       "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
@@ -280,7 +286,9 @@ describe("solana", () => {
     expect(sar.results[0].lamports.toString()).toEqual(
       BigInt(1461600).toString()
     );
-    expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString());
+    expect(sar.results[0].rentEpoch.toString()).toEqual(
+      BigInt("18446744073709551615").toString()
+    );
     expect(sar.results[1].executable).toEqual(false);
     expect(base58.encode(Buffer.from(sar.results[1].owner))).toEqual(
       "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
@@ -398,7 +406,9 @@ describe("solana", () => {
     expect(sar.results[0].lamports.toString()).not.toEqual(
       BigInt(0).toString()
     );
-    expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString());
+    expect(sar.results[0].rentEpoch.toString()).toEqual(
+      BigInt("18446744073709551615").toString()
+    );
     expect(sar.results[0].executable).toEqual(false);
     expect(Buffer.from(sar.results[0].owner).toString("hex")).toEqual(
       "02c806312cbe5b79ef8aa6c17e3f423d8fdfe1d46909fb1f6cdf65ee8e2e6faa"
@@ -455,7 +465,9 @@ describe("solana", () => {
     expect(sar.results[0].lamports.toString()).not.toEqual(
       BigInt(0).toString()
     );
-    expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString());
+    expect(sar.results[0].rentEpoch.toString()).toEqual(
+      BigInt("18446744073709551615").toString()
+    );
     expect(sar.results[0].executable).toEqual(false);
     expect(Buffer.from(sar.results[0].owner).toString("hex")).toEqual(
       "02c806312cbe5b79ef8aa6c17e3f423d8fdfe1d46909fb1f6cdf65ee8e2e6faa"
@@ -519,7 +531,9 @@ describe("solana", () => {
       expect(sar.results[0].lamports.toString()).toEqual(
         BigInt(1461600).toString()
       );
-      expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString());
+      expect(sar.results[0].rentEpoch.toString()).toEqual(
+        BigInt("18446744073709551615").toString()
+      );
       expect(sar.results[0].executable).toEqual(false);
       expect(base58.encode(Buffer.from(sar.results[0].owner))).toEqual(
         "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
@@ -531,7 +545,9 @@ describe("solana", () => {
       expect(sar.results[0].lamports.toString()).toEqual(
         BigInt(1461600).toString()
       );
-      expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString());
+      expect(sar.results[0].rentEpoch.toString()).toEqual(
+        BigInt("18446744073709551615").toString()
+      );
       expect(sar.results[1].executable).toEqual(false);
       expect(base58.encode(Buffer.from(sar.results[1].owner))).toEqual(
         "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
@@ -584,7 +600,9 @@ describe("solana", () => {
     expect(sar.results[0].lamports.toString()).toEqual(
       BigInt(1461600).toString()
     );
-    expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString());
+    expect(sar.results[0].rentEpoch.toString()).toEqual(
+      BigInt("18446744073709551615").toString()
+    );
     expect(sar.results[0].executable).toEqual(false);
     expect(base58.encode(Buffer.from(sar.results[0].owner))).toEqual(
       "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
@@ -596,7 +614,9 @@ describe("solana", () => {
     expect(sar.results[0].lamports.toString()).toEqual(
       BigInt(1461600).toString()
     );
-    expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString());
+    expect(sar.results[0].rentEpoch.toString()).toEqual(
+      BigInt("18446744073709551615").toString()
+    );
     expect(sar.results[1].executable).toEqual(false);
     expect(base58.encode(Buffer.from(sar.results[1].owner))).toEqual(
       "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
@@ -654,7 +674,9 @@ describe("solana", () => {
     expect(sar.results[0].lamports.toString()).not.toEqual(
       BigInt(0).toString()
     );
-    expect(sar.results[0].rentEpoch.toString()).toEqual(BigInt(0).toString());
+    expect(sar.results[0].rentEpoch.toString()).toEqual(
+      BigInt("18446744073709551615").toString()
+    );
     expect(sar.results[0].executable).toEqual(false);
     expect(Buffer.from(sar.results[0].owner).toString("hex")).toEqual(
       "02c806312cbe5b79ef8aa6c17e3f423d8fdfe1d46909fb1f6cdf65ee8e2e6faa"
diff --git a/solana/Dockerfile.test-validator b/solana/Dockerfile.test-validator
index 01f932e450..2121b22ea0 100644
--- a/solana/Dockerfile.test-validator
+++ b/solana/Dockerfile.test-validator
@@ -1,3 +1,2 @@
-ARG BASE_IMAGE=solana-contract
-FROM ${BASE_IMAGE}
+FROM ghcr.io/wormholelabs-xyz/solana-test-validator:1.17.29@sha256:b1f85eed2d33a2bd0378204ab4d1e16537de35407cdcfeedbd021b31636618bc
 COPY --from=solana-contract /opt/solana/deps/ /opt/solana/deps/