Skip to content

Commit

Permalink
fix: cannot sign custom network (#10389)
Browse files Browse the repository at this point in the history
  • Loading branch information
guanbinrui committed Aug 14, 2023
1 parent 17a66f0 commit 621d262
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 23 deletions.
5 changes: 3 additions & 2 deletions packages/mask/src/plugins/WalletService/services/send.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,15 @@ import { signWithPersona } from '../../../../background/services/identity/index.
* The entrance of all RPC requests to MaskWallet.
*/
export async function send(payload: JsonRpcPayload, options?: TransactionOptions) {
const { owner, paymentToken, providerURL } = options ?? {}
const {
pid = 0,
from,
chainId = options?.chainId ?? ChainId.Mainnet,
signableMessage,
signableConfig,
} = PayloadEditor.fromPayload(payload, options)
const owner = options?.owner
const identifier = ECKeyIdentifier.from(options?.identifier).unwrapOr(undefined)
const paymentToken = options?.paymentToken
const signer = identifier
? new Signer(identifier, <T>(type: SignType, message: T, identifier?: ECKeyIdentifier) =>
signWithPersona(type, message, identifier, undefined, true),
Expand All @@ -52,6 +51,7 @@ export async function send(payload: JsonRpcPayload, options?: TransactionOptions
pid,
await Web3Readonly.sendSignedTransaction(await signer.signTransaction(signableConfig), {
chainId,
providerURL,
}),
)
}
Expand Down Expand Up @@ -101,6 +101,7 @@ export async function send(payload: JsonRpcPayload, options?: TransactionOptions
},
{
chainId,
providerURL,
},
)
return createJsonRpcResponse(pid, result)
Expand Down
34 changes: 13 additions & 21 deletions packages/web3-providers/src/Web3/EVM/state/Message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,15 @@ import type { Plugin } from '@masknet/plugin-infra'
import { SiteAdaptorContextRef } from '@masknet/plugin-infra/dom'
import {
createJsonRpcPayload,
createJsonRpcResponse,
type MessageRequest,
type MessageResponse,
type TransactionOptions,
} from '@masknet/web3-shared-evm'
import { MessageStateType, type ReasonableMessage } from '@masknet/web3-shared-base'
import { MessageState } from '../../Base/state/Message.js'
import { RequestReadonlyAPI } from '../apis/RequestReadonlyAPI.js'
import { SharedContextRef } from '../../../PluginContext/index.js'

export class Message extends MessageState<MessageRequest, MessageResponse> {
private Request = new RequestReadonlyAPI()

constructor(context: Plugin.Shared.SharedUIContext) {
super(context, { pluginID: NetworkPluginID.PLUGIN_EVM })
}
Expand Down Expand Up @@ -66,23 +62,19 @@ export class Message extends MessageState<MessageRequest, MessageResponse> {

override async approveRequest(id: string, updates?: MessageRequest): Promise<void> {
const { request } = this.assertMessage(id)
const payload = updates?.arguments
? {
...request.arguments,
...updates.arguments,
}
: request.arguments
const response = request.options?.providerURL
? createJsonRpcResponse(
0,
await this.Request.request(payload, {
providerURL: request.options.providerURL,
}),
)
: await SharedContextRef.value.send(
createJsonRpcPayload(0, payload),
omitBy<TransactionOptions>(request.options, isUndefined),
)

const response = await SharedContextRef.value.send(
createJsonRpcPayload(
0,
updates?.arguments
? {
...request.arguments,
...updates.arguments,
}
: request.arguments,
),
omitBy<TransactionOptions>(request.options, isUndefined),
)

await this.updateMessage(id, {
request: {
Expand Down
1 change: 1 addition & 0 deletions packages/web3-shared/evm/src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,7 @@ export interface TransactionOptions {
identifier?: string
paymentToken?: string
allowMaskAsGas?: boolean
providerURL?: string

// popups control
disableClose?: boolean
Expand Down

0 comments on commit 621d262

Please sign in to comment.