{
  "decode": {
    "static": true,
    "testCases": [
      {
        "id": "CONFORMANCE-ACCOUNT-066",
        "description": "it should decode RLP Encoded AccountKeyFail to AccountKeyFail instance.",
        "input": {
          "rlpEncodedKey": "0x03c0"
        },
        "expectedResult": {
          "status": "pass",
          "class": "AccountKeyFail",
          "layer": "caver.account",
          "output": {
            "keyType": 3
          }
        }
      },
      {
        "id": "CONFORMANCE-ACCOUNT-067",
        "description": "it should decode RLP Encoded AccountKeyLegacy to AccountKeyLegacy instance.",
        "input": {
          "rlpEncodedKey": "0x01c0"
        },
        "expectedResult": {
          "status": "pass",
          "class": "AccountKeyLegacy",
          "layer": "caver.account",
          "output": {
            "keyType": 1
          }
        }
      },
      {
        "id": "CONFORMANCE-ACCOUNT-068",
        "description": "it should decode RLP Encoded AccountKeyPublic to AccountKeyPublic instance.",
        "input": {
          "rlpEncodedKey": "0x02a102c10b598a1a3ba252acc21349d61c2fbd9bc8c15c50a5599f420cccc3291f9bf9"
        },
        "expectedResult": {
          "status": "pass",
          "class": "AccountKeyPublic",
          "layer": "caver.account",
          "output": {
            "keyType": 2,
            "publicKey": "0xc10b598a1a3ba252acc21349d61c2fbd9bc8c15c50a5599f420cccc3291f9bf9803a1898f45b2770eda7abce70e8503b5e82b748ec0ce557ac9f4f4796965e4e"
          }
        }
      },
      {
        "id": "CONFORMANCE-ACCOUNT-069",
        "description": "it should decode RLP Encoded AccountKeyRoleBased to AccountKeyRoleBased instance.",
        "input": {
          "rlpEncodedKey": "0x05f9015cb84e04f84b02f848e301a102b86b2787e8c7accd7d2d82678c9bef047a0aafd72a6e690817506684e8513c9ae301a102e4d4901155edabc2bd5b356c63e58af20fe0a74e5f210de6396b74094f40215db87204f86f02f86ce301a1031a909c4d7dbb5281b1d1b55e79a1b2568111bd2830246c3173ce824000eb8716e301a1021427ac6351bbfc15811e8e5389a674b01d7a2c253e69a6ed30a33583864368f6e302a10290fe4bb78bc981a40874ebcff2f9de4eba1e59ecd7a271a37814413720a3a5eab89604f89303f890e301a10291245244462b3eee6436d3dc0ba3f69ef413fe2296c729733eff891a55f70c02e301a10277e05dd93cdd6362f8648447f33d5676cbc5f42f4c4946ae1ad62bd4c0c4f357e302a103d3bb14320d87eed081ae44740b5abbc52bac2c7ccf85b6281a0fc69f3ba4c171e302a103cfa4d1bee51e59e6842b136ff95b9d01385f94bed13c4be8996c6d20cb732c3e"
        },
        "expectedResult": {
          "status": "pass",
          "class": "AccountKeyRoleBased",
          "layer": "caver.account",
          "output": {
            "keyType": 5,
            "accountKeys": [
              {
                "keyType": 4,
                "threshold": 2,
                "weightedPublicKeys": [
                  {
                    "weight": 1,
                    "publicKey": "0xb86b2787e8c7accd7d2d82678c9bef047a0aafd72a6e690817506684e8513c9af36becba90c8de06fd06da16492263267a63720985f94fc5a027d0a26d25e6ae"
                  },
                  {
                    "weight": 1,
                    "publicKey": "0xe4d4901155edabc2bd5b356c63e58af20fe0a74e5f210de6396b74094f40215d3bc4d619872b96c091c741a15736a7ef12f530b7593038bbbfbf6c35deee8a34"
                  }
                ]
              },
              {
                "keyType": 4,
                "threshold": 2,
                "weightedPublicKeys": [
                  {
                    "weight": 1,
                    "publicKey": "0x1a909c4d7dbb5281b1d1b55e79a1b2568111bd2830246c3173ce824000eb8716afe39b6106fb9db360fb5779e2d346c8328698174831941586b11bdc3e755905"
                  },
                  {
                    "weight": 1,
                    "publicKey": "0x1427ac6351bbfc15811e8e5389a674b01d7a2c253e69a6ed30a33583864368f65f63b92fd60be61c5d176ae1771e7738e6a043af814b9af5d81137df29ee95f2"
                  },
                  {
                    "weight": 2,
                    "publicKey": "0x90fe4bb78bc981a40874ebcff2f9de4eba1e59ecd7a271a37814413720a3a5ea5fa9bd7d8bc5c66a9a08d77563458b004bbd1d594a3a12ef108cdc7c04c525a6"
                  }
                ]
              },
              {
                "keyType": 4,
                "threshold": 3,
                "weightedPublicKeys": [
                  {
                    "weight": 1,
                    "publicKey": "0x91245244462b3eee6436d3dc0ba3f69ef413fe2296c729733eff891a55f70c02f2b0870653417943e795e7c8694c4f8be8af865b7a0224d1dec0bf8a1bf1b5a6"
                  },
                  {
                    "weight": 1,
                    "publicKey": "0x77e05dd93cdd6362f8648447f33d5676cbc5f42f4c4946ae1ad62bd4c0c4f3570b1a104b67d1cd169bbf61dd557f15ab5ee8b661326096954caddadf34ae6ac8"
                  },
                  {
                    "weight": 2,
                    "publicKey": "0xd3bb14320d87eed081ae44740b5abbc52bac2c7ccf85b6281a0fc69f3ba4c171cc4bd2ba7f0c969cd72bfa49c854d8ac2cf3d0edea7f0ce0fd31cf080374935d"
                  },
                  {
                    "weight": 2,
                    "publicKey": "0xcfa4d1bee51e59e6842b136ff95b9d01385f94bed13c4be8996c6d20cb732c3ee47cd2b6bbb917658c5fd3d02b0ddf1242b1603d1acbde7812a7d9d684ed37a9"
                  }
                ]
              }
            ]
          }
        }
      },
      {
        "id": "CONFORMANCE-ACCOUNT-070",
        "description": "it should decode RLP Encoded AccountKeyWeightedMultiSig to AccountKeyWeightedMultiSig instance.",
        "input": {
          "rlpEncodedKey": "0x04f84b02f848e301a102c10b598a1a3ba252acc21349d61c2fbd9bc8c15c50a5599f420cccc3291f9bf9e301a1021769a9196f523c419be50c26419ebbec34d3d6aa8b59da834212f13dbec9a9c1"
        },
        "expectedResult": {
          "status": "pass",
          "class": "AccountKeyWeightedMultiSig",
          "layer": "caver.account",
          "output": {
            "keyType": 4,
            "threshold": 2,
            "weightedPublicKeys": [
              {
                "weight": 1,
                "publicKey": "0xc10b598a1a3ba252acc21349d61c2fbd9bc8c15c50a5599f420cccc3291f9bf9803a1898f45b2770eda7abce70e8503b5e82b748ec0ce557ac9f4f4796965e4e"
              },
              {
                "weight": 1,
                "publicKey": "0x1769a9196f523c419be50c26419ebbec34d3d6aa8b59da834212f13dbec9a9c12a4d0eeb91d7bd5d592653d43dd0593cfe24cb20a5dbef05832932e7c7191bf6"
              }
            ]
          }
        }
      },
      {
        "id": "CONFORMANCE-ACCOUNT-071",
        "description": "it should throws error because given rlpEncodedKey is invalid.",
        "input": {
          "rlpEncodedKey": "0x10"
        },
        "expectedResult": {
          "status": "fail",
          "errorMessage": "invalid RLP-encoded account key string",
          "errorMessageJs": "Invalid RLP-encoded account key string: 0x10"
        }
      }
    ]
  }}