From ccafc2781da872968c7e764ca34289087a6dd5fc Mon Sep 17 00:00:00 2001 From: Ilya Date: Tue, 1 Aug 2023 13:20:03 +0300 Subject: [PATCH 1/2] support zkEVM network --- did.go | 16 ++++++++++++++-- did_test.go | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/did.go b/did.go index 7d0a989..e48c621 100644 --- a/did.go +++ b/did.go @@ -46,6 +46,8 @@ const ( Ethereum Blockchain = "eth" // Polygon is polygon blockchain network Polygon Blockchain = "polygon" + // ZkEVM is zkEVM blockchain network + ZkEVM Blockchain = "zkevm" // UnknownChain is used when it's not possible to retrieve blockchain type from identifier UnknownChain Blockchain = "unknown" // ReadOnly should be used for readonly identity to build readonly flag @@ -58,8 +60,9 @@ const ( type NetworkID string const ( - // Main is ethereum main network + // Main is main network Main NetworkID = "main" + // Mumbai is polygon mumbai test network Mumbai NetworkID = "mumbai" @@ -67,9 +70,12 @@ const ( Goerli NetworkID = "goerli" // goerli // Sepolia is ethereum Sepolia test network Sepolia NetworkID = "sepolia" + + // Test is test network for zkEVM + Test NetworkID = "test" + // UnknownNetwork is used when it's not possible to retrieve network from identifier UnknownNetwork NetworkID = "unknown" - // NoNetwork should be used for readonly identity to build readonly flag NoNetwork NetworkID = "" ) @@ -98,6 +104,9 @@ var DIDMethodNetwork = map[DIDMethod]map[DIDNetworkFlag]byte{ {Blockchain: Ethereum, NetworkID: Main}: 0b00100000 | 0b00000001, {Blockchain: Ethereum, NetworkID: Goerli}: 0b00100000 | 0b00000010, {Blockchain: Ethereum, NetworkID: Sepolia}: 0b00100000 | 0b00000011, + + {Blockchain: ZkEVM, NetworkID: Main}: 0b00110000 | 0b00000001, + {Blockchain: ZkEVM, NetworkID: Test}: 0b00110000 | 0b00000010, }, DIDMethodPolygonID: { {Blockchain: ReadOnly, NetworkID: NoNetwork}: 0b00000000, @@ -108,6 +117,9 @@ var DIDMethodNetwork = map[DIDMethod]map[DIDNetworkFlag]byte{ {Blockchain: Ethereum, NetworkID: Main}: 0b00100000 | 0b00000001, {Blockchain: Ethereum, NetworkID: Goerli}: 0b00100000 | 0b00000010, {Blockchain: Ethereum, NetworkID: Sepolia}: 0b00100000 | 0b00000011, + + {Blockchain: ZkEVM, NetworkID: Main}: 0b00110000 | 0b00000001, + {Blockchain: ZkEVM, NetworkID: Test}: 0b00110000 | 0b00000010, }, DIDMethodOther: { {Blockchain: UnknownChain, NetworkID: UnknownNetwork}: 0b11111111, diff --git a/did_test.go b/did_test.go index 1220fa9..8deaa2e 100644 --- a/did_test.go +++ b/did_test.go @@ -180,6 +180,20 @@ func TestDID_PolygonID_Types(t *testing.T) { net: Mumbai, wantDID: "did:polygonid:polygon:mumbai:2qCU58EJgrELNZCDkSU23dQHZsBgAFWLNpNezo1g6b", }, + { + title: "Polygon | zkEVM chain, main", + method: DIDMethodPolygonID, + chain: ZkEVM, + net: Main, + wantDID: "did:polygonid:zkevm:main:2wQjmkL1SsgqC7AuZdUcaXsUVfEi1i58VEhm3r2r8F", + }, + { + title: "Polygon | zkEVM chain, test", + method: DIDMethodPolygonID, + chain: ZkEVM, + net: Test, + wantDID: "did:polygonid:zkevm:test:2wcMpvr8NgWTfqN6ChaFEx1qRnLREXhjeoJ45pFyw5", + }, } for i := range testCases { From 73cda3c6766f41fc0a2febde05694cca8e09807a Mon Sep 17 00:00:00 2001 From: Ilya Date: Tue, 1 Aug 2023 14:24:43 +0300 Subject: [PATCH 2/2] fix comments --- did.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/did.go b/did.go index e48c621..4abece0 100644 --- a/did.go +++ b/did.go @@ -71,7 +71,7 @@ const ( // Sepolia is ethereum Sepolia test network Sepolia NetworkID = "sepolia" - // Test is test network for zkEVM + // Test is test network Test NetworkID = "test" // UnknownNetwork is used when it's not possible to retrieve network from identifier