abstractionkit
Advanced tools
Comparing version 0.1.16 to 0.1.17
export { SmartAccount } from "./account/SmartAccount"; | ||
export { SocialRecoveryModule, RecoveryRequest, } from "./account/Safe/modules/SocialRecoveryModule"; | ||
export { SocialRecoveryModule, RecoveryRequest, SocialRecoveryModuleGracePeriodSelector, RecoverySignaturePair } from "./account/Safe/modules/SocialRecoveryModule"; | ||
export { SafeAccountV0_2_0 } from "./account/Safe/SafeAccountV0_2_0"; | ||
@@ -11,7 +11,7 @@ export { SafeAccountV0_3_0 } from "./account/Safe/SafeAccountV0_3_0"; | ||
export { createUserOperationHash, createCallData, getFunctionSelector, fetchAccountNonce, calculateUserOperationMaxGasCost, sendJsonRpcRequest, } from "./utils"; | ||
export { CreateUserOperationV6Overrides, CreateUserOperationV7Overrides, InitCodeOverrides, SafeModuleExecutorFunctionSelector, SafeUserOperationTypedDataDomain, WebauthPublicKey, EOADummySignature, WebauthDummySignerSignaturePair, WebauthSignatureData, SignerSignaturePair, } from "./account/Safe/types"; | ||
export { CreateUserOperationV6Overrides, CreateUserOperationV7Overrides, InitCodeOverrides, SafeModuleExecutorFunctionSelector, SafeUserOperationTypedDataDomain, WebauthnPublicKey, EOADummySignature, WebauthnDummySignerSignaturePair, WebauthnSignatureData, SignerSignaturePair, } from "./account/Safe/types"; | ||
export { CandidePaymasterContext, PrependTokenPaymasterApproveAccount, } from "./paymaster/types"; | ||
export { UserOperationV6, UserOperationV7, AbiInputValue, JsonRpcParam, JsonRpcResponse, JsonRpcResult, GasEstimationResult, UserOperationByHashResult, UserOperationReceipt, UserOperationReceiptResult, JsonRpcError, StateOverrideSet, Operation, MetaTransaction, } from "./types"; | ||
export { ZeroAddress, BaseUserOperationDummyValues } from "./constants"; | ||
export { ZeroAddress, BaseUserOperationDummyValues, EIP712_SAFE_OPERATION_V7_TYPE, EIP712_SAFE_OPERATION_V6_TYPE, } from "./constants"; | ||
export { AbstractionKitError } from "./errors"; | ||
//# sourceMappingURL=abstractionkit.d.ts.map |
import { SafeModule } from "./SafeModule"; | ||
import { MetaTransaction } from "../../../types"; | ||
export declare enum SocialRecoveryModuleGracePeriodSelector { | ||
After3Minutes = "0x949d01d424bE050D09C16025dd007CB59b3A8c66", | ||
After3Days = "0x38275826E1933303E508433dD5f289315Da2541c", | ||
After7Days = "0x088f6cfD8BB1dDb1BB069CCb3fc1A98927D233f2", | ||
After14Days = "0x9BacD92F4687Db306D7ded5d4513a51EA05df25b" | ||
} | ||
export declare class SocialRecoveryModule extends SafeModule { | ||
static readonly DEFAULT_SOCIAL_RECOVERY_ADDRESS = "0x4Aa5Bf7D840aC607cb5BD3249e6Af6FC86C04897"; | ||
static readonly DEFAULT_SOCIAL_RECOVERY_ADDRESS = SocialRecoveryModuleGracePeriodSelector.After3Days; | ||
constructor(moduleAddress?: string); | ||
createConfirmRecoveryMetaTransaction(accountAddress: string, newOwners: string[], newThreshold: number, execute: boolean): MetaTransaction; | ||
createMultiConfirmRecoveryMetaTransaction(accountAddress: string, newOwners: string[], newThreshold: number, signatureData: RecoverySignatureData, execute: boolean): MetaTransaction; | ||
createMultiConfirmRecoveryMetaTransaction(accountAddress: string, newOwners: string[], newThreshold: number, signaturePairList: RecoverySignaturePair[], execute: boolean): MetaTransaction; | ||
createExecuteRecoveryMetaTransaction(accountAddress: string, newOwners: string[], newThreshold: number): MetaTransaction; | ||
@@ -12,3 +18,6 @@ createFinalizeRecoveryMetaTransaction(accountAddress: string): MetaTransaction; | ||
createAddGuardianWithThresholdMetaTransaction(guardianAddress: string, threshold: bigint): MetaTransaction; | ||
createRevokeGuardianWithThresholdMetaTransaction(prevGuardianAddress: string, guardianAddress: string, threshold: bigint): MetaTransaction; | ||
createRevokeGuardianWithThresholdMetaTransaction(nodeRpcUrl: string, accountAddress: string, guardianAddress: string, threshold: bigint, overrides?: { | ||
prevGuardianAddress?: string; | ||
}): Promise<MetaTransaction>; | ||
createStandardRevokeGuardianWithThresholdMetaTransaction(prevGuardianAddress: string, guardianAddress: string, threshold: bigint): MetaTransaction; | ||
createChangeThresholdMetaTransaction(threshold: bigint): MetaTransaction; | ||
@@ -31,6 +40,6 @@ getRecoveryHash(nodeRpcUrl: string, accountAddress: string, newOwners: string[], newThreshold: number, nonce: bigint): Promise<string>; | ||
}; | ||
export type RecoverySignatureData = { | ||
export type RecoverySignaturePair = { | ||
signer: bigint; | ||
signature: string[]; | ||
signature: string; | ||
}; | ||
//# sourceMappingURL=SocialRecoveryModule.d.ts.map |
import { SmartAccount } from "../SmartAccount"; | ||
import { MetaTransaction, Operation, StateOverrideSet, BaseUserOperation, UserOperationV6, UserOperationV7 } from "../../types"; | ||
import { CreateBaseUserOperationOverrides, Signer, SignerSignaturePair, WebauthSignatureData, SafeModuleExecutorFunctionSelector, WebAuthnSignatureOverrides, BaseInitOverrides } from "./types"; | ||
import { CreateBaseUserOperationOverrides, Signer, SignerSignaturePair, WebauthnSignatureData, SafeModuleExecutorFunctionSelector, WebAuthnSignatureOverrides, BaseInitOverrides } from "./types"; | ||
import { SendUseroperationResponse } from "../SendUseroperationResponse"; | ||
@@ -31,10 +31,16 @@ export declare class SafeAccount extends SmartAccount { | ||
}): string; | ||
static createAccountCallDataSingleTransaction(metaTransaction: MetaTransaction, safeModuleExecutorFunctionSelector?: SafeModuleExecutorFunctionSelector): string; | ||
static createAccountCallDataBatchTransactions(metaTransactions: MetaTransaction[], overrides: { | ||
safeModuleExecutorFunctionSelector: SafeModuleExecutorFunctionSelector; | ||
multisendContractAddress: string; | ||
static createAccountCallDataSingleTransaction(metaTransaction: MetaTransaction, overrides?: { | ||
safeModuleExecutorFunctionSelector?: SafeModuleExecutorFunctionSelector; | ||
}): string; | ||
static createAccountCallData(to: string, value: bigint, data: string, operation: Operation, safeModuleExecutorFunctionSelector?: SafeModuleExecutorFunctionSelector): string; | ||
static createAccountCallDataBatchTransactions(metaTransactions: MetaTransaction[], overrides?: { | ||
safeModuleExecutorFunctionSelector?: SafeModuleExecutorFunctionSelector; | ||
multisendContractAddress?: string; | ||
}): string; | ||
static createAccountCallData(to: string, value: bigint, data: string, operation: Operation, overrides?: { | ||
safeModuleExecutorFunctionSelector?: SafeModuleExecutorFunctionSelector; | ||
}): string; | ||
static decodeAccountCallData(callData: string): [MetaTransaction, SafeModuleExecutorFunctionSelector]; | ||
static prependTokenPaymasterApproveToCallDataStatic(callData: string, tokenAddress: string, paymasterAddress: string, approveAmount: bigint, multisendContractAddress?: string): string; | ||
static prependTokenPaymasterApproveToCallDataStatic(callData: string, tokenAddress: string, paymasterAddress: string, approveAmount: bigint, overrides?: { | ||
multisendContractAddress?: string; | ||
}): string; | ||
static formatEip712SignaturesToUseroperationSignature(signersAddresses: string[], signatures: string[], overrides?: { | ||
@@ -68,5 +74,7 @@ validAfter?: bigint; | ||
protected static createAccountAddressAndFactoryAddressAndData(owners: Signer[], overrides: BaseInitOverrides, safe4337ModuleAddress: string, safeModuleSetupddress: string): [string, string, string]; | ||
protected static createBaseInitializerCallData(owners: Signer[], threshold: number, safe4337ModuleAddress: string, safeModuleSetupddress: string, multisendContractAddress?: string, webAuthnSharedSigner?: string, eip7212WebAuthPrecompileVerifierForSharedSigner?: string, eip7212WebAuthContractVerifierForSharedSigner?: string): string; | ||
protected static createBaseInitializerCallData(owners: Signer[], threshold: number, safe4337ModuleAddress: string, safeModuleSetupddress: string, multisendContractAddress?: string, webAuthnSharedSigner?: string, eip7212WebAuthnPrecompileVerifierForSharedSigner?: string, eip7212WebAuthnContractVerifierForSharedSigner?: string): string; | ||
protected static createFactoryAddressAndData(owners: Signer[], overrides: BaseInitOverrides | undefined, safe4337ModuleAddress: string, safeModuleSetupddress: string): [string, string]; | ||
prependTokenPaymasterApproveToCallData(callData: string, tokenAddress: string, paymasterAddress: string, approveAmount: bigint, multisendContractAddress?: string): string; | ||
prependTokenPaymasterApproveToCallData(callData: string, tokenAddress: string, paymasterAddress: string, approveAmount: bigint, overrides?: { | ||
multisendContractAddress?: string; | ||
}): string; | ||
estimateUserOperationGas(userOperation: UserOperationV6 | UserOperationV7, bundlerRpc: string, overrides?: { | ||
@@ -82,16 +90,16 @@ stateOverrideSet?: StateOverrideSet; | ||
static createWebAuthnSignerVerifierAddress(x: bigint, y: bigint, overrides?: { | ||
eip7212WebAuthPrecompileVerifier?: string; | ||
eip7212WebAuthContractVerifier?: string; | ||
eip7212WebAuthnPrecompileVerifier?: string; | ||
eip7212WebAuthnContractVerifier?: string; | ||
webAuthnSignerFactory?: string; | ||
webAuthnSignerSingleton?: string; | ||
}): string; | ||
static formatSignaturesToUseroperationSignature(signatures: SignerSignaturePair[], overrides?: WebAuthnSignatureOverrides): string; | ||
static getLowerCaseAddress(signer: Signer, webAuthnSignatureOverrides?: WebAuthnSignatureOverrides): string; | ||
static sortSignatures(signatures: SignerSignaturePair[], webAuthnSignatureOverrides?: WebAuthnSignatureOverrides): void; | ||
static buildSignaturesFromSingerSignaturePairs(signatures: SignerSignaturePair[], webAuthnSignatureOverrides?: WebAuthnSignatureOverrides): string; | ||
static createWebAuthnSignature(signatureData: WebauthSignatureData): string; | ||
static formatSignaturesToUseroperationSignature(signerSignaturePairs: SignerSignaturePair[], overrides?: WebAuthnSignatureOverrides): string; | ||
static getSignerLowerCaseAddress(signer: Signer, overrides?: WebAuthnSignatureOverrides): string; | ||
static sortSignatures(signerSignaturePairs: SignerSignaturePair[], overrides?: WebAuthnSignatureOverrides): void; | ||
static buildSignaturesFromSingerSignaturePairs(signerSignaturePairs: SignerSignaturePair[], webAuthnSignatureOverrides?: WebAuthnSignatureOverrides): string; | ||
static createWebAuthnSignature(signatureData: WebauthnSignatureData): string; | ||
createSwapOwnerMetaTransactions(nodeRpcUrl: string, newOwner: Signer, oldOwner: Signer, overrides?: { | ||
prevOwner?: string; | ||
eip7212WebAuthPrecompileVerifier?: string; | ||
eip7212WebAuthContractVerifier?: string; | ||
eip7212WebAuthnPrecompileVerifier?: string; | ||
eip7212WebAuthnContractVerifier?: string; | ||
webAuthnSignerFactory?: string; | ||
@@ -102,4 +110,4 @@ webAuthnSignerSingleton?: string; | ||
prevOwner?: string; | ||
eip7212WebAuthPrecompileVerifier?: string; | ||
eip7212WebAuthContractVerifier?: string; | ||
eip7212WebAuthnPrecompileVerifier?: string; | ||
eip7212WebAuthnContractVerifier?: string; | ||
webAuthnSignerFactory?: string; | ||
@@ -112,4 +120,4 @@ webAuthnSignerSingleton?: string; | ||
static createDeployWebAuthnVerifierMetaTransaction(x: bigint, y: bigint, overrides?: { | ||
eip7212WebAuthPrecompileVerifier?: string; | ||
eip7212WebAuthContractVerifier?: string; | ||
eip7212WebAuthnPrecompileVerifier?: string; | ||
eip7212WebAuthnContractVerifier?: string; | ||
webAuthnSignerFactory?: string; | ||
@@ -116,0 +124,0 @@ }): MetaTransaction; |
import { SafeAccount } from "./SafeAccount"; | ||
import { InitCodeOverrides, Signer, CreateUserOperationV6Overrides } from "./types"; | ||
import { InitCodeOverrides, Signer, CreateUserOperationV6Overrides, SafeAccountSingleton } from "./types"; | ||
import { UserOperationV6, MetaTransaction } from "../../types"; | ||
@@ -12,3 +12,14 @@ export declare class SafeAccountV0_2_0 extends SafeAccount { | ||
}); | ||
static createAccountAddress(owners: Signer[], overrides?: InitCodeOverrides): string; | ||
static createAccountAddress(owners: Signer[], overrides?: { | ||
threshold?: number; | ||
c2Nonce?: bigint; | ||
safe4337ModuleAddress?: string; | ||
safeModuleSetupddress?: string; | ||
safeAccountSingleton?: SafeAccountSingleton; | ||
safeAccountFactoryAddress?: string; | ||
multisendContractAddress?: string; | ||
webAuthnSharedSigner?: string; | ||
eip7212WebAuthnPrecompileVerifierForSharedSigner?: string; | ||
eip7212WebAuthnContractVerifierForSharedSigner?: string; | ||
}): string; | ||
static initializeNewAccount(owners: Signer[], overrides?: InitCodeOverrides): SafeAccountV0_2_0; | ||
@@ -21,3 +32,3 @@ static getUserOperationEip712Hash(useroperation: UserOperationV6, chainId: bigint, overrides?: { | ||
}): string; | ||
static createAccountAddressAndInitCode(owners: Signer[], overrides: InitCodeOverrides): [string, string]; | ||
static createAccountAddressAndInitCode(owners: Signer[], overrides?: InitCodeOverrides): [string, string]; | ||
static createInitializerCallData(owners: Signer[], threshold: number, overrides?: { | ||
@@ -28,8 +39,8 @@ safe4337ModuleAddress?: string; | ||
webAuthnSharedSigner?: string; | ||
eip7212WebAuthPrecompileVerifierForSharedSigner?: string; | ||
eip7212WebAuthContractVerifierForSharedSigner?: string; | ||
eip7212WebAuthnPrecompileVerifierForSharedSigner?: string; | ||
eip7212WebAuthnContractVerifierForSharedSigner?: string; | ||
}): string; | ||
static createInitCode(owners: Signer[], overrides: InitCodeOverrides): string; | ||
static createInitCode(owners: Signer[], overrides?: InitCodeOverrides): string; | ||
createUserOperation(transactions: MetaTransaction[], providerRpc?: string, bundlerRpc?: string, overrides?: CreateUserOperationV6Overrides): Promise<UserOperationV6>; | ||
} | ||
//# sourceMappingURL=SafeAccountV0_2_0.d.ts.map |
@@ -25,8 +25,8 @@ import { SafeAccount } from "./SafeAccount"; | ||
webAuthnSharedSigner?: string; | ||
eip7212WebAuthPrecompileVerifierForSharedSigner?: string; | ||
eip7212WebAuthContractVerifierForSharedSigner?: string; | ||
eip7212WebAuthnPrecompileVerifierForSharedSigner?: string; | ||
eip7212WebAuthnContractVerifierForSharedSigner?: string; | ||
}): string; | ||
static createFactoryAddressAndData(owners: Signer[], overrides: InitCodeOverrides): [string, string]; | ||
static createFactoryAddressAndData(owners: Signer[], overrides?: InitCodeOverrides): [string, string]; | ||
createUserOperation(transactions: MetaTransaction[], providerRpc?: string, bundlerRpc?: string, overrides?: CreateUserOperationV7Overrides): Promise<UserOperationV7>; | ||
} | ||
//# sourceMappingURL=SafeAccountV0_3_0.d.ts.map |
@@ -20,4 +20,4 @@ import type { StateOverrideSet } from "../../types"; | ||
webAuthnSignerSingleton?: string; | ||
eip7212WebAuthPrecompileVerifier?: string; | ||
eip7212WebAuthContractVerifier?: string; | ||
eip7212WebAuthnPrecompileVerifier?: string; | ||
eip7212WebAuthnContractVerifier?: string; | ||
safeModuleExecutorFunctionSelector?: SafeModuleExecutorFunctionSelector; | ||
@@ -47,4 +47,4 @@ multisendContractAddress?: string; | ||
webAuthnSharedSigner?: string; | ||
eip7212WebAuthPrecompileVerifierForSharedSigner?: string; | ||
eip7212WebAuthContractVerifierForSharedSigner?: string; | ||
eip7212WebAuthnPrecompileVerifierForSharedSigner?: string; | ||
eip7212WebAuthnContractVerifierForSharedSigner?: string; | ||
} | ||
@@ -58,4 +58,4 @@ export interface BaseInitOverrides { | ||
webAuthnSharedSigner?: string; | ||
eip7212WebAuthPrecompileVerifierForSharedSigner?: string; | ||
eip7212WebAuthContractVerifierForSharedSigner?: string; | ||
eip7212WebAuthnPrecompileVerifierForSharedSigner?: string; | ||
eip7212WebAuthnContractVerifierForSharedSigner?: string; | ||
} | ||
@@ -65,4 +65,4 @@ export interface WebAuthnSignatureOverrides { | ||
webAuthnSharedSigner?: string; | ||
eip7212WebAuthPrecompileVerifier?: string; | ||
eip7212WebAuthContractVerifier?: string; | ||
eip7212WebAuthnPrecompileVerifier?: string; | ||
eip7212WebAuthnContractVerifier?: string; | ||
webAuthnSignerFactory?: string; | ||
@@ -112,9 +112,9 @@ webAuthnSignerSingleton?: string; | ||
export type ECDSAPublicAddress = string; | ||
export interface WebauthPublicKey { | ||
export interface WebauthnPublicKey { | ||
x: bigint; | ||
y: bigint; | ||
} | ||
export type Signer = ECDSAPublicAddress | WebauthPublicKey; | ||
export type Signer = ECDSAPublicAddress | WebauthnPublicKey; | ||
export type ECDSASignature = string; | ||
export interface WebauthSignatureData { | ||
export interface WebauthnSignatureData { | ||
authenticatorData: ArrayBuffer; | ||
@@ -130,3 +130,3 @@ clientDataFields: string; | ||
export declare const EOADummySignature: SignerSignaturePair; | ||
export declare const WebauthDummySignerSignaturePair: SignerSignaturePair; | ||
export declare const WebauthnDummySignerSignaturePair: SignerSignaturePair; | ||
//# sourceMappingURL=types.d.ts.map |
@@ -17,2 +17,14 @@ import { SafeAccountSingleton } from "./account/Safe/types"; | ||
}; | ||
export declare const EIP712_SAFE_OPERATION_V6_TYPE: { | ||
SafeOp: { | ||
type: string; | ||
name: string; | ||
}[]; | ||
}; | ||
export declare const EIP712_SAFE_OPERATION_V7_TYPE: { | ||
SafeOp: { | ||
type: string; | ||
name: string; | ||
}[]; | ||
}; | ||
//# sourceMappingURL=constants.d.ts.map |
@@ -18,10 +18,10 @@ import { Paymaster } from "./Paymaster"; | ||
getSupportedERC20TokenData(erc20TokenAddress: string, entrypoint?: string): Promise<ERC20Token | null>; | ||
createPaymasterUserOperation(userOperationInput: UserOperationV7, bundlerRpc: string, context?: CandidePaymasterContext, createPaymasterUserOperationOverrides?: CreatePaymasterUserOperationOverrides): Promise<[UserOperationV7, SponsorMetadata | undefined]>; | ||
createPaymasterUserOperation(userOperationInput: UserOperationV6, bundlerRpc: string, context?: CandidePaymasterContext, createPaymasterUserOperationOverrides?: CreatePaymasterUserOperationOverrides): Promise<[UserOperationV6, SponsorMetadata | undefined]>; | ||
createSponsorPaymasterUserOperation(userOperation: UserOperationV7, bundlerRpc: string, createPaymasterUserOperationOverrides?: CreatePaymasterUserOperationOverrides): Promise<[UserOperationV7, SponsorMetadata | undefined]>; | ||
createSponsorPaymasterUserOperation(userOperation: UserOperationV6, bundlerRpc: string, createPaymasterUserOperationOverrides?: CreatePaymasterUserOperationOverrides): Promise<[UserOperationV6, SponsorMetadata | undefined]>; | ||
createTokenPaymasterUserOperation(smartAccount: PrependTokenPaymasterApproveAccount, userOperation: UserOperationV7, tokenAddress: string, bundlerRpc: string, createPaymasterUserOperationOverrides?: CreatePaymasterUserOperationOverrides): Promise<UserOperationV7>; | ||
createTokenPaymasterUserOperation(smartAccount: PrependTokenPaymasterApproveAccount, userOperation: UserOperationV6, tokenAddress: string, bundlerRpc: string, createPaymasterUserOperationOverrides?: CreatePaymasterUserOperationOverrides): Promise<UserOperationV6>; | ||
createPaymasterUserOperation(userOperationInput: UserOperationV7, bundlerRpc: string, context?: CandidePaymasterContext, overrides?: CreatePaymasterUserOperationOverrides): Promise<[UserOperationV7, SponsorMetadata | undefined]>; | ||
createPaymasterUserOperation(userOperationInput: UserOperationV6, bundlerRpc: string, context?: CandidePaymasterContext, overrides?: CreatePaymasterUserOperationOverrides): Promise<[UserOperationV6, SponsorMetadata | undefined]>; | ||
createSponsorPaymasterUserOperation(userOperation: UserOperationV7, bundlerRpc: string, overrides?: CreatePaymasterUserOperationOverrides): Promise<[UserOperationV7, SponsorMetadata | undefined]>; | ||
createSponsorPaymasterUserOperation(userOperation: UserOperationV6, bundlerRpc: string, overrides?: CreatePaymasterUserOperationOverrides): Promise<[UserOperationV6, SponsorMetadata | undefined]>; | ||
createTokenPaymasterUserOperation(smartAccount: PrependTokenPaymasterApproveAccount, userOperation: UserOperationV7, tokenAddress: string, bundlerRpc: string, overrides?: CreatePaymasterUserOperationOverrides): Promise<UserOperationV7>; | ||
createTokenPaymasterUserOperation(smartAccount: PrependTokenPaymasterApproveAccount, userOperation: UserOperationV6, tokenAddress: string, bundlerRpc: string, overrides?: CreatePaymasterUserOperationOverrides): Promise<UserOperationV6>; | ||
calculateUserOperationErc20TokenMaxGasCost(userOperation: UserOperationV7 | UserOperationV6, erc20TokenAddress: string): Promise<bigint>; | ||
} | ||
//# sourceMappingURL=CandidePaymaster.d.ts.map |
@@ -7,3 +7,3 @@ { | ||
}, | ||
"version": "0.1.16", | ||
"version": "0.1.17", | ||
"description": "Account Abstraction 4337 SDK by Candidelabs", | ||
@@ -19,3 +19,2 @@ "main": "dist/index.js", | ||
"lint": "eslint -f unix \"src/**/*.{ts,tsx}\"", | ||
"prepare": "husky install", | ||
"test": "jest" | ||
@@ -54,3 +53,2 @@ }, | ||
"eslint-plugin-tsdoc": "^0.2.17", | ||
"husky": ">=6", | ||
"jest": "^29.7.0", | ||
@@ -57,0 +55,0 @@ "lint-staged": ">=10", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
328962
10
1700