Skip to content
Merged
Show file tree
Hide file tree
Changes from 236 commits
Commits
Show all changes
258 commits
Select commit Hold shift + click to select a range
57fc2ed
update pnpm lock again
kyzooghost Oct 20, 2025
420c510
first structure for ny operations
kyzooghost Oct 20, 2025
96d5be3
did config for cronjob
kyzooghost Oct 20, 2025
6812fde
new logic for trigger env
kyzooghost Oct 20, 2025
bea4c69
new clients
kyzooghost Oct 21, 2025
460aaa0
first version for YieldManagerContractClient
kyzooghost Oct 21, 2025
b21a724
created toResultAsync
kyzooghost Oct 21, 2025
642005d
first iteration for selectOperationMode
kyzooghost Oct 21, 2025
92f4927
wrote first mutator fn
kyzooghost Oct 21, 2025
75c5a42
did sendSignedTransaction
kyzooghost Oct 21, 2025
852e74e
did yieldmanagercontractclient
kyzooghost Oct 21, 2025
6c85a01
did LineaRollupYieldExtensionContractClient
kyzooghost Oct 21, 2025
430e0ed
first commit for YieldReportingOperationModeProcessor
kyzooghost Oct 21, 2025
71ce3c3
did poll logic
kyzooghost Oct 21, 2025
beb60f5
expose poll
kyzooghost Oct 21, 2025
bf0ec32
change back to process
kyzooghost Oct 21, 2025
0081c39
waitForVaultsReportDataUpdatedEvent fn
kyzooghost Oct 22, 2025
1209368
did getRebalanceRequirements
kyzooghost Oct 22, 2025
f03b6cd
did simulateSubmitLatestVaultReport
kyzooghost Oct 22, 2025
e2b8654
first draft for YieldReportingOperationModeProcessor
kyzooghost Oct 22, 2025
2f89f0f
did first draft for all mode processors
kyzooghost Oct 22, 2025
21077b1
fixed ts-libs imports
kyzooghost Oct 22, 2025
5446e14
wrote OAuth2TokenService
kyzooghost Oct 22, 2025
f747410
create ConsensysStakingGraphQLClient
kyzooghost Oct 22, 2025
0331455
more service to client
kyzooghost Oct 22, 2025
cd171a2
more service to client
kyzooghost Oct 22, 2025
5acb105
created BeaconNodeApiClient
kyzooghost Oct 22, 2025
8299da9
fix linea-shared-utils index
kyzooghost Oct 22, 2025
b98ddc7
did getTotalPendingPartialWithdrawals
kyzooghost Oct 22, 2025
8e00022
simplifications to yield reporting mode
kyzooghost Oct 23, 2025
5f8755b
did git status
kyzooghost Oct 23, 2025
abe7b7e
did BeaconChainStakingClient
kyzooghost Oct 23, 2025
c4f78fc
fix ViemWalletSignerClient
kyzooghost Oct 23, 2025
e974150
fix linting for NativeYieldCronJobClient
kyzooghost Oct 23, 2025
66dbfab
fix cursor comments
kyzooghost Oct 23, 2025
099f19e
Merge branch 'main' into refactor/message-update-services
kyzooghost Oct 23, 2025
9b3e08f
write test-oauth2-token-client
kyzooghost Oct 23, 2025
497a4ec
successful test of test-oauth2-token-client
kyzooghost Oct 23, 2025
561bddf
successful test of test-beacon-node-api-client
kyzooghost Oct 23, 2025
4e35aa1
fix imports
kyzooghost Oct 23, 2025
6887f26
firsrt run for test-ethereum-mainnet-client-library
kyzooghost Oct 23, 2025
3cb66e2
successful test of test-ethereum-mainnet-client-library
kyzooghost Oct 23, 2025
a2f9fe9
first draft for test-consensys-staking-graphql-client
kyzooghost Oct 23, 2025
d91a1a5
new
kyzooghost Oct 23, 2025
d2504f9
import fixes
kyzooghost Oct 23, 2025
c790b67
build fixes
kyzooghost Oct 23, 2025
3abaaed
successful build of native yield cron job
kyzooghost Oct 23, 2025
2003b47
first hit for test-consensys-staking-graphql-client
kyzooghost Oct 23, 2025
4ec184b
success for test-lido-accounting-report-client.ts
kyzooghost Oct 23, 2025
7c2e7df
success test-lazy-oracle-contract-client
kyzooghost Oct 23, 2025
63ec635
did first unit tests
kyzooghost Oct 23, 2025
1dda481
rm ipfs cache
kyzooghost Oct 23, 2025
624ebad
first unit test for YieldReportingOperationModeProcessor.test
kyzooghost Oct 23, 2025
79c95a2
more logs
kyzooghost Oct 23, 2025
39faec4
standardized ILogger dependency injection
kyzooghost Oct 24, 2025
f1df81c
cleanup of test ignores
kyzooghost Oct 24, 2025
9014e86
name cleanup from contractclientlibrary -> blockchainclientadapter
kyzooghost Oct 24, 2025
21ba154
IBlockchainClient
kyzooghost Oct 24, 2025
c951811
more cleanup
kyzooghost Oct 24, 2025
cc7a59d
NativeYieldCronJobBootstrap
kyzooghost Oct 24, 2025
05d7567
did renames
kyzooghost Oct 24, 2025
9af55f8
rename from cronjob to automation service
kyzooghost Oct 24, 2025
fd8df10
more rename to automation service
kyzooghost Oct 24, 2025
27da497
more cronjob -> automation service cleanup
kyzooghost Oct 24, 2025
a22310a
rename to ClientAdapter
kyzooghost Oct 24, 2025
aeba029
more rename
kyzooghost Oct 24, 2025
a316ca7
add logging for contract clients
kyzooghost Oct 24, 2025
65bf976
added logging for clients
kyzooghost Oct 24, 2025
3a71441
did logging in linea-shared-utils clients
kyzooghost Oct 24, 2025
92642f6
added logs to services
kyzooghost Oct 24, 2025
67e0a61
changes to viemblockchainclientadapter
kyzooghost Oct 24, 2025
d73ad5e
created ExponentialBackoffRetryService
kyzooghost Oct 24, 2025
8698a52
fixes
kyzooghost Oct 24, 2025
6a9d0dd
fix generic level
kyzooghost Oct 24, 2025
1468374
first consumer of retryService
kyzooghost Oct 24, 2025
ce0f094
added ExponentialRetryBackoffService
kyzooghost Oct 24, 2025
e9cd485
first impl of retry logic
kyzooghost Oct 24, 2025
ecb67e8
small change to defaults
kyzooghost Oct 24, 2025
601c8ef
logger fixes
kyzooghost Oct 24, 2025
3c2ee40
logger redo
kyzooghost Oct 24, 2025
2b9c31e
new logs
kyzooghost Oct 24, 2025
3bced4e
fix
kyzooghost Oct 24, 2025
38baa03
amend retry fn for viem client
kyzooghost Oct 24, 2025
a7ff5b3
fixes for rpcUrl and testing
kyzooghost Oct 24, 2025
0081f72
first pass as error handling
kyzooghost Oct 24, 2025
594d402
first pass at error handling
kyzooghost Oct 24, 2025
bec0675
added attempt fn
kyzooghost Oct 24, 2025
089c616
added timeout logic to ExponentialBackoffRetryService
kyzooghost Oct 27, 2025
d95a9d6
review of error handling
kyzooghost Oct 27, 2025
ae11f88
mv imetricsservice
kyzooghost Oct 27, 2025
e3dbb4f
mv singletonmetricsservice
kyzooghost Oct 27, 2025
e18ecd4
mv unit tests for singletonmetricsservices
kyzooghost Oct 27, 2025
0f024e7
mv MetricsApi class
kyzooghost Oct 27, 2025
fac03a7
Create NativeYieldAutomationMetricsService
kyzooghost Oct 27, 2025
a66f2b1
first draft for NativeYieldAutomationMetricsUpdater
kyzooghost Oct 27, 2025
305ec82
rm bigint into prom gauge
kyzooghost Oct 27, 2025
752bf6b
more work for _incrementVaultAmountCounter
kyzooghost Oct 27, 2025
f11e76e
more buckets
kyzooghost Oct 27, 2025
b795fcf
hooked in metrics updater into DI
kyzooghost Oct 27, 2025
cb42e68
did INativeYieldAutomationMetricsUpdater
kyzooghost Oct 27, 2025
2afb570
did operation mode selector
kyzooghost Oct 27, 2025
0548958
did recordOperationModeDuration method
kyzooghost Oct 27, 2025
70005b9
add metrics updater
kyzooghost Oct 27, 2025
216aa1f
did some rebalance metrics
kyzooghost Oct 27, 2025
16846d0
fix linter
kyzooghost Oct 27, 2025
c9ce2bb
import fixes
kyzooghost Oct 27, 2025
79ef979
did withdraw rebalance metrics
kyzooghost Oct 27, 2025
1c7c2d0
did stkaing metrics
kyzooghost Oct 27, 2025
b294ea7
move tx fee metrics
kyzooghost Oct 27, 2025
4212842
did operation mode trigger metric
kyzooghost Oct 27, 2025
51413d1
did increment report metrics
kyzooghost Oct 27, 2025
9e8fa05
rm blockchainclientmetrics
kyzooghost Oct 27, 2025
a9c98ec
did report yield metrics
kyzooghost Oct 27, 2025
c2f15bc
correction
kyzooghost Oct 27, 2025
ad59cc0
add withdrawal fee to unstake
kyzooghost Oct 27, 2025
74f9e52
fix
kyzooghost Oct 27, 2025
78b8a86
null -> undefined
kyzooghost Oct 27, 2025
e2c5123
fix metric update
kyzooghost Oct 27, 2025
aa17c2f
added liability principal payment metric to withdrawal
kyzooghost Oct 27, 2025
53db7b7
added liability payment to all paths
kyzooghost Oct 27, 2025
2ab8c17
created OperationModeMetricsRecorder
kyzooghost Oct 28, 2025
cd5e2eb
first shot at Dockerfile
kyzooghost Oct 28, 2025
a303226
added CI to native-yield-automation-service
kyzooghost Oct 28, 2025
9a91354
rm-ed further dependency from automation service
kyzooghost Oct 28, 2025
17ea310
rm sdk dependency from ts-libs
kyzooghost Oct 28, 2025
dec216d
new unit tests
kyzooghost Oct 29, 2025
b6307cf
more fixes and tests
kyzooghost Oct 29, 2025
fd596fe
more fixes
kyzooghost Oct 29, 2025
2145556
add ExpressApiApplication.test.ts
kyzooghost Oct 29, 2025
fc87685
wrote test for BeaconNodeApiClient
kyzooghost Oct 29, 2025
3f112e9
did OAuth2TokenClient.ts test
kyzooghost Oct 29, 2025
ef8dc9a
did ViemWalletSignerClientAdapter.test.ts
kyzooghost Oct 29, 2025
11436f8
fix nonce issue for tx retry
kyzooghost Oct 29, 2025
2d21903
Merge branch 'main' into refactor/message-update-services
kyzooghost Oct 29, 2025
3ab0880
left testing comment
kyzooghost Oct 29, 2025
67940e5
did test for NativeYieldAutomationMetricsUpdater
kyzooghost Oct 29, 2025
716a35f
more unit tests
kyzooghost Oct 29, 2025
a782194
more tests done
kyzooghost Oct 29, 2025
e15c9cf
fix coverage for some unit tests
kyzooghost Oct 29, 2025
7db86db
fix
kyzooghost Oct 29, 2025
5739bec
did some cursor fixes
kyzooghost Oct 30, 2025
5219dd9
Refactor for _sendSignedEIP1559Transaction
kyzooghost Oct 30, 2025
bd0c4c3
more info for waitForVaultsReportDataUpdatedEvent
kyzooghost Oct 30, 2025
5c16657
name change
kyzooghost Oct 30, 2025
80c8a5a
first tests for viemblockchainclientadapter
kyzooghost Oct 30, 2025
7ab2290
adjust viem blockchain client adapter tests
kyzooghost Oct 30, 2025
4a693c5
first run for ConsensysStakingApiClient.test
kyzooghost Oct 30, 2025
408328d
did LineaRollupYieldExtensionContractClient.test
kyzooghost Oct 30, 2025
afe3d25
VaultHubContractClient test
kyzooghost Oct 30, 2025
c59ee20
fix to LazyOracleContractClient
kyzooghost Oct 31, 2025
7ec8ef1
first draft for YieldManagerContractClient test
kyzooghost Oct 31, 2025
9828640
refactor for waitForVaultsReportDataUpdatedEvent logic
kyzooghost Oct 31, 2025
9dc7ccf
did getNodeOperatorFeesPaidFromTxReceipt.test test
kyzooghost Oct 31, 2025
9e3102a
first draft for LazyOracleContractClient and OperationModeSelector tests
kyzooghost Oct 31, 2025
97112ea
fix missing coverage in YieldManagerContractClient.test.ts and Operat…
kyzooghost Oct 31, 2025
a070050
first draft for LidoAccountingReportClient.test
kyzooghost Oct 31, 2025
a916452
did OssificationCompleteProcessor.test
kyzooghost Oct 31, 2025
0d92b7b
first draft for OssificationPendingProcessor.test.ts and YieldReporti…
kyzooghost Oct 31, 2025
2cb2236
handle some test fixes
kyzooghost Oct 31, 2025
5ee2623
more test cases for YieldReportingProcessor.test.ts
kyzooghost Oct 31, 2025
0146a37
do rename of yieldreportingprocessor cases
kyzooghost Oct 31, 2025
7360027
more tests for YieldReportingProcessor.test.ts
kyzooghost Oct 31, 2025
f0ea4c7
more input validation for ExponentialBackoffRetryService.ts
kyzooghost Oct 31, 2025
9bd6090
Merge branch 'main' into refactor/message-update-services
kyzooghost Oct 31, 2025
d7810ab
new mods
kyzooghost Oct 31, 2025
58d6d15
fixes
kyzooghost Oct 31, 2025
515a9a8
fix LidoAccountingReportClient
kyzooghost Oct 31, 2025
033442d
did test-web3-signer-client-adapter
kyzooghost Oct 31, 2025
2727bbb
rename to test-ethereum-mainnet-client-library-viem-signer
kyzooghost Oct 31, 2025
267f792
did Web3SignerClientAdapter.test.ts
kyzooghost Oct 31, 2025
a05338b
adjust web3 signer
kyzooghost Oct 31, 2025
f5042ca
tried web3signerclientadapter
kyzooghost Oct 31, 2025
3551ce2
fix unit test
kyzooghost Oct 31, 2025
05bffb7
more test coverage
kyzooghost Oct 31, 2025
111f4e0
fix missing coverage
kyzooghost Oct 31, 2025
439d969
completed unit tests
kyzooghost Oct 31, 2025
a9315c9
did JSDoc comments for linea-shared-utils
kyzooghost Oct 31, 2025
a9d690f
some JSDocs for automation service classes
kyzooghost Oct 31, 2025
591fecc
did services jsdocs
kyzooghost Oct 31, 2025
6180a1c
fix for YieldReportingProcessor
kyzooghost Oct 31, 2025
5cdc422
fix
kyzooghost Oct 31, 2025
f4066d3
Merge branch 'main' into refactor/message-update-services
kyzooghost Oct 31, 2025
90212f3
fix test
kyzooghost Oct 31, 2025
04be461
fix ci issue
kyzooghost Oct 31, 2025
3e207ee
bump as test runner
kyzooghost Oct 31, 2025
d7de55f
change ci
kyzooghost Oct 31, 2025
2b9e537
Potential fix for code scanning alert no. 375: Useless assignment to …
kyzooghost Nov 3, 2025
1cc1cf4
Potential fix for code scanning alert no. 376: Useless assignment to …
kyzooghost Nov 3, 2025
a868895
rm-ed oauth2 token logs as per codeql
kyzooghost Nov 3, 2025
a9df43d
Revert "rm-ed oauth2 token logs as per codeql"
kyzooghost Nov 3, 2025
5d130c3
fixed web3signer toAddress
kyzooghost Nov 3, 2025
9462ee6
fix unit tests for new toAddress impl
kyzooghost Nov 3, 2025
d4479f4
do up of native-yield-operations/automation-service/README.md
kyzooghost Nov 3, 2025
495a712
added documentation for native-yield-operations/automation-service/sr…
kyzooghost Nov 3, 2025
40d1932
fix .env.sample
kyzooghost Nov 3, 2025
332e119
some more work on README.md
kyzooghost Nov 3, 2025
e8f0726
some more work on README.md
kyzooghost Nov 3, 2025
9b5a2e5
some more work on README.md
kyzooghost Nov 3, 2025
7655c0d
some more work on README.md
kyzooghost Nov 3, 2025
c830807
some more work on README.md
kyzooghost Nov 3, 2025
d9c47e9
did another README
kyzooghost Nov 3, 2025
da54c92
Merge branch 'main' into refactor/message-update-services
kyzooghost Nov 3, 2025
87424a6
fix path
kyzooghost Nov 3, 2025
51cb104
more run fixes
kyzooghost Nov 3, 2025
682c443
Merge branch 'main' into refactor/message-update-services
kyzooghost Nov 17, 2025
a1a0376
run push_image = true so we can have test image for helm chart
kyzooghost Nov 17, 2025
a77823d
Revert "run push_image = true so we can have test image for helm chart"
kyzooghost Nov 17, 2025
6cffd44
force push native-yield-as image to dockerhub in PR form
kyzooghost Nov 17, 2025
858dee4
fix for pr comments 1
kyzooghost Nov 18, 2025
99e8e86
amend LazyOracleContractClient.latestReportData
kyzooghost Nov 18, 2025
e100e5f
Remove shouldLogErrorAsWarning and warnOrError in generic WinstonLogger
kyzooghost Nov 18, 2025
39d1111
test-empty
kyzooghost Nov 19, 2025
456dfe5
fixes for pr
kyzooghost Nov 19, 2025
cd65be7
change decodeEventLog use to parseEventLogs
kyzooghost Nov 19, 2025
a636e1d
fix getNodeOperatorFeesPaidFromTxReceipt.test.ts
kyzooghost Nov 19, 2025
4a1e7b4
change simulate error log for LidoAccountingReportClient
kyzooghost Nov 19, 2025
c6c67a6
first attempt redo ViemBlockchainClientAdapter error handling
kyzooghost Nov 19, 2025
95d5275
did _shouldRetryViemSendRawTranasctionError
kyzooghost Nov 19, 2025
56a90e4
fix condition in sendSignedTransaction retry
kyzooghost Nov 19, 2025
6a88962
more error.walk fixes
kyzooghost Nov 19, 2025
febb001
amend ViemBlockchainClientAdapter.test.ts
kyzooghost Nov 19, 2025
c70b950
amend ViemBlockchainClientAdapter.test.ts
kyzooghost Nov 19, 2025
909563d
amend ViemBlockchainClientAdapter.test.ts
kyzooghost Nov 19, 2025
f8ba58f
remove PNPM_CONFIG_INJECT_WORKSPACE_PACKAGES from dockerfile
kyzooghost Nov 19, 2025
b18a27f
fix testing.yml
kyzooghost Nov 19, 2025
c0893ae
remove unused package.json script
kyzooghost Nov 19, 2025
8fdbdc0
fix postman build
kyzooghost Nov 19, 2025
f704cf8
try postman unconditional push
kyzooghost Nov 19, 2025
0fcb3c3
fix: handle Web3Signer public key without 0x prefix
kyzooghost Nov 20, 2025
e7e3d1f
zod strict -> strip
kyzooghost Nov 20, 2025
149e174
Merge branch 'main' into refactor/message-update-services
kyzooghost Nov 20, 2025
ada1a26
rm isSimulateSubmitLatestVaultReportSuccessful, greedily attempt to s…
kyzooghost Nov 21, 2025
737b3b1
fix build for nyas
kyzooghost Nov 21, 2025
38794d6
fix unit tests for remove isSimulateSubmitLatestVaultReportSuccessful…
kyzooghost Nov 21, 2025
1f18acc
isYieldReported -> shouldReportYield
kyzooghost Nov 21, 2025
6665824
use Promise.all in YieldReportingProcessor
kyzooghost Nov 21, 2025
41ecd1f
try fix for __dirname is not defined error
kyzooghost Nov 21, 2025
9d25d93
move getModuleDir to own file.ts
kyzooghost Nov 21, 2025
00ce8c5
fix Web3SignerClientAdapter.test.ts
kyzooghost Nov 21, 2025
909dc2d
remove simulateUpdateVaultData function
kyzooghost Nov 21, 2025
f04f4c4
add InvalidInputRpcError handling error code to LazyOracleContractClient
kyzooghost Nov 21, 2025
8f72fdd
fix LazyOracleContractClient.test.ts
kyzooghost Nov 21, 2025
a64b444
add dockerfile permissions for ipfs-cache folder
kyzooghost Nov 21, 2025
33f93cf
✨ feat: add SHOULD_SUBMIT_VAULT_REPORT config to control vault report…
kyzooghost Nov 24, 2025
ed6b23a
✨ feat: add yield report threshold configs with coercion and validation
kyzooghost Nov 24, 2025
4040605
Revert "✨ feat: add yield report threshold configs with coercion and …
kyzooghost Nov 24, 2025
83b3bdf
remove auto docker push
kyzooghost Nov 24, 2025
49c0ffb
Merge branch 'main' into refactor/message-update-services
kyzooghost Nov 24, 2025
5a73a0c
Added assumption comment
kyzooghost Nov 24, 2025
637a281
♻️ refactor: improve null handling in contract client methods
kyzooghost Nov 24, 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
16 changes: 16 additions & 0 deletions .github/workflows/build-and-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ on:
coordinator_changed:
required: true
type: string
native_yield_automation_service_changed:
required: true
type: string
postman_changed:
required: true
type: string
Expand All @@ -36,6 +39,9 @@ on:
coordinator_image_tagged:
required: true
type: string
native_yield_automation_service_image_tagged:
required: true
type: string
prover_image_tagged:
required: true
type: string
Expand Down Expand Up @@ -67,6 +73,16 @@ jobs:
push_image: ${{ inputs.push_image }}
secrets: inherit

native_yield_automation_service:
uses: ./.github/workflows/native-yield-automation-service-build-and-publish.yml
if: ${{ always() && (inputs.native_yield_automation_service_changed == 'true' || inputs.native_yield_automation_service_image_tagged != 'true') }}
with:
commit_tag: ${{ inputs.commit_tag }}
develop_tag: ${{ inputs.develop_tag }}
image_name: consensys/linea-native-yield-automation-service
push_image: ${{ inputs.push_image }}
secrets: inherit

prover:
uses: ./.github/workflows/prover-build-and-publish.yml
if: ${{ always() && (inputs.prover_changed == 'true' || inputs.prover_image_tagged != 'true') }}
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ jobs:
contracts-excluding-local-deployment-artifacts-count: ${{ steps.exclusion-filter.outputs.contracts-excluding-local-deployment-artifacts_count }}
smart-contracts: ${{ steps.filter.outputs.smart-contracts }}
linea-sequencer-plugin: ${{ steps.filter.outputs.linea-sequencer-plugin }}
native-yield-automation-service: ${{ steps.filter.outputs.native-yield-automation-service }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -120,6 +121,10 @@ jobs:
linea-besu-package:
- 'linea-besu-package/versions.env'
- 'linea-besu-package/scripts/assemble-packages.sh'
native-yield-automation-service:
- 'native-yield-operations/automation-service/**'
- 'ts-libs/linea-shared-utils/**'
- '.github/workflows/native-yield-automation-service-*.yml'

- name: Filter out commit changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 #v3.0.2
Expand Down Expand Up @@ -152,6 +157,7 @@ jobs:
postman_changed: ${{ needs.filter-commit-changes.outputs.postman }}
prover_changed: ${{ needs.filter-commit-changes.outputs.prover }}
transaction_exclusion_api_changed: ${{ needs.filter-commit-changes.outputs.transaction-exclusion-api }}
native_yield_automation_service_changed: ${{ needs.filter-commit-changes.outputs.native-yield-automation-service }}
secrets: inherit

code-analysis:
Expand All @@ -170,6 +176,7 @@ jobs:
smart_contracts_changed: ${{ needs.filter-commit-changes.outputs.smart-contracts }}
staterecovery_changed: false # disable until we have time to address it ${{ needs.filter-commit-changes.outputs.staterecovery }}
transaction_exclusion_api_changed: ${{ needs.filter-commit-changes.outputs.transaction-exclusion-api }}
native_yield_automation_service_changed: ${{ needs.filter-commit-changes.outputs.native-yield-automation-service }}
secrets: inherit

get-has-changes-requiring-e2e-testing:
Expand Down Expand Up @@ -204,11 +211,13 @@ jobs:
postman_changed: ${{ needs.filter-commit-changes.outputs.postman }}
prover_changed: ${{ needs.filter-commit-changes.outputs.prover }}
transaction_exclusion_api_changed: ${{ needs.filter-commit-changes.outputs.transaction-exclusion-api }}
native_yield_automation_service_changed: ${{ needs.filter-commit-changes.outputs.native-yield-automation-service }}
build_linea_besu_package: ${{ needs.filter-commit-changes.outputs.linea-besu-package }}
coordinator_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_coordinator }}
postman_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_postman }}
prover_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_prover }}
transaction_exclusion_api_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_transaction_exclusion_api }}
native_yield_automation_service_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_native_yield_automation_service }}
secrets: inherit

run-e2e-tests:
Expand Down Expand Up @@ -239,11 +248,13 @@ jobs:
postman_changed: ${{ needs.filter-commit-changes.outputs.postman }}
prover_changed: ${{ needs.filter-commit-changes.outputs.prover }}
transaction_exclusion_api_changed: ${{ needs.filter-commit-changes.outputs.transaction-exclusion-api }}
native_yield_automation_service_changed: ${{ needs.filter-commit-changes.outputs.native-yield-automation-service }}
build_linea_besu_package: "false" # dockerhub image build and push will be on linea-besu-package-release when push to main
coordinator_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_coordinator }}
postman_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_postman }}
prover_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_prover }}
transaction_exclusion_api_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_transaction_exclusion_api }}
native_yield_automation_service_image_tagged: ${{ needs.check-and-tag-images.outputs.image_tagged_native_yield_automation_service }}
secrets: inherit

cleanup-deployments:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
name: native-yield-automation-service-build

permissions:
contents: read
actions: read
packages: write

on:
workflow_call:
inputs:
commit_tag:
required: true
type: string
develop_tag:
required: true
type: string
image_name:
required: true
type: string
push_image:
required: false
type: boolean
default: false
secrets:
DOCKERHUB_USERNAME:
required: false
DOCKERHUB_TOKEN:
required: false
workflow_dispatch:
inputs:
commit_tag:
description: 'Image tag'
required: true
type: string
develop_tag:
description: 'Image tag will be "develop" if target branch is main'
required: true
type: choice
options:
- develop
default: 'develop'
image_name:
description: 'Image name'
required: true
type: string
default: 'consensys/linea-native-yield-automation-service'
push_image:
description: 'Toggle whether to push image to docker registry'
required: false
type: boolean
default: true

concurrency:
group: native-yield-automation-service-build-and-publish-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
build-and-publish:
# ~1 min saved vs small
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-med
name: native-yield-automation-service
env:
COMMIT_TAG: ${{ inputs.commit_tag }}
DEVELOP_TAG: ${{ inputs.develop_tag }}
IMAGE_NAME: ${{ inputs.image_name }}
PUSH_IMAGE: ${{ inputs.push_image }}
TAGS: ${{ inputs.image_name }}:${{ inputs.commit_tag }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
steps:
- name: Set develop tag if main branch
if: ${{ github.ref == 'refs/heads/main' }}
run: |
echo "TAGS=${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }},${{ env.IMAGE_NAME }}:${{ env.DEVELOP_TAG }}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Login to Docker Hub
if: ${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }}
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 #v3.4.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 #v3.6.0
with:
platforms: 'arm64,arm'
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 #v3.11.1
- name: Show the "version" build argument
run: |
echo "We inject the commit tag in the docker image ${{ env.COMMIT_TAG }}"
echo COMMIT_TAG=${{ env.COMMIT_TAG }} >> $GITHUB_ENV
- name: Build native-yield-automation-service image for testing
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 #v6.18.0
if: ${{ env.PUSH_IMAGE == 'false' }}
with:
context: ./
file: ./native-yield-operations/automation-service/Dockerfile
platforms: linux/amd64
load: true
push: false
tags: ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }}
- name: Save Docker image as artifact
if: ${{ env.PUSH_IMAGE == 'false' }}
run: |
docker save ${{ env.IMAGE_NAME }}:${{ env.COMMIT_TAG }} | gzip > linea-native-yield-automation-service-docker-image.tar.gz
shell: bash
- name: Upload Docker image artifact
if: ${{ env.PUSH_IMAGE == 'false' }}
uses: actions/upload-artifact@v4
with:
name: linea-native-yield-automation-service
path: linea-native-yield-automation-service-docker-image.tar.gz
- name: Build and push native-yield-automation-service image
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 #v6.18.0
# if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }}
with:
context: ./
file: ./native-yield-operations/automation-service/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ env.TAGS }}
cache-from: |
type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-amd64,platform=linux/amd64
type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-arm64,platform=linux/arm64
cache-to: |
type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-amd64,mode=max,platform=linux/amd64
type=registry,ref=${{ env.IMAGE_NAME }}:buildcache-arm64,mode=max,platform=linux/arm64
33 changes: 33 additions & 0 deletions .github/workflows/native-yield-automation-service-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: native-yield-automation-service-testing

permissions:
contents: read
actions: read

on:
workflow_call:

concurrency:
group: native-yield-automation-service-testing-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
run-tests:
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-med
name: native-yield-automation-service-testing
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup nodejs environment
uses: ./.github/actions/setup-nodejs

- name: Build
run: |
pnpm --filter @consensys/linea-shared-utils build
pnpm --filter @consensys/linea-native-yield-automation-service build

- name: Run tests and generate coverage report
run: |
pnpm --filter @consensys/linea-shared-utils test
pnpm --filter @consensys/linea-native-yield-automation-service test
2 changes: 1 addition & 1 deletion .github/workflows/postman-build-and-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ jobs:
path: linea-postman-docker-image.tar.gz
- name: Build and push postman image
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 #v6.18.0
if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }}
# if: ${{ env.PUSH_IMAGE == 'true' || github.event_name == 'workflow_dispatch' }}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

so I can push changes to devnet without merging this PR lol, I put it back to uncommented now

with:
context: ./
file: ./postman/Dockerfile
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/postman-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ jobs:
NATIVE_LIBS_RELEASE_TAG: blob-libs-v1.2.0
run: |
pnpm run -F ./ts-libs/linea-native-libs build;
pnpm run -F linea-shared-utils build;
pnpm run -F ./sdk/sdk-ethers build;
pnpm run -F ./postman test;
pnpm run -F ./sdk/sdk-ethers test;
28 changes: 28 additions & 0 deletions .github/workflows/reuse-check-images-tags-and-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ on:
transaction_exclusion_api_changed:
required: true
type: string
native_yield_automation_service_changed:
required: true
type: string
outputs:
commit_tag:
value: ${{ jobs.check_image_tags_exist.outputs.commit_tag }}
Expand All @@ -36,6 +39,8 @@ on:
value: ${{ jobs.image_tag_push.outputs.image_tagged_prover }}
image_tagged_postman:
value: ${{ jobs.image_tag_push.outputs.image_tagged_postman }}
image_tagged_native_yield_automation_service:
value: ${{ jobs.image_tag_push.outputs.image_tagged_native_yield_automation_service }}
image_tagged_transaction_exclusion_api:
value: ${{ jobs.image_tag_push.outputs.image_tagged_transaction_exclusion_api }}
secrets:
Expand All @@ -57,6 +62,7 @@ jobs:
EVENT_BEFORE: ${{ github.event.before }}
outputs:
last_commit_tag_exists_coordinator: ${{ steps.check_image_tags_exist_coordinator.outputs.last_commit_tag_exists }}
last_commit_tag_exists_native_yield_automation_service: ${{ steps.check_image_tags_exist_native_yield_automation_service.outputs.last_commit_tag_exists }}
last_commit_tag_exists_postman: ${{ steps.check_image_tags_exist_postman.outputs.last_commit_tag_exists }}
last_commit_tag_exists_prover: ${{ steps.check_image_tags_exist_prover.outputs.last_commit_tag_exists }}
last_commit_tag_exists_transaction_exclusion_api: ${{ steps.check_image_tags_exist_transaction_exclusion_api.outputs.last_commit_tag_exists }}
Expand Down Expand Up @@ -102,6 +108,14 @@ jobs:
last_commit_tag: ${{ steps.compute-version-tags.outputs.LAST_COMMIT_TAG }}
image_name: consensys/linea-postman

- name: Check image tags exist for native-yield-automation-service
uses: ./.github/actions/check-image-tags-exist
if: ${{ inputs.native_yield_automation_service_changed == 'false' }}
id: check_image_tags_exist_native_yield_automation_service
with:
last_commit_tag: ${{ steps.compute-version-tags.outputs.LAST_COMMIT_TAG }}
image_name: consensys/linea-native-yield-automation-service

- name: Check image tags exist for prover
uses: ./.github/actions/check-image-tags-exist
if: ${{ inputs.prover_changed == 'false' }}
Expand All @@ -125,6 +139,7 @@ jobs:
needs: [ check_image_tags_exist ]
outputs:
image_tagged_coordinator: ${{ steps.image_tag_push_coordinator.outputs.image_tagged }}
image_tagged_native_yield_automation_service: ${{ steps.image_tag_push_native_yield_automation_service.outputs.image_tagged }}
image_tagged_prover: ${{ steps.image_tag_push_prover.outputs.image_tagged }}
image_tagged_postman: ${{ steps.image_tag_push_postman.outputs.image_tagged }}
image_tagged_transaction_exclusion_api: ${{ steps.image_tag_push_transaction_exclusion_api.outputs.image_tagged }}
Expand Down Expand Up @@ -158,6 +173,19 @@ jobs:
docker_username: ${{ secrets.DOCKERHUB_USERNAME }}
docker_password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Tag and push native-yield-automation-service image
id: image_tag_push_native_yield_automation_service
uses: ./.github/actions/image-tag-and-push
if: ${{ inputs.native_yield_automation_service_changed == 'false' }}
with:
commit_tag: ${{ needs.check_image_tags_exist.outputs.commit_tag }}
last_commit_tag: ${{ needs.check_image_tags_exist.outputs.last_commit_tag }}
develop_tag: ${{ needs.check_image_tags_exist.outputs.develop_tag }}
image_name: consensys/linea-native-yield-automation-service
last_commit_tag_exists: ${{ needs.check_image_tags_exist.outputs.last_commit_tag_exists_native_yield_automation_service }}
docker_username: ${{ secrets.DOCKERHUB_USERNAME }}
docker_password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Tag and push prover image
id: image_tag_push_prover
uses: ./.github/actions/image-tag-and-push
Expand Down
10 changes: 9 additions & 1 deletion .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ on:
staterecovery_changed:
required: true
type: string
native_yield_automation_service_changed:
required: true
type: string
postman_changed:
required: true
type: string
Expand Down Expand Up @@ -47,6 +50,11 @@ jobs:
if: ${{ inputs.prover_changed == 'true' }}
secrets: inherit

native-yield-automation-service:
uses: ./.github/workflows/native-yield-automation-service-testing.yml
if: ${{ inputs.native_yield_automation_service_changed == 'true' }}
secrets: inherit

postman:
uses: ./.github/workflows/postman-testing.yml
if: ${{ inputs.postman_changed == 'true' }}
Expand Down Expand Up @@ -79,7 +87,7 @@ jobs:
# If all jobs are skipped, the workflow will still succeed.
always_succeed:
runs-on: ubuntu-24.04
if: ${{ inputs.coordinator_changed == 'false' && inputs.prover_changed == 'false' && inputs.postman_changed == 'false' && inputs.transaction_exclusion_api_changed == 'false' }}
if: ${{ inputs.coordinator_changed == 'false' && inputs.prover_changed == 'false' && inputs.native_yield_automation_service_changed == 'false' && inputs.postman_changed == 'false' && inputs.transaction_exclusion_api_changed == 'false' && inputs.staterecovery_changed == 'false' && inputs.smart_contracts_changed == 'false' && inputs.linea_sequencer_changed == 'false' }}
steps:
- name: Ensure Workflow Success
run: echo "All jobs were skipped, but workflow succeeds."
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ build/
cache_forge/
coverage/
dist/
ipfs-cache/
node_modules/
out/
playwright-report/
Expand Down
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
auto-install-peers = true
enable-pre-post-scripts = true
inject-workspace-packages = false # Breaks linea-native-yield-automation-service local build
Loading