-
Notifications
You must be signed in to change notification settings - Fork 1
Add TON support #486
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
base: main
Are you sure you want to change the base?
Add TON support #486
Changes from all commits
36eca40
0ac14d4
ab29df2
8d4ffc3
f13911c
821891d
6325452
60bc62a
9e04ccc
77a2f90
e74fda1
d501d4c
cd949ad
9b4480b
65a458c
b4833c3
96012a5
7fe80ad
da11bcc
1cea1ff
ee976cd
63526fd
f3b1fd1
ebd0385
3250299
ab2ff59
4163a29
7903018
645e48c
da04273
b2b676d
2d8d725
868545a
d14c388
e35bd66
099a18a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| "@smartcontractkit/mcms": minor | ||
| --- | ||
|
|
||
| Add TON implementation and unit/e2e tests |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| watch_file shell.nix | ||
| use flake || use nix |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,6 @@ | ||
| golang 1.24.4 | ||
| golangci-lint 2.1.6 | ||
| mockery 2.53.4 | ||
| mockery 2.53.5 | ||
| nodejs 20.16.0 | ||
| pnpm 9.6.0 | ||
| task 3.40.0 | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| [settings] | ||
| private_keys = [ | ||
| "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80", | ||
| "0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d", | ||
| "0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a" | ||
| ] | ||
|
|
||
| [ton_config] | ||
| type = "ton" | ||
| image = "ghcr.io/neodix42/mylocalton-docker:v3.7" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,6 +12,7 @@ import ( | |
| evme2e "github.com/smartcontractkit/mcms/e2e/tests/evm" | ||
| solanae2e "github.com/smartcontractkit/mcms/e2e/tests/solana" | ||
| suie2e "github.com/smartcontractkit/mcms/e2e/tests/sui" | ||
| tone2e "github.com/smartcontractkit/mcms/e2e/tests/ton" | ||
| ) | ||
|
|
||
| func TestEVMSuite(t *testing.T) { | ||
|
|
@@ -40,3 +41,7 @@ func TestSuiSuite(t *testing.T) { | |
| suite.Run(t, new(suie2e.TimelockCancelProposalTestSuite)) | ||
| suite.Run(t, new(suie2e.MCMSUserUpgradeTestSuite)) | ||
| } | ||
|
|
||
| func TestTONSuite(t *testing.T) { | ||
| suite.Run(t, new(tone2e.TimelockInspectionTestSuite)) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd strongly suggest to add the rest e2e tests before merging this one if possible. In past implementations like EVM/Solana they were super helpful to catch errors early. It saved us a lot of time specially when integrating with CLD. I know its a lot of work, so if not possible in this one at least having a followup before releasing the first TON mcms lib version There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sure! At this point (1) implementation done, (2) unit test done (EVM parity), (3) e2e tests WIP |
||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is nix mandatory for ton?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey! Nix is added to support dev environments for devs that use Nix.
Nix is also the way to get chainlink-ton packages, in this case I will need the TON
contractspackage, which I can easily pull from source with Nix. This is required to deploy contracts.Same as we import Go bindings from a commit with Go,
we import TON contract artifacts from a commit with Nix.
Nix is an orthogonal add-on - this means that folks can use it or set up things manually.
For TON, some tools like Go need to be in a path and TON compiled contracts need to be available on a path defined with an env var. One can just run a prepared Nix shell to get all of that, or set up things manually.
Once I get everything working, I will also document how to get a TON env running manually as well.