Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Coinbase client #277

Merged
merged 681 commits into from
Feb 4, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
681 commits
Select commit Hold shift + click to select a range
439145f
feat: client github loads github info via messages
snobbee Jan 13, 2025
c5a4213
moved new action config github repo to client github folder and trigg…
snobbee Jan 13, 2025
ccb260e
feat: added new github info discovery loop and client stage
snobbee Jan 13, 2025
70dd356
refactor: re-enable all functions from github client
snobbee Jan 13, 2025
b0bb53e
Merge branch 'develop' into sif-dev
actions-user Jan 13, 2025
af13d2d
Merge branch 'develop' into sif-dev
actions-user Jan 13, 2025
4d990c4
Merge branch 'develop' into sif-dev
actions-user Jan 13, 2025
eb750a9
Merge branch 'develop' into sif-dev
actions-user Jan 13, 2025
40f5f74
Merge branch 'develop' into sif-dev
actions-user Jan 13, 2025
a8e2d8c
Merge branch 'develop' into sif-dev
actions-user Jan 14, 2025
515bb18
Merge branch 'develop' into sif-dev
actions-user Jan 14, 2025
d987189
Merge branch 'develop' into sif-dev
actions-user Jan 14, 2025
03a6ee4
Merge branch 'develop' into sif-dev
actions-user Jan 14, 2025
2e6ad61
feat: new repo init loop to github client
snobbee Jan 14, 2025
8608bb7
feat: interpolate issues and PRs to context and re-enabled actions in…
snobbee Jan 14, 2025
5f482a7
Merge branch 'develop' into sif-dev
actions-user Jan 14, 2025
2a935f2
Merge branch 'develop' into sif-dev
actions-user Jan 14, 2025
72cd6ca
Merge branch 'develop' into sif-dev
actions-user Jan 14, 2025
4331aa5
Merge branch 'develop' into sif-dev
actions-user Jan 14, 2025
6ffe932
Merge branch 'develop' into sif-dev
actions-user Jan 14, 2025
ea0dcea
feat: updated UI to load memories from agent every X seconds
snobbee Jan 14, 2025
c6fe243
Merge branch 'sif-dev' into feat/client-github-load-github-info-via-m…
snobbee Jan 14, 2025
cf01d4a
Merge branch 'develop' into sif-dev
actions-user Jan 14, 2025
90eaf77
Merge branch 'develop' into sif-dev
actions-user Jan 14, 2025
4fea7b8
Merge branch 'develop' into sif-dev
actions-user Jan 15, 2025
b8da057
Merge branch 'develop' into sif-dev
actions-user Jan 15, 2025
c7e8514
Merge branch 'develop' into sif-dev
actions-user Jan 15, 2025
8275a3b
Merge branch 'develop' into sif-dev
actions-user Jan 15, 2025
0b9e555
fix: conflicts
snobbee Jan 15, 2025
9cdee38
Merge branch 'sif-dev' into feat/client-github-load-github-info-via-m…
snobbee Jan 15, 2025
e94fae9
Merge branch 'develop' into sif-dev
actions-user Jan 15, 2025
d54b166
Merge branch 'develop' into sif-dev
actions-user Jan 15, 2025
7856254
Merge branch 'develop' into sif-dev
actions-user Jan 15, 2025
037f0b8
Merge branch 'develop' into sif-dev
actions-user Jan 15, 2025
20160d3
fix: agent
snobbee Jan 15, 2025
d5a8d5d
Merge branch 'sif-dev' into feat/client-github-load-github-info-via-m…
snobbee Jan 15, 2025
75158d7
docs: add github client guide to READEM
snobbee Jan 15, 2025
a05a0dd
Merge branch 'develop' into sif-dev
actions-user Jan 15, 2025
44563ff
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
6d609a9
Merge branch 'sif-dev' into feat/client-github-load-github-info-via-m…
monilpat Jan 16, 2025
3294420
Merge pull request #232 from Sifchain/feat/client-github-load-github-…
monilpat Jan 16, 2025
845a936
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
7e2eb64
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
98e6146
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
c4e97da
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
36262cd
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
c40abd1
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
408267c
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
8af9c83
chore: pnpm lock update
snobbee Jan 16, 2025
fecd306
docs: fix github client doc
snobbee Jan 16, 2025
32ded8c
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
fa9a872
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
28de3b6
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
2a53b55
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
b0c632c
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
4bb9fbb
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
a884686
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
6a74ac5
Merge branch 'develop' into sif-dev
actions-user Jan 16, 2025
53a22af
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
5a32121
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
439af30
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
73e9182
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
633028a
fix: agent onchain json condition issue
snobbee Jan 17, 2025
95d36bc
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
8771fb7
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
d219b3d
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
4359d74
feat: improve github client messages
snobbee Jan 17, 2025
248ceda
fix: previou issue/pr custom message
snobbee Jan 17, 2025
9788204
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
0cfa5cd
Merge branch 'sif-dev' into feat/improve-github-client-messages
monilpat Jan 17, 2025
2e0b3c5
Merge pull request #268 from Sifchain/feat/improve-github-client-mess…
monilpat Jan 17, 2025
31eec5f
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
e9ac8a1
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
2bd71bb
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
7dc4c1f
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
b8595b6
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
a4eb128
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
0c0ef5f
Merge branch 'develop' into sif-dev
actions-user Jan 17, 2025
3b2cba0
Merge branch 'sif-dev' of https://github.com/Sifchain/sa-eliza into c…
monilpat Jan 22, 2025
a8b41c6
update pnpm lockfile
monilpat Jan 22, 2025
076650a
update .env.example
monilpat Jan 22, 2025
2ebe195
get building
monilpat Jan 22, 2025
2c7fcd0
manually add latest changes
monilpat Jan 22, 2025
9dc7bfa
integrate remaining changes
monilpat Jan 22, 2025
b0cf991
update pnpm lockfile
monilpat Jan 22, 2025
0bd6627
disable on dry run
monilpat Jan 22, 2025
f9ae6c6
ci: add pull rebase rule
snobbee Jan 23, 2025
e518f44
Add 0G to the blockchain sector
tomguluson92 Jan 12, 2025
9c23d83
fix(plugin-depin): sentientAI description (#2668)
bodhi-crypo Jan 22, 2025
cb15827
Merge branch 'main' into sif-dev
actions-user Jan 23, 2025
7679345
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
18eeddb
chore: install deps
snobbee Jan 23, 2025
5c1f07e
chore: add missing deps
snobbee Jan 23, 2025
fb0ae9b
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
61d1def
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
1da28de
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
278cb0c
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
d5dbc98
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
2af8cf9
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
4a280c8
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
bd5b930
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
b14dd09
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
26c8461
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
4c220ca
Add files via upload
mihai169 Jan 23, 2025
855f0fd
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
ac8f56e
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
c45d87e
Add files via upload
mihai169 Jan 23, 2025
fb8f92d
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 23, 2025
5704686
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 23, 2025
eb3a018
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 23, 2025
6e059e3
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 23, 2025
c66361a
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 23, 2025
461114e
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
dd9e9c8
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
0fb04ea
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
117c17e
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
5521f15
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 23, 2025
9bdd375
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 23, 2025
b1e8222
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 23, 2025
ca4bbb7
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
fed9872
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
eb5c6a7
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
eb99681
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
c299ef6
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
0f60fbf
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
69487ce
remove hardcoded branch name
pgoos Jan 23, 2025
e8d3c1f
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
df611d6
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
9c61ca8
Merge branch 'sif-dev' into fix/remove-hardcoded-branch-name
snobbee Jan 23, 2025
a464e0d
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
b72824e
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
8eba3fe
Merge pull request #280 from Sifchain/fix/remove-hardcoded-branch-name
snobbee Jan 23, 2025
987116d
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 23, 2025
e6d8ab3
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 23, 2025
9217abb
feat: add stop action to github client and missing actions to template
snobbee Jan 23, 2025
89bebd3
Merge branch 'sif-dev' into feat/add-stop-action-to-github-client-and…
snobbee Jan 23, 2025
9e0a85a
refactor: PR review suggestions
snobbee Jan 23, 2025
af44faa
Merge pull request #281 from Sifchain/feat/add-stop-action-to-github-…
monilpat Jan 23, 2025
eb1bc6c
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
52bf6b0
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
ad94a1c
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
18e900f
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
05c63f4
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 23, 2025
baba5c5
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
9fe6fec
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
0d5c38a
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 23, 2025
3a5154e
Merge branch 'develop' into sif-dev
actions-user Jan 23, 2025
ed680e0
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 24, 2025
8a9f10e
Merge branch 'develop' into sif-dev
actions-user Jan 24, 2025
8b512cb
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 24, 2025
10dbc38
Merge branch 'develop' into sif-dev
actions-user Jan 24, 2025
26275cd
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 24, 2025
4e3aa15
Add files via upload
mihai169 Jan 24, 2025
f62bfd5
Add files via upload
mihai169 Jan 24, 2025
8602a7a
Add files via upload
mihai169 Jan 24, 2025
662605e
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 24, 2025
3d463d6
add uniswap dep
monilpat Jan 24, 2025
c3e49ac
add swap
monilpat Jan 24, 2025
0ecddc7
incorporate pnl
monilpat Jan 24, 2025
cd29e7d
github client multi user support
snobbee Jan 24, 2025
998dfdf
Merge branch 'sif-dev' into feat/github-client-multi-user-support
snobbee Jan 24, 2025
2c1bd3b
chore: update deps
snobbee Jan 24, 2025
c9ad7e2
Merge pull request #291 from Sifchain/feat/github-client-multi-user-s…
monilpat Jan 24, 2025
05757f4
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 24, 2025
d48462c
Merge branch 'develop' into sif-dev
actions-user Jan 24, 2025
30d49e1
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 24, 2025
0245b0a
Merge branch 'develop' into sif-dev
actions-user Jan 24, 2025
8c4c3f2
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 24, 2025
4486885
Merge branch 'develop' into sif-dev
actions-user Jan 24, 2025
55e68d2
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 24, 2025
9225507
Merge branch 'develop' into sif-dev
actions-user Jan 24, 2025
1227ec1
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 24, 2025
fdb01cb
Merge branch 'develop' into sif-dev
actions-user Jan 24, 2025
45d774a
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 24, 2025
909ab46
Merge branch 'develop' into sif-dev
actions-user Jan 24, 2025
64a6031
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 24, 2025
b376d12
Merge branch 'develop' into sif-dev
actions-user Jan 24, 2025
5f7ac63
fix: github plugin implement feature
snobbee Jan 24, 2025
1e73287
Merge branch 'sif-dev' into fix/github-plugin-implement-feature
snobbee Jan 24, 2025
f4a7163
Merge pull request #294 from Sifchain/fix/github-plugin-implement-fea…
snobbee Jan 24, 2025
cac47b2
implement feature default to main
snobbee Jan 24, 2025
1e8aa2b
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 24, 2025
6c58d4a
Merge branch 'develop' into sif-dev
actions-user Jan 24, 2025
dbfe582
Merge remote-tracking branch 'upstream/develop' into develop
actions-user Jan 24, 2025
cde0085
Merge branch 'develop' into sif-dev
actions-user Jan 24, 2025
c7d7c79
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 24, 2025
9e73ae9
feat: use unique room for each user session with github plugins and c…
snobbee Jan 24, 2025
e47b78c
Merge pull request #296 from Sifchain/feat/github-plugins-unique-rooms
monilpat Jan 24, 2025
a318634
Update AI_Agents_UI_Interface_Documentation.md
mihai169 Jan 24, 2025
79a5659
feat: add RS branding to UI
snobbee Jan 25, 2025
8da6ffa
Merge pull request #297 from Sifchain/feat/rs-branding-client
monilpat Jan 25, 2025
a1a233e
add commere clean up
monilpat Jan 25, 2025
065f5d9
update lockfile
monilpat Jan 25, 2025
2921d86
feat: get plugins working
monilpat Jan 26, 2025
0e87884
Merge pull request #301 from Sifchain/commerceCleanUp
monilpat Jan 26, 2025
f383c64
cleanup
monilpat Jan 26, 2025
ce9dcb0
Merge pull request #302 from Sifchain/cleanup
monilpat Jan 26, 2025
b078086
make 1 USD worth work for advanced trade
monilpat Jan 26, 2025
1e5d2bc
Merge pull request #303 from Sifchain/cleanup2
monilpat Jan 26, 2025
3ccc62d
feat: error messaging
monilpat Jan 26, 2025
fb35ef3
Merge pull request #304 from Sifchain/cleanup3
monilpat Jan 26, 2025
210e910
get usd based selling working
monilpat Jan 26, 2025
bd6fe08
Merge pull request #305 from Sifchain/cleanup4
monilpat Jan 26, 2025
e4f1dd2
remove characters from gitignore
monilpat Jan 28, 2025
c5f4752
Update prosper character file
monilpat Jan 28, 2025
b26f96d
Merge pull request #315 from Sifchain/addWIPProsperCharacterFile
monilpat Jan 28, 2025
82dce39
Merge branch 'sif-dev' of https://github.com/Sifchain/sa-eliza into c…
monilpat Jan 28, 2025
a019de6
fix advancedTrade merge
monilpat Jan 28, 2025
a734801
add pnl
monilpat Jan 28, 2025
cf6bc3d
testing
monilpat Jan 28, 2025
354b04d
debugging
monilpat Jan 28, 2025
48287c3
refactor to use aggregator instead of DEX on bASE use eliza 0x plugin…
monilpat Jan 29, 2025
b42cbbe
default to basemainnet
monilpat Jan 29, 2025
020451b
get simple case working temp disable wallet logic
monilpat Jan 29, 2025
f2f2dcf
Merge branch 'sif-dev' of https://github.com/Sifchain/sa-eliza into c…
monilpat Jan 31, 2025
43f24d4
updated pnpm lockfile
monilpat Jan 31, 2025
1c8939a
get it building post merge conflicts
monilpat Jan 31, 2025
a3a6ca6
show the txn and address on block explorer on tweet :)
monilpat Jan 31, 2025
e1ca371
calculate pnl using 0x
monilpat Jan 31, 2025
2627e85
don't trigger action
monilpat Jan 31, 2025
b0725f6
use the proper initial amount for the PNL calc
monilpat Jan 31, 2025
404739d
update dependencies
monilpat Jan 31, 2025
7c15843
Merge branch 'sif-dev' into coinbaseClient
snobbee Jan 31, 2025
8b9f58e
build: fix code conflicts and build issues
snobbee Jan 31, 2025
e77677c
remove in resolving merge conflicts :)
monilpat Feb 2, 2025
fe1da8d
update pnpm lockfile + fix compiler error
monilpat Feb 2, 2025
c25d2d5
get coinbase client running again after latest changes
monilpat Feb 2, 2025
8e764db
enable
monilpat Feb 2, 2025
1e8f5f9
only run client + remove callback as now needs to get called sequenti…
monilpat Feb 2, 2025
cf32d8c
get transaction created (getting reverted for some reason)
monilpat Feb 3, 2025
5cc7350
add logs
monilpat Feb 3, 2025
4233f95
don't go ahead with unsuccessful runs + fix tweet text
monilpat Feb 3, 2025
5742fbd
set up pnl calc using coinbase readContract instead as viem doesn't a…
monilpat Feb 3, 2025
c796614
get building
monilpat Feb 3, 2025
bab741f
add logging to see that issue with swap only quote and price looks right
monilpat Feb 3, 2025
f945817
clean up PR
monilpat Feb 3, 2025
0a792b5
Merge branch 'sif-dev' into coinbaseClient
monilpat Feb 3, 2025
0999816
fix typo
monilpat Feb 3, 2025
44baa99
testing changes
monilpat Feb 3, 2025
60e0a61
wip refactor
monilpat Feb 3, 2025
97a7a6e
fix: build issue and restructured some 0x and coinbase code to align …
snobbee Feb 3, 2025
a1f160b
fix: add missing changes
snobbee Feb 3, 2025
98adbfe
fix: add missing weth to metadata
snobbee Feb 3, 2025
a50b2c1
Merge branch 'sif-dev' of https://github.com/Sifchain/sa-eliza into c…
monilpat Feb 3, 2025
50e319a
remove hardcoded USDC contract address
monilpat Feb 3, 2025
a797fdb
working buy sell
monilpat Feb 4, 2025
845df13
get price in USD working
monilpat Feb 4, 2025
533cf76
Merge branch 'sif-dev' of https://github.com/Sifchain/sa-eliza into c…
monilpat Feb 4, 2025
ea1e96d
merge
monilpat Feb 4, 2025
f65dc42
update tweet
monilpat Feb 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
214 changes: 115 additions & 99 deletions packages/plugin-0x/src/actions/getIndicativePrice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -330,121 +330,137 @@ export const getPriceInquiry = async (
chain: string
): Promise<PriceInquiry | null> => {
try {
// Convert chain string to chainId
elizaLogger.info('inside of getPriceInquiry')
elizaLogger.info('sellTokenSymbol ', sellTokenSymbol);
elizaLogger.info('sellAmount ', sellAmount);
elizaLogger.info('buyTokenSymbol ', buyTokenSymbol);
elizaLogger.info('chain ', chain);
// Log input parameters
elizaLogger.info('Getting price inquiry', {
sellTokenSymbol,
sellAmount,
buyTokenSymbol,
chain
});

// Hardcoded chainId for Base network
const chainId = 8453;
elizaLogger.info('chainId ', chainId);
if (!chainId) {
elizaLogger.error('chainId is null');
return null;
}

// Get token metadata
const buyTokenMetadata = getTokenMetadata(buyTokenSymbol);
const sellTokenMetadata = getTokenMetadata(sellTokenSymbol);

const buyTokenMetadata = getTokenMetadata(buyTokenSymbol);
const sellTokenMetadata = getTokenMetadata(sellTokenSymbol);
elizaLogger.info('sellTokenMetadata ', JSON.stringify(sellTokenMetadata));
elizaLogger.info('buyTokenMetadata ', JSON.stringify(buyTokenMetadata));
if (!sellTokenMetadata || !buyTokenMetadata) {
elizaLogger.error('sellTokenMetadata or buyTokenMetadata is null');
elizaLogger.error('Invalid token metadata');
return null;
}

// elizaLogger.info("Getting indicative price for:", {
// sellToken: sellTokenMetadata,
// buyToken: buyTokenMetadata,
// amount: sellAmount,
// });

// Initialize 0x client
const zxClient = createClientV2({
apiKey: runtime.getSetting("ZERO_EX_API_KEY"),
});


// Convert sell amount to base units
const sellAmountBaseUnits = parseUnits(
sellAmount.toString(),
sellTokenMetadata.decimals
).toString();

// setup wallet client
const client = createWalletClient({
account: privateKeyToAccount(("0x" + runtime.getSetting("WALLET_PRIVATE_KEY")) as `0x${string}`),
chain: base,
transport: http(runtime.getSetting("ALCHEMY_HTTP_TRANSPORT_URL")),
}).extend(publicActions); // extend wallet client with publicActions for public client
elizaLogger.info('client ', JSON.stringify(client))
try {
const price = (await zxClient.swap.allowanceHolder.getPrice.query({
sellAmount: sellAmountBaseUnits,
sellToken: sellTokenMetadata.address,
buyToken: buyTokenMetadata.address,
chainId,
})) as GetIndicativePriceResponse;
elizaLogger.info('price ', JSON.stringify(price))
let sellTokenContract;
try {
sellTokenContract = getContract({
address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
abi: erc20Abi,
client: client as any,
});
elizaLogger.info('sellTokenContract ', JSON.stringify(sellTokenContract))
} catch (error) {
elizaLogger.info('error getting sellTokenContract ', JSON.stringify(error))
return null;
}
if (price.issues.allowance !== null) {
try {
const { request } = await (sellTokenContract as any).simulate.approve([
(price as any).issues.allowance.spender,
maxUint256,
]);
elizaLogger.info("Approving AllowanceHolder to spend sellTokenContract...", request);
// set approval
const hash = await (sellTokenContract as any).write.approve(request.args);
elizaLogger.info(
"Approved AllowanceHolder to spend sellTokenContract.",
await client.waitForTransactionReceipt({ hash })
);
} catch (error) {
elizaLogger.info("Error approving AllowanceHolder:", error);
}
} else {
elizaLogger.info("sellTokenContract already approved for AllowanceHolder");
}
// Setup wallet client
const client = createWalletClient({
account: privateKeyToAccount(("0x" + runtime.getSetting("WALLET_PRIVATE_KEY")) as `0x${string}`),
chain: base,
transport: http(runtime.getSetting("ALCHEMY_HTTP_TRANSPORT_URL")),
}).extend(publicActions);

// Get price quote
const price = await getPrice(zxClient, {
sellAmount: sellAmountBaseUnits,
sellToken: sellTokenMetadata.address,
buyToken: buyTokenMetadata.address,
chainId,
});

if (!price) return null;

// Handle token approvals
const approved = await handleTokenApprovals(client, price);
if (!approved) return null;

// Format response
const formattedAmounts = formatAmounts(price, buyTokenMetadata, sellTokenMetadata);
logFormattedResponse(formattedAmounts, chainId);

return {
sellTokenObject: sellTokenMetadata,
buyTokenObject: buyTokenMetadata,
sellAmountBaseUnits,
chainId,
timestamp: new Date().toISOString(),
};

// Format amounts to human-readable numbers
const buyAmount =
Number(price.buyAmount) /
Math.pow(10, buyTokenMetadata.decimals);
const sellAmount =
Number(price.sellAmount) /
Math.pow(10, sellTokenMetadata.decimals);
const formattedResponse = [
`💱 Swap Details:`,
`────────────────`,
`📤 Sell: ${sellAmount.toFixed(4)} ${sellTokenMetadata.symbol}`,
`📥 Buy: ${buyAmount.toFixed(4)} ${buyTokenMetadata.symbol}`,
`📊 Rate: 1 ${sellTokenMetadata.symbol} = ${(buyAmount / sellAmount).toFixed(4)} ${buyTokenMetadata.symbol}`,
`🔗 Chain: ${CHAIN_NAMES[chainId]}`,
`────────────────`,
].join("\n");
elizaLogger.info('formattedResponse ', formattedResponse)

return {
sellTokenObject: sellTokenMetadata,
buyTokenObject: buyTokenMetadata,
sellAmountBaseUnits,
chainId,
timestamp: new Date().toISOString(),
};
} catch (error) {
elizaLogger.error("Error getting price:", error.message);
return null;
}
} catch (error) {
elizaLogger.error("Error in getPriceInquiry:", error.message);
return null;
}
}
};

// Helper functions
const getPrice = async (zxClient: any, params: any): Promise<GetIndicativePriceResponse | null> => {
try {
const price = await zxClient.swap.allowanceHolder.getPrice.query(params) as GetIndicativePriceResponse;
elizaLogger.info('Received price quote', price);
return price;
} catch (error) {
elizaLogger.error("Error getting price:", error.message);
return null;
}
};

const handleTokenApprovals = async (client: any, price: GetIndicativePriceResponse): Promise<boolean> => {
try {
const sellTokenContract = getContract({
address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to remove this and pass in the sellToken address

abi: erc20Abi,
client: client as any,
});

if (price.issues.allowance !== null) {
const { request } = await (sellTokenContract as any).simulate.approve([
(price as any).issues.allowance.spender,
maxUint256,
]);

const hash = await (sellTokenContract as any).write.approve(request.args);
await client.waitForTransactionReceipt({ hash });
elizaLogger.info("Token approval successful");
}

return true;
} catch (error) {
elizaLogger.error("Error handling token approvals:", error);
return false;
}
};

const formatAmounts = (price: GetIndicativePriceResponse, buyTokenMetadata: any, sellTokenMetadata: any) => {
const buyAmount = Number(price.buyAmount) / Math.pow(10, buyTokenMetadata.decimals);
const sellAmount = Number(price.sellAmount) / Math.pow(10, sellTokenMetadata.decimals);

return {
buyAmount,
sellAmount,
rate: buyAmount / sellAmount,
buySymbol: buyTokenMetadata.symbol,
sellSymbol: sellTokenMetadata.symbol
};
};

const logFormattedResponse = (amounts: any, chainId: number) => {
const response = [
`💱 Swap Details:`,
`────────────────`,
`📤 Sell: ${amounts.sellAmount.toFixed(4)} ${amounts.sellSymbol}`,
`📥 Buy: ${amounts.buyAmount.toFixed(4)} ${amounts.buySymbol}`,
`📊 Rate: 1 ${amounts.sellSymbol} = ${amounts.rate.toFixed(4)} ${amounts.buySymbol}`,
`🔗 Chain: ${CHAIN_NAMES[chainId]}`,
`────────────────`,
].join("\n");

elizaLogger.info('Formatted response:', response);
};
9 changes: 9 additions & 0 deletions packages/plugin-0x/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,15 @@ export const TOKENS = {
type: "NATIVE",
logoURI: "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/base/info/logo.png"
},
WETH: {
chainId: 8453,
name: "Wrapped Ether",
symbol: "WETH",
decimals: 18,
address: "0x4200000000000000000000000000000000000006",
type: "ERC20",
logoURI: "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/base/info/logo.png"
},
USDC: {
chainId: 8453,
name: "USD coin",
Expand Down
Loading