Skip to content

Commit

Permalink
Merge pull request #33 from RSS3-Network/fix/debug-transfer-widget
Browse files Browse the repository at this point in the history
Fix: modify transfer widget and write automated test script
  • Loading branch information
naaive authored Aug 12, 2024
2 parents 25e52f5 + 6607825 commit 33c495d
Show file tree
Hide file tree
Showing 13 changed files with 6,180 additions and 5,241 deletions.
5 changes: 3 additions & 2 deletions openagent/ui/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,11 @@ async def handle_tool_end(event, msg):
output = event["data"]["output"]
transfer_dict = json.loads(output)
token = transfer_dict["token"]
token_address = transfer_dict["token_address"]
to_address = transfer_dict["to_address"]
amount = transfer_dict["amount"]

url = f"/widget/transfer?token={token}&amount={amount}&toAddress={to_address}"
url = f"/widget/transfer?token={token}&tokenAddress={token_address}&amount={amount}&toAddress={to_address}"

iframe_html = f"""
<iframe src="{url}" width="100%" height="600px" style="border:none;">
Expand All @@ -163,5 +164,5 @@ async def handle_tool_end(event, msg):
if event["name"] == "PriceExecutor":
output = event["data"]["output"]
price_dict = json.loads(output)
widget = f"""<iframe src="/widget/price-chart?token={list(price_dict.keys())[0]}" height="400"></iframe>""" # noqa
widget = f"""<iframe src="/widget/price-chart?token={list(price_dict.keys())[0]}" height="600px"></iframe>""" # noqa
await msg.stream_token(widget)
2 changes: 1 addition & 1 deletion public/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ div.MuiStack-root.message-content .markdown-body {

div.MuiBox-root div.MuiStack-root.watermark{
display: none;
}
}
27 changes: 20 additions & 7 deletions tests/agent_trajectory/asset_management.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,30 @@
import asyncio
import os
import sys
import unittest

sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")))

from langchain_core.messages import HumanMessage

from openagent.agents.asset_management import asset_management_agent
from openagent.conf.llm_provider import set_current_llm


class TestAssetManagementAgent(unittest.TestCase):
def setUp(self):
set_current_llm("gemini-1.5-pro")
# set_current_llm("gpt-3.5-turbo")
# set_current_llm("llama3.1:latest")
from tests.base_test import BaseAgentTest


class TestAssetManagementAgent(BaseAgentTest):
# def setUp(self):
# set_current_llm("gemini-1.5-pro")
# # set_current_llm("gpt-3.5-turbo")
# # set_current_llm("llama3.1:latest")
@classmethod
def setUpClass(cls):
super().setUpClass()
if len(sys.argv) > 2 and not sys.argv[2].startswith("-"):
set_current_llm(sys.argv[2])
del sys.argv[2]
else:
set_current_llm("default_model")

def test_swap_eth_to_usdt(self):
async def async_test():
Expand Down
27 changes: 20 additions & 7 deletions tests/agent_trajectory/block_explore.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,30 @@
import asyncio
import os
import sys
import unittest

sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")))

from langchain_core.messages import HumanMessage

from openagent.agents.block_explore import block_explorer_agent
from openagent.conf.llm_provider import set_current_llm


class TestBlockExploreAgent(unittest.TestCase):
def setUp(self):
# set_current_llm("gemini-1.5-pro")
set_current_llm("gpt-3.5-turbo")
# set_current_llm("llama3.1:latest")
from tests.base_test import BaseAgentTest


class TestBlockExploreAgent(BaseAgentTest):
# def setUp(self):
# # set_current_llm("gemini-1.5-pro")
# set_current_llm("gpt-3.5-turbo")
# # set_current_llm("llama3.1:latest")
@classmethod
def setUpClass(cls):
super().setUpClass()
if len(sys.argv) > 2 and not sys.argv[2].startswith("-"):
set_current_llm(sys.argv[2])
del sys.argv[2]
else:
set_current_llm("default_model")

def test_query_block_height(self):
async def async_test():
Expand Down
23 changes: 18 additions & 5 deletions tests/agent_trajectory/feed_explore.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,28 @@
import asyncio
import os
import sys
import unittest

sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")))

from langchain_core.messages import HumanMessage

from openagent.agents.feed_explore import feed_explorer_agent
from openagent.conf.llm_provider import set_current_llm


class TestFeedExploreAgent(unittest.TestCase):
def setUp(self):
set_current_llm("gpt-3.5-turbo")
from tests.base_test import BaseAgentTest


class TestFeedExploreAgent(BaseAgentTest):
# def setUp(self):
# set_current_llm("gpt-3.5-turbo")
@classmethod
def setUpClass(cls):
super().setUpClass()
if len(sys.argv) > 2 and not sys.argv[2].startswith("-"):
set_current_llm(sys.argv[2])
del sys.argv[2]
else:
set_current_llm("default_model")

def test_query_defi_activities(self):
"""
Expand Down
27 changes: 20 additions & 7 deletions tests/agent_trajectory/market_analysis.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,30 @@
import asyncio
import os
import sys
import unittest

sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")))

from langchain_core.messages import HumanMessage

from openagent.agents.market_analysis import market_analysis_agent
from openagent.conf.llm_provider import set_current_llm


class TestMarketAnalysisAgent(unittest.TestCase):
def setUp(self):
# set_current_llm("gemini-1.5-pro")
set_current_llm("gpt-3.5-turbo")
# set_current_llm("llama3.1:latest")
from tests.base_test import BaseAgentTest


class TestMarketAnalysisAgent(BaseAgentTest):
# def setUp(self):
# # set_current_llm("gemini-1.5-pro")
# set_current_llm("gpt-3.5-turbo")
# # set_current_llm("llama3.1:latest")
@classmethod
def setUpClass(cls):
super().setUpClass()
if len(sys.argv) > 2 and not sys.argv[2].startswith("-"):
set_current_llm(sys.argv[2])
del sys.argv[2]
else:
set_current_llm("default_model")

def test_query_btc_price(self):
async def async_test():
Expand Down
27 changes: 20 additions & 7 deletions tests/agent_trajectory/research_analyst.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,30 @@
import asyncio
import os
import sys
import unittest

sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")))

from langchain_core.messages import HumanMessage

from openagent.agents.project_management import research_analyst_agent
from openagent.conf.llm_provider import set_current_llm


class TestResearchAnalystAgent(unittest.TestCase):
def setUp(self):
# set_current_llm("gemini-1.5-pro")
set_current_llm("gpt-3.5-turbo")
# set_current_llm("llama3.1:latest")
from tests.base_test import BaseAgentTest


class TestResearchAnalystAgent(BaseAgentTest):
# def setUp(self):
# # set_current_llm("gemini-1.5-pro")
# set_current_llm("gpt-3.5-turbo")
# # set_current_llm("llama3.1:latest")
@classmethod
def setUpClass(cls):
super().setUpClass()
if len(sys.argv) > 2 and not sys.argv[2].startswith("-"):
set_current_llm(sys.argv[2])
del sys.argv[2]
else:
set_current_llm("default_model")

def test_query_project(self):
async def async_test():
Expand Down
10 changes: 10 additions & 0 deletions tests/base_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import unittest


class BaseAgentTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
pass

def setUp(self):
pass
39 changes: 39 additions & 0 deletions tests/run_tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import sys
import unittest

from openagent.conf.llm_provider import set_current_llm


def run_tests(model_name, specific_test=None):
# Set the model name globally
set_current_llm(model_name)

# Discover and run all tests
test_loader = unittest.TestLoader()

if specific_test:
specific_test = specific_test.replace("tests.", "", 1)
test_suite = test_loader.loadTestsFromName(specific_test)
else:
test_suite = test_loader.discover("agent_trajectory", pattern="*.py")

runner = unittest.TextTestRunner(verbosity=2)
result = runner.run(test_suite)

return result


if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python run_tests.py <model_name> OR python run_tests.py <model_name> [specific_test] ")
sys.exit(1)

model_name = sys.argv[1]
specific_test = sys.argv[2] if len(sys.argv) > 2 else None

result = run_tests(model_name, specific_test)

if result.wasSuccessful():
sys.exit(0)
else:
sys.exit(1)
41 changes: 28 additions & 13 deletions widget/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,26 +1,41 @@
import React from 'react';
import '@rainbow-me/rainbowkit/styles.css';
import { RainbowKitProvider, getDefaultConfig } from '@rainbow-me/rainbowkit';
import { WagmiProvider } from 'wagmi';
import {RainbowKitProvider, getDefaultConfig, getDefaultWallets} from '@rainbow-me/rainbowkit';
import {createConfig, http, WagmiProvider} from 'wagmi';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { mainnet, polygon, optimism, arbitrum } from 'wagmi/chains';
import {mainnet, sepolia} from 'wagmi/chains';

/* eslint-disable no-console */
let MAINNET_RPC_URL = process.env.REACT_APP_MAINNET_RPC_URL || "";
let SEPOLIA_RPC_URL = process.env.REACT_APP_SEPOLIA_RPC_URL || "";

/* eslint-disable no-console */
export function App() {

return <>
<h1>hello world</h1>
</>
}

// Configuration for RainbowKit
const config = getDefaultConfig({
appName: 'My RainbowKit App',
projectId: 'No_ID',
chains: [mainnet, polygon, optimism, arbitrum],
const { connectors } = getDefaultWallets({
appName: "OpenAgent Widget",
appDescription: "Widget",
projectId: "project id",
})

export const wagmiConfig = createConfig({
chains:[mainnet,sepolia],
connectors,
ssr: true,
});
transports: {
[mainnet.id]: http(MAINNET_RPC_URL, { batch: true }),
[sepolia.id]: http(SEPOLIA_RPC_URL, { batch: true }),
},
syncConnectedChain: true,
})

declare module "wagmi" {
interface Register {
config: typeof wagmiConfig
}
}

// Create a new QueryClient instance for React Query
const queryClient = new QueryClient();
Expand All @@ -34,7 +49,7 @@ const queryClient = new QueryClient();
*/
export function TransferWidgetApp({ children }: { children: React.ReactNode }) {
return (
<WagmiProvider config={config}>
<WagmiProvider config={wagmiConfig}>
<QueryClientProvider client={queryClient}>
<RainbowKitProvider>
{children}
Expand Down
Loading

0 comments on commit 33c495d

Please sign in to comment.