graphprotocol / allocation-optimizer

Agents and algorithms for optimizing Indexer decision problems.
MIT License
14 stars 13 forks source link

Failing to execute strategy when in ActionQueue execution mode #39

Closed fordN closed 1 year ago

fordN commented 1 year ago

When running the optimizer in actionQueue mode I run into the following error. I had no issues in rules mode.

ERROR: MethodError: no method matching unallocate_action(::Val{:actionQueue}, ::TypedTables.FlexTable{1}, ::TypedTables.FlexTable{1}, ::Dict{String, Any})
Closest candidates are:
  unallocate_action(::Val{:rules}, ::TypedTables.FlexTable, ::TypedTables.FlexTable, ::AbstractDict) at ~/thegraph/workspaces/allocation-optimizer/src/reporting.jl:262
  unallocate_action(::Val{:actionqueue}, ::TypedTables.FlexTable, ::TypedTables.FlexTable, ::AbstractDict) at ~/thegraph/workspaces/allocation-optimizer/src/reporting.jl:403
  unallocate_action(::Val{:none}, ::Any, ::Any, ::Any) at ~/thegraph/workspaces/allocation-optimizer/src/reporting.jl:201
Stacktrace:
 [1] execute(a::TypedTables.FlexTable{1}, ix::Int64, s::TypedTables.FlexTable{1}, xs::Matrix{Float64}, ps::Matrix{Float64}, config::Dict{String, Any})
   @ AllocationOpt ~/thegraph/workspaces/allocation-optimizer/src/reporting.jl:570
 [2] main(config::Dict{String, Any})
   @ AllocationOpt ~/thegraph/workspaces/allocation-optimizer/app/lib/julia/sys.dylib:-1
 [3] julia_main()
   @ AllocationOpt ~/thegraph/workspaces/allocation-optimizer/app/lib/julia/sys.dylib:-1
 [4] top-level scope
   @ none:1

I'm using the latest indexer software (main branch) and the following allocation-optimizer config.

id = "0xc81dfe96d36b438f1430d7299901b6ec3b52ae1d"
writedir = "data"
network_subgraph_endpoint = "https://api.thegraph.com/subgraphs/name/graphprotocol/graph-network-mainnet"
max_allocations = 25
whitelist = []
blacklist = [
    "QmNoe4VQFSKAC3uiq48UQASg4QeqFVSKYYGwnxNjNi6GYX",
    "QmW2GgSemNZ5tD3XfGriv25hNjv1JfGkWmPq5boByxQY9q",
    "QmYUcrn9S1cuSZQGomLRyn8GbNHmX8viqxMykP8kKpghz6",
    "QmUVskWrz1ZiQZ76AtyhcfFDEH1ELnRpoyEhVL8p6NFTbR",
    "QmRSZsEDh6WqtqtFUJdSM9AppDu33pYvz5GGtLXFUhgX3b",
    "Qmadj8x9km1YEyKmRnJ6EkC2zpJZFCfTyTZpuqC3j6e1QH",
    "QmNRkaVUwUQAwPwWgdQHYvw53A5gh3CP3giWnWQZdA2BTE",
    "QmTBxvMF6YnbT1eYeRx9XQpH4WvxTV53vdptCCZFiZSprg",
    "QmcKFhdu1pM4ycFmqiYV6XJv3tC9UDmBRQyZ5FsAtgAQnX",
    "QmcPHxcC2ZN7m79XfYZ77YmF4t9UCErv87a9NFKrSLWKtJ",
    "QmWkVS3Uzr2WsTwvxtte2dpHbSYJSQ1bTQMVciKXCWx7TM",
    "QmcBSr5R3K2M5tk8qeHFaX8pxAhdViYhcKD8ZegYuTcUhC",
    "QmT2Y7SHXGRt7EKXzFPYMjnrgX64PQr86EjbsHoDLNzwLy",
    "QmXT4PhR9pwAUqkxg6tgqR8xWUsTYN7V8UgmqhrrimcqXf",
    "QmNTCN1KfEFGRdeEdvAXAxTogxuko8QiyGxykUBzcuFPH6",
    "QmNbRu8KkhZAjQJB9uziYqeRFE7UVKBjSGZQ9E5zrjzvso",
    "QmPTB2AcqkvcFvjgEzePfNFKbmaeJoVuh294nEA5pCWHYA",
    "QmPVD4r9qA5yN6RyFeDHPoiwWm9wEYoHMDQfYvVLTaCnuE",
    "QmPt9BqZFvWS41FFcUohkaZ1ZiToJfCwAYvFMknNa9kgcz",
    "QmPxi9kc9syEnCTNAQ5cnHqYMk5UTqc1twnzJvnUMrqAHc",
    "QmQnYvyMHph78WzySWZ6DrFQQfQoxDyFx3y9b5bbb3FdjZ",
    "QmSVcqmXU7iYqZv9pu3uH3hUyLP6EtMutoMdiVEUv6HTmk",
    "QmSjGmndTgvJYw4zqQYmWkVSG7dunEsiQaCtCqdc2kb6ee",
    "QmT2Y7SHXGRt7EKXzFPYMjnrgX64PQr86EjbsHoDLNzwLy",
    "QmTo8bBUDSH3pvYePcBMQTCdQSH5U5eSVJzR1tM9sRXzHx",
    "QmUGRJSXZ3r6WSVUauwxjJm8ELEFDRRUszsNSVcimmBKUq",
    "QmUgxaBzQrPMFfoQgVSKoh5HQoPvjMJJJ4AVQQvH9kvs2U",
    "QmVU1UepDrbMnA7Xkztv5xL7NBduD6oxhZpThFNkpttxZq",
    "QmWiFjHuEzoKk6GkgUWvUHo6bCwqAZwYWPAw6VyG5vtTwQ",
    "QmWprzFS3Y6TYUzPr52G1yXPJGVLMa1NjeTzzGnm61sXY5",
    "QmXMVgNEJ32tKU8S8F51YSyKTLxB9wZZWc8d878JQg5evZ",
    "QmXRcHPhdTdV4efBCRnkANt3mwPqy61r62GNgAYN9MURgr",
    "QmXT4PhR9pwAUqkxg6tgqR8xWUsTYN7V8UgmqhrrimcqXf",
    "QmXuMojFeSY6JdLNapkHQ6BDPRT6WePd9ruA5Jy8sy3nYa",
    "QmXwaCxHh2qgHND7w51bLQJ41x6y5AHTzbAU5n3Yhcb7jt",
    "QmYHi9FfVSSNwRw3XmSEGZFfSJrrV57CauGpXBXc63s3er",
    "QmZz1qRApELxp97cuAHJjDkQwehH9TwBuqmpakt6fQDu5c",
    "QmbDmyGzNwWF7bcc6YhXP9vCmS8VBBdLfrq37JePa5dkHT",
    "Qmbp3yDXBKu7R8UZUx4PGo851Yr2fxckcj4yrDxEeZsxNK",
    "Qmbp3yDXBKu7R8UZUx4PGo851Yr2fxckcj4yrDxEeZsxNL",
    "Qmc2xESmqQRcSK9sBb7gmVmem9nkh2WQQ5GKNsU852twoF",
    "QmdmhuchgGvbD4sScy6etafQ4gNkamnTJbQD9kvNvmvzZe",
    "QmdoCBPnZJHEWdn3KhQ3tTRJyARpZcaehMjnEdW3Ef8XQh",
    "QmRfdq39nB2iUeknKKByBAEUaXh13eYXHJBcR2X4348Ej6"
]
frozenlist = []
pinnedlist = []
allocation_lifetime = 28
gas = 100
min_signal = 1000
verbose = true
num_reported_options = 5
execution_mode = "rules"
indexer_url = "http://localhost:6701/"
opt_mode = "optimal"
hopeyen commented 1 year ago

Thanks Ford! the above error was solved by changing the config input to use actionqueue as specified in the docs (instead of actionQueue)

We can make UI improvements by validating all the fields in the provided config before running the optimizer

fordN commented 1 year ago

It was indeed not a bug, but a configuration issue on my end! Thanks for help resolving quickly!