mirror of
https://github.com/luxfi/safe-ios.git
synced 2026-10-30 15:19:20 +00:00
56 lines
1.3 KiB
Swift
56 lines
1.3 KiB
Swift
//
|
|
// Copyright © 2019 Gnosis Ltd. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
class ENSRegistry: Contract {
|
|
func resolver(node: Data) throws -> Address {
|
|
try decodeAddress(invoke("resolver(bytes32)", encodeFixedBytes(node)))
|
|
}
|
|
}
|
|
|
|
class ENSResolver: ERC165 {
|
|
enum Selectors {
|
|
public static let address = "addr(bytes32)"
|
|
public static let name = "name(bytes32)"
|
|
}
|
|
|
|
func address(node: Data) throws -> Address {
|
|
try decodeAddress(invoke(Selectors.address, encodeFixedBytes(node)))
|
|
}
|
|
|
|
func name(node: Data) throws -> String? {
|
|
try decodeString(invoke(Selectors.name, encodeFixedBytes(node)))
|
|
}
|
|
}
|
|
|
|
class ENSReverseResolver: Contract {
|
|
func name(node: Data) throws -> String? {
|
|
try decodeString(invoke("name(bytes32)", encodeFixedBytes(node)))
|
|
}
|
|
}
|
|
|
|
class EthRegistrar: Contract {
|
|
|
|
static let address: Address = "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85"
|
|
|
|
func ens() throws -> Address {
|
|
try decodeAddress(invoke("ens()"))
|
|
}
|
|
|
|
}
|
|
|
|
class ERC165: Contract {
|
|
|
|
enum Selectors {
|
|
public static let supportsInterface = "supportsInterface(bytes4)"
|
|
}
|
|
|
|
func supportsInterface(_ selector: String) throws -> Bool {
|
|
try decodeBool(invoke(Selectors.supportsInterface,
|
|
encodeFixedBytes(method(selector))))
|
|
}
|
|
|
|
}
|