Skip to content

Commit 3932be3

Browse files
authored
entity manager through core on dev (#11359)
1 parent e8eb855 commit 3932be3

File tree

21 files changed

+293
-101
lines changed

21 files changed

+293
-101
lines changed

dev-tools/compose/docker-compose.audiusd.yml

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ services:
33
container_name: audiusd
44
image: audius/audiusd:prerelease
55
restart: unless-stopped
6+
pull_policy: always
67
profiles:
78
- discovery
89
- storage

dev-tools/environment/audiusd-1.env

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ audius_db_url=postgres://postgres:postgres@localhost:5432/audius_discovery?sslmo
77
audius_discprov_url=http://audius-protocol-discovery-provider-1
88
runDownMigration="true"
99
rpcLaddr="tcp://0.0.0.0:26657"
10+
useHttpsForSdk=false

dev-tools/environment/audiusd-2.env

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ creatorNodeEndpoint=http://audius-protocol-creator-node-1
88
runDownMigration="true"
99
rpcLaddr="tcp://0.0.0.0:26657"
1010
externalAddress="audiusd-2:26656"
11+
useHttpsForSdk=false

dev-tools/environment/audiusd-3.env

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ creatorNodeEndpoint=http://audius-protocol-creator-node-2
88
runDownMigration="true"
99
rpcLaddr="tcp://0.0.0.0:26657"
1010
externalAddress="audiusd-3:26656"
11+
useHttpsForSdk=false

dev-tools/environment/audiusd-4.env

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ creatorNodeEndpoint=http://audius-protocol-creator-node-3
88
runDownMigration="true"
99
rpcLaddr="tcp://0.0.0.0:26657"
1010
externalAddress="audiusd-4:26656"
11+
useHttpsForSdk=false
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
begin;
2+
3+
alter table core_indexed_blocks
4+
add column if not exists em_block integer;
5+
6+
commit;

packages/discovery-provider/plugins/pedalboard/apps/relay/src/config/config.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ const readDotEnv = () => {
3939
}
4040

4141
const defaultCoreEndpoint = (env: string): string => {
42-
if (env === 'dev') return 'audiusd-1:50051'
43-
return 'core:50051'
42+
if (env === 'dev') return 'http://audiusd-1:50051'
43+
return 'http://core:50051'
4444
}
4545

4646
export const readConfig = (): Config => {

packages/discovery-provider/plugins/pedalboard/apps/relay/src/core-sdk/protocol_pb.ts

+20-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import type { Message } from "@bufbuild/protobuf";
1313
* Describes the file protocol.proto.
1414
*/
1515
export const file_protocol: GenFile = /*@__PURE__*/
16-
fileDesc("Cg5wcm90b2NvbC5wcm90bxIIcHJvdG9jb2wi3gMKEVNpZ25lZFRyYW5zYWN0aW9uEhEKCXNpZ25hdHVyZRgBIAEoCRISCgpyZXF1ZXN0X2lkGAIgASgJEiYKBXBsYXlzGOgHIAEoCzIULnByb3RvY29sLlRyYWNrUGxheXNIABJCChZ2YWxpZGF0b3JfcmVnaXN0cmF0aW9uGOkHIAEoCzIfLnByb3RvY29sLlZhbGlkYXRvclJlZ2lzdHJhdGlvbkgAEioKCnNsYV9yb2xsdXAY6gcgASgLMhMucHJvdG9jb2wuU2xhUm9sbHVwSAASNgoNbWFuYWdlX2VudGl0eRjrByABKAsyHC5wcm90b2NvbC5NYW5hZ2VFbnRpdHlMZWdhY3lIABJGChh2YWxpZGF0b3JfZGVyZWdpc3RyYXRpb24Y7AcgASgLMiEucHJvdG9jb2wuVmFsaWRhdG9yRGVyZWdpc3RyYXRpb25IABIwCg1zdG9yYWdlX3Byb29mGO0HIAEoCzIWLnByb3RvY29sLlN0b3JhZ2VQcm9vZkgAEkkKGnN0b3JhZ2VfcHJvb2ZfdmVyaWZpY2F0aW9uGO4HIAEoCzIiLnByb3RvY29sLlN0b3JhZ2VQcm9vZlZlcmlmaWNhdGlvbkgAQg0KC3RyYW5zYWN0aW9uIkoKFlNlbmRUcmFuc2FjdGlvblJlcXVlc3QSMAoLdHJhbnNhY3Rpb24YASABKAsyGy5wcm90b2NvbC5TaWduZWRUcmFuc2FjdGlvbiJgChlGb3J3YXJkVHJhbnNhY3Rpb25SZXF1ZXN0EhEKCXNpZ25hdHVyZRgBIAEoCRIwCgt0cmFuc2FjdGlvbhgCIAEoCzIbLnByb3RvY29sLlNpZ25lZFRyYW5zYWN0aW9uIicKFUdldFRyYW5zYWN0aW9uUmVxdWVzdBIOCgZ0eGhhc2gYASABKAkiVwoTVHJhbnNhY3Rpb25SZXNwb25zZRIOCgZ0eGhhc2gYASABKAkSMAoLdHJhbnNhY3Rpb24YAiABKAsyGy5wcm90b2NvbC5TaWduZWRUcmFuc2FjdGlvbiIcChpGb3J3YXJkVHJhbnNhY3Rpb25SZXNwb25zZSIhCg9HZXRCbG9ja1JlcXVlc3QSDgoGaGVpZ2h0GAEgASgDIs8BCg1CbG9ja1Jlc3BvbnNlEhEKCWJsb2NraGFzaBgBIAEoCRIPCgdjaGFpbmlkGAIgASgJEhAKCHByb3Bvc2VyGAMgASgJEg4KBmhlaWdodBgEIAEoAxIxCgx0cmFuc2FjdGlvbnMYBSADKAsyGy5wcm90b2NvbC5TaWduZWRUcmFuc2FjdGlvbhIWCg5jdXJyZW50X2hlaWdodBgGIAEoAxItCgl0aW1lc3RhbXAYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIhQKEkdldE5vZGVJbmZvUmVxdWVzdCJ3ChBOb2RlSW5mb1Jlc3BvbnNlEg8KB2NoYWluaWQYASABKAkSDgoGc3luY2VkGAIgASgIEhUKDWNvbWV0X2FkZHJlc3MYAyABKAkSEwoLZXRoX2FkZHJlc3MYBCABKAkSFgoOY3VycmVudF9oZWlnaHQYBSABKAMiMAoKVHJhY2tQbGF5cxIiCgVwbGF5cxgBIAMoCzITLnByb3RvY29sLlRyYWNrUGxheSKVAQoVVmFsaWRhdG9yUmVnaXN0cmF0aW9uEhAKCGVuZHBvaW50GAEgASgJEhUKDWNvbWV0X2FkZHJlc3MYAiABKAkSEQoJZXRoX2Jsb2NrGAMgASgJEhEKCW5vZGVfdHlwZRgEIAEoCRINCgVzcF9pZBgFIAEoCRIPCgdwdWJfa2V5GAYgASgMEg0KBXBvd2VyGAcgASgDIkEKF1ZhbGlkYXRvckRlcmVnaXN0cmF0aW9uEhUKDWNvbWV0X2FkZHJlc3MYASABKAkSDwoHcHViX2tleRgCIAEoDCKfAQoJVHJhY2tQbGF5Eg8KB3VzZXJfaWQYASABKAkSEAoIdHJhY2tfaWQYAiABKAkSLQoJdGltZXN0YW1wGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglzaWduYXR1cmUYBCABKAkSDAoEY2l0eRgFIAEoCRIOCgZyZWdpb24YBiABKAkSDwoHY291bnRyeRgHIAEoCSINCgtQaW5nUmVxdWVzdCIfCgxQaW5nUmVzcG9uc2USDwoHbWVzc2FnZRgBIAEoCSKMAQoJU2xhUm9sbHVwEi0KCXRpbWVzdGFtcBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLYmxvY2tfc3RhcnQYAiABKAMSEQoJYmxvY2tfZW5kGAMgASgDEigKB3JlcG9ydHMYBCADKAsyFy5wcm90b2NvbC5TbGFOb2RlUmVwb3J0Ij0KDVNsYU5vZGVSZXBvcnQSDwoHYWRkcmVzcxgBIAEoCRIbChNudW1fYmxvY2tzX3Byb3Bvc2VkGAIgASgFIm8KDFN0b3JhZ2VQcm9vZhIOCgZoZWlnaHQYASABKAMSDwoHYWRkcmVzcxgCIAEoCRIYChBwcm92ZXJfYWRkcmVzc2VzGAMgAygJEgsKA2NpZBgEIAEoCRIXCg9wcm9vZl9zaWduYXR1cmUYBSABKAwiOQoYU3RvcmFnZVByb29mVmVyaWZpY2F0aW9uEg4KBmhlaWdodBgBIAEoAxINCgVwcm9vZhgCIAEoDCKhAQoSTWFuYWdlRW50aXR5TGVnYWN5Eg8KB3VzZXJfaWQYASABKAMSEwoLZW50aXR5X3R5cGUYAiABKAkSEQoJZW50aXR5X2lkGAMgASgDEg4KBmFjdGlvbhgEIAEoCRIQCghtZXRhZGF0YRgFIAEoCRIRCglzaWduYXR1cmUYBiABKAkSDgoGc2lnbmVyGAcgASgJEg0KBW5vbmNlGAggASgDMrcFCghQcm90b2NvbBJ/Cg9TZW5kVHJhbnNhY3Rpb24SIC5wcm90b2NvbC5TZW5kVHJhbnNhY3Rpb25SZXF1ZXN0Gh0ucHJvdG9jb2wuVHJhbnNhY3Rpb25SZXNwb25zZSIrgtPkkwIlOgt0cmFuc2FjdGlvbiIWL2NvcmUvZ3JwYy90cmFuc2FjdGlvbhKUAQoSRm9yd2FyZFRyYW5zYWN0aW9uEiMucHJvdG9jb2wuRm9yd2FyZFRyYW5zYWN0aW9uUmVxdWVzdBokLnByb3RvY29sLkZvcndhcmRUcmFuc2FjdGlvblJlc3BvbnNlIjOC0+STAi06C3RyYW5zYWN0aW9uIh4vY29yZS9ncnBjL3RyYW5zYWN0aW9uL2ZvcndhcmQSeQoOR2V0VHJhbnNhY3Rpb24SHy5wcm90b2NvbC5HZXRUcmFuc2FjdGlvblJlcXVlc3QaHS5wcm90b2NvbC5UcmFuc2FjdGlvblJlc3BvbnNlIieC0+STAiESHy9jb3JlL2dycGMvdHJhbnNhY3Rpb24ve3R4aGFzaH0SYQoIR2V0QmxvY2sSGS5wcm90b2NvbC5HZXRCbG9ja1JlcXVlc3QaFy5wcm90b2NvbC5CbG9ja1Jlc3BvbnNlIiGC0+STAhsSGS9jb3JlL2dycGMvYmxvY2sve2hlaWdodH0SZQoLR2V0Tm9kZUluZm8SHC5wcm90b2NvbC5HZXROb2RlSW5mb1JlcXVlc3QaGi5wcm90b2NvbC5Ob2RlSW5mb1Jlc3BvbnNlIhyC0+STAhYSFC9jb3JlL2dycGMvbm9kZV9pbmZvEk4KBFBpbmcSFS5wcm90b2NvbC5QaW5nUmVxdWVzdBoWLnByb3RvY29sLlBpbmdSZXNwb25zZSIXgtPkkwIREg8vY29yZS9ncnBjL3BpbmdCGVoXLi9jb3JlX3Byb3RvO2NvcmVfcHJvdG9iBnByb3RvMw", [file_google_api_annotations, file_google_protobuf_timestamp]);
16+
fileDesc("Cg5wcm90b2NvbC5wcm90bxIIcHJvdG9jb2wi3gMKEVNpZ25lZFRyYW5zYWN0aW9uEhEKCXNpZ25hdHVyZRgBIAEoCRISCgpyZXF1ZXN0X2lkGAIgASgJEiYKBXBsYXlzGOgHIAEoCzIULnByb3RvY29sLlRyYWNrUGxheXNIABJCChZ2YWxpZGF0b3JfcmVnaXN0cmF0aW9uGOkHIAEoCzIfLnByb3RvY29sLlZhbGlkYXRvclJlZ2lzdHJhdGlvbkgAEioKCnNsYV9yb2xsdXAY6gcgASgLMhMucHJvdG9jb2wuU2xhUm9sbHVwSAASNgoNbWFuYWdlX2VudGl0eRjrByABKAsyHC5wcm90b2NvbC5NYW5hZ2VFbnRpdHlMZWdhY3lIABJGChh2YWxpZGF0b3JfZGVyZWdpc3RyYXRpb24Y7AcgASgLMiEucHJvdG9jb2wuVmFsaWRhdG9yRGVyZWdpc3RyYXRpb25IABIwCg1zdG9yYWdlX3Byb29mGO0HIAEoCzIWLnByb3RvY29sLlN0b3JhZ2VQcm9vZkgAEkkKGnN0b3JhZ2VfcHJvb2ZfdmVyaWZpY2F0aW9uGO4HIAEoCzIiLnByb3RvY29sLlN0b3JhZ2VQcm9vZlZlcmlmaWNhdGlvbkgAQg0KC3RyYW5zYWN0aW9uIkoKFlNlbmRUcmFuc2FjdGlvblJlcXVlc3QSMAoLdHJhbnNhY3Rpb24YASABKAsyGy5wcm90b2NvbC5TaWduZWRUcmFuc2FjdGlvbiJgChlGb3J3YXJkVHJhbnNhY3Rpb25SZXF1ZXN0EhEKCXNpZ25hdHVyZRgBIAEoCRIwCgt0cmFuc2FjdGlvbhgCIAEoCzIbLnByb3RvY29sLlNpZ25lZFRyYW5zYWN0aW9uIicKFUdldFRyYW5zYWN0aW9uUmVxdWVzdBIOCgZ0eGhhc2gYASABKAkigQEKE1RyYW5zYWN0aW9uUmVzcG9uc2USDgoGdHhoYXNoGAEgASgJEjAKC3RyYW5zYWN0aW9uGAIgASgLMhsucHJvdG9jb2wuU2lnbmVkVHJhbnNhY3Rpb24SFAoMYmxvY2tfaGVpZ2h0GAMgASgDEhIKCmJsb2NrX2hhc2gYBCABKAkiHAoaRm9yd2FyZFRyYW5zYWN0aW9uUmVzcG9uc2UiIQoPR2V0QmxvY2tSZXF1ZXN0Eg4KBmhlaWdodBgBIAEoAyKNAgoNQmxvY2tSZXNwb25zZRIRCglibG9ja2hhc2gYASABKAkSDwoHY2hhaW5pZBgCIAEoCRIQCghwcm9wb3NlchgDIAEoCRIOCgZoZWlnaHQYBCABKAMSMQoMdHJhbnNhY3Rpb25zGAUgAygLMhsucHJvdG9jb2wuU2lnbmVkVHJhbnNhY3Rpb24SFgoOY3VycmVudF9oZWlnaHQYBiABKAMSLQoJdGltZXN0YW1wGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI8ChV0cmFuc2FjdGlvbl9yZXNwb25zZXMYCCADKAsyHS5wcm90b2NvbC5UcmFuc2FjdGlvblJlc3BvbnNlIhQKEkdldE5vZGVJbmZvUmVxdWVzdCJ3ChBOb2RlSW5mb1Jlc3BvbnNlEg8KB2NoYWluaWQYASABKAkSDgoGc3luY2VkGAIgASgIEhUKDWNvbWV0X2FkZHJlc3MYAyABKAkSEwoLZXRoX2FkZHJlc3MYBCABKAkSFgoOY3VycmVudF9oZWlnaHQYBSABKAMiMAoKVHJhY2tQbGF5cxIiCgVwbGF5cxgBIAMoCzITLnByb3RvY29sLlRyYWNrUGxheSKVAQoVVmFsaWRhdG9yUmVnaXN0cmF0aW9uEhAKCGVuZHBvaW50GAEgASgJEhUKDWNvbWV0X2FkZHJlc3MYAiABKAkSEQoJZXRoX2Jsb2NrGAMgASgJEhEKCW5vZGVfdHlwZRgEIAEoCRINCgVzcF9pZBgFIAEoCRIPCgdwdWJfa2V5GAYgASgMEg0KBXBvd2VyGAcgASgDIkEKF1ZhbGlkYXRvckRlcmVnaXN0cmF0aW9uEhUKDWNvbWV0X2FkZHJlc3MYASABKAkSDwoHcHViX2tleRgCIAEoDCKfAQoJVHJhY2tQbGF5Eg8KB3VzZXJfaWQYASABKAkSEAoIdHJhY2tfaWQYAiABKAkSLQoJdGltZXN0YW1wGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCglzaWduYXR1cmUYBCABKAkSDAoEY2l0eRgFIAEoCRIOCgZyZWdpb24YBiABKAkSDwoHY291bnRyeRgHIAEoCSINCgtQaW5nUmVxdWVzdCIfCgxQaW5nUmVzcG9uc2USDwoHbWVzc2FnZRgBIAEoCSKMAQoJU2xhUm9sbHVwEi0KCXRpbWVzdGFtcBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLYmxvY2tfc3RhcnQYAiABKAMSEQoJYmxvY2tfZW5kGAMgASgDEigKB3JlcG9ydHMYBCADKAsyFy5wcm90b2NvbC5TbGFOb2RlUmVwb3J0Ij0KDVNsYU5vZGVSZXBvcnQSDwoHYWRkcmVzcxgBIAEoCRIbChNudW1fYmxvY2tzX3Byb3Bvc2VkGAIgASgFIm8KDFN0b3JhZ2VQcm9vZhIOCgZoZWlnaHQYASABKAMSDwoHYWRkcmVzcxgCIAEoCRIYChBwcm92ZXJfYWRkcmVzc2VzGAMgAygJEgsKA2NpZBgEIAEoCRIXCg9wcm9vZl9zaWduYXR1cmUYBSABKAwiOQoYU3RvcmFnZVByb29mVmVyaWZpY2F0aW9uEg4KBmhlaWdodBgBIAEoAxINCgVwcm9vZhgCIAEoDCKhAQoSTWFuYWdlRW50aXR5TGVnYWN5Eg8KB3VzZXJfaWQYASABKAMSEwoLZW50aXR5X3R5cGUYAiABKAkSEQoJZW50aXR5X2lkGAMgASgDEg4KBmFjdGlvbhgEIAEoCRIQCghtZXRhZGF0YRgFIAEoCRIRCglzaWduYXR1cmUYBiABKAkSDgoGc2lnbmVyGAcgASgJEg0KBW5vbmNlGAggASgJMrcFCghQcm90b2NvbBJ/Cg9TZW5kVHJhbnNhY3Rpb24SIC5wcm90b2NvbC5TZW5kVHJhbnNhY3Rpb25SZXF1ZXN0Gh0ucHJvdG9jb2wuVHJhbnNhY3Rpb25SZXNwb25zZSIrgtPkkwIlOgt0cmFuc2FjdGlvbiIWL2NvcmUvZ3JwYy90cmFuc2FjdGlvbhKUAQoSRm9yd2FyZFRyYW5zYWN0aW9uEiMucHJvdG9jb2wuRm9yd2FyZFRyYW5zYWN0aW9uUmVxdWVzdBokLnByb3RvY29sLkZvcndhcmRUcmFuc2FjdGlvblJlc3BvbnNlIjOC0+STAi06C3RyYW5zYWN0aW9uIh4vY29yZS9ncnBjL3RyYW5zYWN0aW9uL2ZvcndhcmQSeQoOR2V0VHJhbnNhY3Rpb24SHy5wcm90b2NvbC5HZXRUcmFuc2FjdGlvblJlcXVlc3QaHS5wcm90b2NvbC5UcmFuc2FjdGlvblJlc3BvbnNlIieC0+STAiESHy9jb3JlL2dycGMvdHJhbnNhY3Rpb24ve3R4aGFzaH0SYQoIR2V0QmxvY2sSGS5wcm90b2NvbC5HZXRCbG9ja1JlcXVlc3QaFy5wcm90b2NvbC5CbG9ja1Jlc3BvbnNlIiGC0+STAhsSGS9jb3JlL2dycGMvYmxvY2sve2hlaWdodH0SZQoLR2V0Tm9kZUluZm8SHC5wcm90b2NvbC5HZXROb2RlSW5mb1JlcXVlc3QaGi5wcm90b2NvbC5Ob2RlSW5mb1Jlc3BvbnNlIhyC0+STAhYSFC9jb3JlL2dycGMvbm9kZV9pbmZvEk4KBFBpbmcSFS5wcm90b2NvbC5QaW5nUmVxdWVzdBoWLnByb3RvY29sLlBpbmdSZXNwb25zZSIXgtPkkwIREg8vY29yZS9ncnBjL3BpbmdCGVoXLi9jb3JlX3Byb3RvO2NvcmVfcHJvdG9iBnByb3RvMw", [file_google_api_annotations, file_google_protobuf_timestamp]);
1717

1818
/**
1919
* @generated from message protocol.SignedTransaction
@@ -153,6 +153,16 @@ export type TransactionResponse = Message<"protocol.TransactionResponse"> & {
153153
* @generated from field: protocol.SignedTransaction transaction = 2;
154154
*/
155155
transaction?: SignedTransaction;
156+
157+
/**
158+
* @generated from field: int64 block_height = 3;
159+
*/
160+
blockHeight: bigint;
161+
162+
/**
163+
* @generated from field: string block_hash = 4;
164+
*/
165+
blockHash: string;
156166
};
157167

158168
/**
@@ -217,6 +227,8 @@ export type BlockResponse = Message<"protocol.BlockResponse"> & {
217227
height: bigint;
218228

219229
/**
230+
* TODO: deprecate in favor of txs
231+
*
220232
* @generated from field: repeated protocol.SignedTransaction transactions = 5;
221233
*/
222234
transactions: SignedTransaction[];
@@ -230,6 +242,11 @@ export type BlockResponse = Message<"protocol.BlockResponse"> & {
230242
* @generated from field: google.protobuf.Timestamp timestamp = 7;
231243
*/
232244
timestamp?: Timestamp;
245+
246+
/**
247+
* @generated from field: repeated protocol.TransactionResponse transaction_responses = 8;
248+
*/
249+
transactionResponses: TransactionResponse[];
233250
};
234251

235252
/**
@@ -605,9 +622,9 @@ export type ManageEntityLegacy = Message<"protocol.ManageEntityLegacy"> & {
605622
signer: string;
606623

607624
/**
608-
* @generated from field: int64 nonce = 8;
625+
* @generated from field: string nonce = 8;
609626
*/
610-
nonce: bigint;
627+
nonce: string;
611628
};
612629

613630
/**

packages/discovery-provider/plugins/pedalboard/apps/relay/src/coreRelay.ts

+31-7
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,21 @@ import { ValidatedRelayRequest } from './types/relay'
1212
import * as grpc from '@grpc/grpc-js'
1313
import { readConfig } from './config/config.js'
1414
import pino from 'pino'
15+
import { TransactionReceipt } from 'web3-core'
1516

1617
let client: Client<typeof Protocol> | null = null
1718

19+
type CoreRelayResponse = {
20+
txhash: string
21+
block: bigint
22+
blockhash: string
23+
}
24+
1825
export const coreRelay = async (
1926
logger: pino.Logger,
2027
requestId: string,
2128
request: ValidatedRelayRequest
22-
) => {
29+
): Promise<TransactionReceipt | null> => {
2330
try {
2431
if (client === null) {
2532
const config = readConfig()
@@ -38,16 +45,16 @@ export const coreRelay = async (
3845
entityType,
3946
action,
4047
metadata: metadataAny,
41-
subjectSig
42-
// nonce: nonceBytes
48+
subjectSig,
49+
nonce: nonceBytes
4350
} = decodeAbi(encodedABI)
4451

4552
const signer = request.senderAddress
4653
const userId = BigInt(userIdBig.toString())
4754
const entityId = BigInt(entityIdBig.toString())
48-
const metadata = JSON.stringify(metadataAny)
55+
const metadata = metadataAny as string
4956
const signature = ethers.utils.hexlify(subjectSig)
50-
// const nonce = ethers.utils.hexlify(nonceBytes)
57+
const nonce = ethers.utils.hexlify(nonceBytes)
5158

5259
const manageEntity = create(ManageEntityLegacySchema, {
5360
userId,
@@ -57,7 +64,7 @@ export const coreRelay = async (
5764
metadata,
5865
signature,
5966
signer,
60-
nonce: BigInt(1),
67+
nonce,
6168
})
6269

6370
const signedTransaction = create(SignedTransactionSchema, {
@@ -77,11 +84,28 @@ export const coreRelay = async (
7784
logger.info(
7885
{
7986
tx: transaction,
80-
txhash: txhash
87+
txhash: txhash,
88+
block: res.blockHeight,
89+
blockhash: res.blockHash
8190
},
8291
'core relay success'
8392
)
93+
return {
94+
status: true,
95+
transactionHash: txhash,
96+
transactionIndex: 0,
97+
blockHash: res.blockHash,
98+
blockNumber: Number(res.blockHeight),
99+
from: signer || "",
100+
to: signer || "",
101+
cumulativeGasUsed: 10,
102+
gasUsed: 10,
103+
effectiveGasPrice: 420,
104+
logs: [],
105+
logsBloom: ""
106+
}
84107
} catch (e) {
85108
logger.error({ err: e }, 'core relay failure:')
109+
return null
86110
}
87111
}

packages/discovery-provider/plugins/pedalboard/apps/relay/src/redis.ts

+13
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,16 @@ export const readAAOState = async (
5151
return null
5252
}
5353
}
54+
55+
export const getCoreIndexerHealth = async (): Promise<any | null> => {
56+
try {
57+
const cacheKey = "core:indexer:health"
58+
const redis = await getRedisConnection()
59+
const cacheValue = await redis.get(cacheKey)
60+
if (cacheValue === null) return null
61+
return JSON.parse(cacheValue)
62+
} catch (e) {
63+
logger.error({ err: e }, 'could not read core health state')
64+
return null
65+
}
66+
}

packages/discovery-provider/plugins/pedalboard/apps/relay/src/txRelay.ts

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { config, wallets, web3 } from '.'
22
import { coreRelay } from './coreRelay'
33
import { internalError } from './error'
4+
import { getCoreIndexerHealth } from './redis'
45
import { retryPromise } from './utils'
56
import { confirm } from './web3'
67
import {
@@ -29,7 +30,17 @@ export const relayTransaction = async (
2930
let submit = undefined
3031
try {
3132
if (config.environment === "dev") {
32-
coreRelay(logger, requestId, validatedRelayRequest)
33+
const coreHealth = await getCoreIndexerHealth()
34+
logger.info({ coreHealth }, "core health from redis")
35+
const receipt = await coreRelay(logger, requestId, validatedRelayRequest)
36+
const indexingEntityManager = coreHealth?.indexing_entity_manager
37+
logger.info({ indexingEntityManager }, "indexing em")
38+
if (indexingEntityManager) {
39+
logger.info({ receipt }, "sending back")
40+
res.send({ receipt })
41+
next()
42+
return
43+
}
3344
}
3445

3546
// gather some transaction params

packages/discovery-provider/src/app.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,8 @@ def __init__(self, *args, **kwargs):
528528
# Start tasks that should fire upon startup
529529
celery.send_task("cache_current_nodes")
530530
celery.send_task("cache_entity_counts")
531-
celery.send_task("index_nethermind", queue="index_nethermind")
531+
if environment != "dev":
532+
celery.send_task("index_nethermind", queue="index_nethermind")
532533
celery.send_task("index_rewards_manager", queue="index_sol")
533534
celery.send_task("index_user_bank", queue="index_sol")
534535
celery.send_task("index_payment_router", queue="index_sol")

packages/discovery-provider/src/models/core/core_indexed_blocks.py

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class CoreIndexedBlocks(Base):
1313
chain_id = Column(Text, nullable=False)
1414
height = Column(Integer, nullable=False)
1515
plays_slot = Column(Integer)
16+
em_block = Column(Integer)
1617

1718
# Set composite primary key
1819
__table_args__ = (

0 commit comments

Comments
 (0)