Skip to content

Commit

Permalink
style(auth-core): [evm - api] personalSign personalSignUnique signTyp…
Browse files Browse the repository at this point in the history
…edData signTypedDataUnique sendTransaction
  • Loading branch information
shuoshubao committed Sep 25, 2023
1 parent 60342b8 commit fcb159f
Show file tree
Hide file tree
Showing 5 changed files with 159 additions and 3 deletions.
9 changes: 9 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# editorconfig.org
root = true

[*]
indent_style = space
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
10 changes: 10 additions & 0 deletions particle-auth-core/example/lib/auth_core_demo.dart
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,14 @@ class AuthCoreDemo {
print("solanaGetAddress: $result");
showToast("solana: $result");
}

static void personalSign(messageHex) async {
final result = await ParticleAuthCore.personalSign(messageHex);
print("personalSign: $result");
}

static void personalSignUnique(messageHex) async {
final result = await ParticleAuthCore.personalSignUnique(messageHex);
print("personalSign: $result");
}
}
22 changes: 22 additions & 0 deletions particle-auth-core/example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,28 @@ class _MyHomePageState extends State<MyHomePage> {
style: TextStyle(fontSize: 20),
),
),
ElevatedButton(
onPressed: () {
print('personalSign');
const message = 'Hello world!';
AuthCoreDemo.personalSign(message);
},
child: const Text(
'personalSign evm',
style: TextStyle(fontSize: 20),
),
),
ElevatedButton(
onPressed: () {
print('personalSignUnique');
const message = 'Hello world!';
AuthCoreDemo.personalSignUnique(message);
},
child: const Text(
'personalSignUnique evm',
style: TextStyle(fontSize: 20),
),
),
],
),
),
Expand Down
91 changes: 88 additions & 3 deletions particle-auth-core/ios/Classes/ParticleAuthCorePlugin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ public class ParticleAuthCorePlugin: NSObject, FlutterPlugin {
case evmGetAddress
case solanaGetAddress
case switchChain
case personalSign
case personalSignUnique
case signTypedData
case signTypedDataUnique
case sendTransaction
}

public static func register(with registrar: FlutterPluginRegistrar) {
Expand All @@ -40,7 +45,7 @@ public class ParticleAuthCorePlugin: NSObject, FlutterPlugin {
result(FlutterMethodNotImplemented)
return
}

let json = call.arguments

switch method {
Expand All @@ -60,6 +65,16 @@ public class ParticleAuthCorePlugin: NSObject, FlutterPlugin {
self.evmGetAddress(flutterResult: result)
case .solanaGetAddress:
self.solanaGetAddress(flutterResult: result)
case .personalSign:
self.personalSign(json as? String, flutterResult: result)
case .personalSignUnique:
self.personalSignUnique(json as? String, flutterResult: result)
case .signTypedData:
self.signTypedData(json as? String, flutterResult: result)
case .signTypedDataUnique:
self.signTypedDataUnique(json as? String, flutterResult: result)
case .sendTransaction:
self.sendTransaction(json as? String, flutterResult: result)
}
}
}
Expand Down Expand Up @@ -92,7 +107,7 @@ public extension ParticleAuthCorePlugin {
let config = ParticleNetworkConfiguration(chainInfo: chainInfo, devEnv: devEnv)
ParticleNetwork.initialize(config: config)
}

func connect(_ json: String?, flutterResult: @escaping FlutterResult) {
let jwt = json ?? ""
Task {
Expand Down Expand Up @@ -127,7 +142,7 @@ public extension ParticleAuthCorePlugin {
let json = String(data: data, encoding: .utf8)
flutterResult(json ?? "")
}

func disconnect(flutterResult: @escaping FlutterResult) {
Task {
do {
Expand Down Expand Up @@ -179,6 +194,76 @@ public extension ParticleAuthCorePlugin {

flutterResult(result ?? "")
}

func personalSign(_ json: String?, flutterResult: @escaping FlutterResult) {
let messageHex = json ?? ""

Task {
do {
let signature = try await auth.evm.personalSign(messageHex)
flutterResult(signature)
} catch {
print(error)
flutterResult("")
}
}
}

func personalSignUnique(_ json: String?, flutterResult: @escaping FlutterResult) {
let messageHex = json ?? ""

Task {
do {
let signature = try await auth.evm.personalSignUnique(messageHex)
flutterResult(signature)
} catch {
print(error)
flutterResult("")
}
}
}

func signTypedData(_ json: String?, flutterResult: @escaping FlutterResult) {
let typedDataV4 = json ?? ""

Task {
do {
let signature = try await auth.evm.signTypedData(typedDataV4)
flutterResult(signature)
} catch {
print(error)
flutterResult("")
}
}
}

func signTypedDataUnique(_ json: String?, flutterResult: @escaping FlutterResult) {
let typedDataV4 = json ?? ""

Task {
do {
let signature = try await auth.evm.signTypedDataUnique(typedDataV4)
flutterResult(signature)
} catch {
print(error)
flutterResult("")
}
}
}

func sendTransaction(_ json: String?, flutterResult: @escaping FlutterResult) {
let transaction = json ?? ""

Task {
do {
let signature = try await auth.evm.sendTransaction(transaction)
flutterResult(signature)
} catch {
print(error)
flutterResult("")
}
}
}
}

extension ParticleAuthCorePlugin {
Expand Down
30 changes: 30 additions & 0 deletions particle-auth-core/lib/particle_auth_core.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,34 @@ class ParticleAuthCore {
static Future<bool> switchChain(int chainId) async {
return await _channel.invokeMethod('switchChain', chainId);
}

// evm
// personal sign
static Future<String> personalSign(String messageHex) async {
return await _channel.invokeMethod('personalSign', messageHex);
}

// evm
// personal sign unique
static Future<String> personalSignUnique(String messageHex) async {
return await _channel.invokeMethod('personalSignUnique', messageHex);
}

// evm
// sign typed data
static Future<String> signTypedData(String typedDataV4) async {
return await _channel.invokeMethod('signTypedData', typedDataV4);
}

// evm
// sign typed data unique
static Future<String> signTypedDataUnique(String typedDataV4) async {
return await _channel.invokeMethod('signTypedDataUnique', typedDataV4);
}

// evm
// send transaction
static Future<String> sendTransaction(String transaction) async {
return await _channel.invokeMethod('sendTransaction', transaction);
}
}

0 comments on commit fcb159f

Please sign in to comment.