Skip to content

Commit

Permalink
Merge pull request #42 from soramitsu/develop
Browse files Browse the repository at this point in the history
v0.11.1
  • Loading branch information
ERussel authored Jul 29, 2021
2 parents a780e2b + 03651d2 commit dcdd07a
Show file tree
Hide file tree
Showing 8 changed files with 53 additions and 4 deletions.
4 changes: 4 additions & 0 deletions Example/FearlessUtils.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
8459EA122657963C006BBF9E /* MultiSigner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8459EA112657963C006BBF9E /* MultiSigner.swift */; };
8459EA162657987D006BBF9E /* LastContribution.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8459EA152657987D006BBF9E /* LastContribution.swift */; };
845D80ED24C8D91A00EC2540 /* SeedFactoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 845D80EC24C8D91A00EC2540 /* SeedFactoryTests.swift */; };
8467F4C726B285EC00C5B6F4 /* statemine-metadata in Resources */ = {isa = PBXBuildFile; fileRef = 8467F4C626B285EC00C5B6F4 /* statemine-metadata */; };
8467FD1424E677C2005D486C /* ed25519HDKD.json in Resources */ = {isa = PBXBuildFile; fileRef = 8467FD1124E675D0005D486C /* ed25519HDKD.json */; };
8467FD1524E677C6005D486C /* ecdsaHDKD.json in Resources */ = {isa = PBXBuildFile; fileRef = 8467FD1024E675D0005D486C /* ecdsaHDKD.json */; };
8467FD2624E71A37005D486C /* IconGenerationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8467FD2524E71A37005D486C /* IconGenerationTests.swift */; };
Expand Down Expand Up @@ -158,6 +159,7 @@
8459EA112657963C006BBF9E /* MultiSigner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultiSigner.swift; sourceTree = "<group>"; };
8459EA152657987D006BBF9E /* LastContribution.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LastContribution.swift; sourceTree = "<group>"; };
845D80EC24C8D91A00EC2540 /* SeedFactoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeedFactoryTests.swift; sourceTree = "<group>"; };
8467F4C626B285EC00C5B6F4 /* statemine-metadata */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "statemine-metadata"; sourceTree = "<group>"; };
8467FD1024E675D0005D486C /* ecdsaHDKD.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = ecdsaHDKD.json; sourceTree = "<group>"; };
8467FD1124E675D0005D486C /* ed25519HDKD.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = ed25519HDKD.json; sourceTree = "<group>"; };
8467FD2524E71A37005D486C /* IconGenerationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconGenerationTests.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -338,6 +340,7 @@
84452B6025D2ADC300F47EC5 /* westend-metadata */,
84452C0A25D2D54300F47EC5 /* kusama-metadata */,
84452C0E25D2D5C300F47EC5 /* polkadot-metadata */,
8467F4C626B285EC00C5B6F4 /* statemine-metadata */,
84F4394125DBAAA200AEDA56 /* test-metadata */,
);
path = Runtime;
Expand Down Expand Up @@ -666,6 +669,7 @@
84A0DE3124DBF49400F436A8 /* keystore-ed25519.json in Resources */,
84F4394225DBAAA200AEDA56 /* test-metadata in Resources */,
8429C81D25C434E70086D7F6 /* kusama.json in Resources */,
8467F4C726B285EC00C5B6F4 /* statemine-metadata in Resources */,
84A0DE3224DBF49700F436A8 /* keystore-ecdsa.json in Resources */,
84CB472524DBE98500837E11 /* keystore-sr25519.json in Resources */,
8429C82225C434EA0086D7F6 /* polkadot.json in Resources */,
Expand Down
4 changes: 2 additions & 2 deletions Example/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
PODS:
- BigInt (5.0.0)
- FearlessUtils (0.11.0):
- FearlessUtils (0.11.1):
- BigInt (~> 5.0)
- IrohaCrypto/ed25519 (~> 0.8.0)
- IrohaCrypto/Scrypt (~> 0.8.0)
Expand Down Expand Up @@ -54,7 +54,7 @@ EXTERNAL SOURCES:

SPEC CHECKSUMS:
BigInt: 74b4d88367b0e819d9f77393549226d36faeb0d8
FearlessUtils: 9a5933f8b1a519bfc6baf21d6d23a2be92d638aa
FearlessUtils: 760f5884fb83e132d9e6751e216d0bb6cee2b27a
IrohaCrypto: bef5e0fdbbfe587657d5de9a8961d7cb1f995a7e
scrypt.c: b42ae06183251329d2b2c620c226fb541a4a3592
secp256k1.c: db47b726585d80f027423682eb369729e61b3b20
Expand Down
2 changes: 1 addition & 1 deletion FearlessUtils.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

Pod::Spec.new do |s|
s.name = 'FearlessUtils'
s.version = '0.11.0'
s.version = '0.11.1'
s.summary = 'Utility library that implements clients specific logic to interact with substrate based networks'

s.homepage = 'https://github.com/soramitsu/fearless-utils-iOS'
Expand Down
37 changes: 37 additions & 0 deletions FearlessUtils/Classes/Runtime/Metadata/StorageEntryType.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ public enum StorageEntryType {
case plain(_ value: String)
case map(_ value: MapEntry)
case doubleMap(_ value: DoubleMapEntry)
case nMap(_ value: NMapEntry)

public var typeName: String {
switch self {
Expand All @@ -13,6 +14,8 @@ public enum StorageEntryType {
return singleMap.value
case .doubleMap(let doubleMap):
return doubleMap.value
case .nMap(let nMap):
return nMap.value
}
}
}
Expand All @@ -29,6 +32,9 @@ extension StorageEntryType: ScaleCodable {
case .doubleMap(let value):
try UInt8(2).encode(scaleEncoder: scaleEncoder)
try value.encode(scaleEncoder: scaleEncoder)
case .nMap(let value):
try UInt8(3).encode(scaleEncoder: scaleEncoder)
try value.encode(scaleEncoder: scaleEncoder)
}
}

Expand All @@ -45,6 +51,9 @@ extension StorageEntryType: ScaleCodable {
case 2:
let value = try DoubleMapEntry(scaleDecoder: scaleDecoder)
self = .doubleMap(value)
case 3:
let value = try NMapEntry(scaleDecoder: scaleDecoder)
self = .nMap(value)
default:
throw ScaleCodingError.unexpectedDecodedValue
}
Expand Down Expand Up @@ -119,6 +128,34 @@ extension DoubleMapEntry: ScaleCodable {
}
}

public struct NMapEntry {
public let keyVec: [String]
public let hashers: [StorageHasher]
public let value: String

public init(keyVec: [String],
hashers: [StorageHasher],
value: String) {
self.keyVec = keyVec
self.hashers = hashers
self.value = value
}
}

extension NMapEntry: ScaleCodable {
public func encode(scaleEncoder: ScaleEncoding) throws {
try keyVec.encode(scaleEncoder: scaleEncoder)
try hashers.encode(scaleEncoder: scaleEncoder)
try value.encode(scaleEncoder: scaleEncoder)
}

public init(scaleDecoder: ScaleDecoding) throws {
keyVec = try [String](scaleDecoder: scaleDecoder)
hashers = try [StorageHasher](scaleDecoder: scaleDecoder)
value = try String(scaleDecoder: scaleDecoder)
}
}

extension StorageHasher: ScaleCodable {
public func encode(scaleEncoder: ScaleEncoding) throws {
try rawValue.encode(scaleEncoder: scaleEncoder)
Expand Down
3 changes: 3 additions & 0 deletions FearlessUtils/Classes/Runtime/TypeRegistry+Metadata.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ public extension TypeRegistry {
allTypes.insert(map.key1)
allTypes.insert(map.key2)
allTypes.insert(map.value)
case .nMap(let nMap):
nMap.keyVec.forEach { allTypes.insert($0) }
allTypes.insert(nMap.value)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public class RegexReplaceResolver: TypeResolving {
public extension RegexReplaceResolver {
static func noise() -> RegexReplaceResolver {
let pattern = "(T::)|(<T>)|(<T as Trait>::)|(<T as Trait<I>>::)" +
"|(<T as Config>::)|(\n)|((?:grandpa|session|slashing|schedule)::)"
"|(<T as Config>::)|(\n)|((?:grandpa|session|slashing|schedule|limits)::)"
return RegexReplaceResolver(pattern: pattern, replacement: "")
}

Expand Down
1 change: 1 addition & 0 deletions Tests/Resources/Runtime/statemine-metadata

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions Tests/Runtime/RuntimeMetadataTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ class RuntimeMetadataTests: XCTestCase {
performRuntimeMetadataTest(filename: "polkadot-metadata")
}

func testStatemineRuntimeMetadata() {
performRuntimeMetadataTest(filename: "statemine-metadata")
}

func testFetchStorage() throws {
let metadata = try RuntimeHelper.createRuntimeMetadata("westend-metadata")

Expand Down

0 comments on commit dcdd07a

Please sign in to comment.