@metaplex-foundation/mpl-bubblegum
Advanced tools
Comparing version 1.0.0-alpha.5 to 1.0.0-alpha.6
@@ -10,2 +10,3 @@ /** | ||
import { Serializer } from '@metaplex-foundation/umi/serializers'; | ||
import { PickPartial } from '../shared'; | ||
export type BurnInstructionAccounts = { | ||
@@ -38,3 +39,6 @@ treeConfig?: PublicKey | Pda; | ||
export declare function getBurnInstructionDataSerializer(): Serializer<BurnInstructionDataArgs, BurnInstructionData>; | ||
export type BurnInstructionArgs = BurnInstructionDataArgs; | ||
export type BurnInstructionExtraArgs = { | ||
proof: Array<PublicKey>; | ||
}; | ||
export type BurnInstructionArgs = PickPartial<BurnInstructionDataArgs & BurnInstructionExtraArgs, 'proof'>; | ||
export declare function burn(context: Pick<Context, 'programs' | 'eddsa'>, input: BurnInstructionAccounts & BurnInstructionArgs): TransactionBuilder; |
@@ -70,2 +70,3 @@ "use strict"; | ||
]); | ||
(0, shared_1.addObjectProperty)(resolvingArgs, 'proof', input.proof ?? []); | ||
const resolvedArgs = { ...input, ...resolvingArgs }; | ||
@@ -79,2 +80,5 @@ (0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.treeConfig, false); | ||
(0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.systemProgram, false); | ||
// Remaining Accounts. | ||
const remainingAccounts = resolvedArgs.proof.map((address) => [address, false]); | ||
remainingAccounts.forEach((remainingAccount) => (0, shared_1.addAccountMeta)(keys, signers, remainingAccount, false)); | ||
// Data. | ||
@@ -81,0 +85,0 @@ const data = getBurnInstructionDataSerializer().serialize(resolvedArgs); |
@@ -10,2 +10,3 @@ /** | ||
import { Serializer } from '@metaplex-foundation/umi/serializers'; | ||
import { PickPartial } from '../shared'; | ||
export type DelegateInstructionAccounts = { | ||
@@ -39,3 +40,6 @@ treeConfig?: PublicKey | Pda; | ||
export declare function getDelegateInstructionDataSerializer(): Serializer<DelegateInstructionDataArgs, DelegateInstructionData>; | ||
export type DelegateInstructionArgs = DelegateInstructionDataArgs; | ||
export type DelegateInstructionExtraArgs = { | ||
proof: Array<PublicKey>; | ||
}; | ||
export type DelegateInstructionArgs = PickPartial<DelegateInstructionDataArgs & DelegateInstructionExtraArgs, 'proof'>; | ||
export declare function delegate(context: Pick<Context, 'programs' | 'eddsa'>, input: DelegateInstructionAccounts & DelegateInstructionArgs): TransactionBuilder; |
@@ -66,2 +66,3 @@ "use strict"; | ||
]); | ||
(0, shared_1.addObjectProperty)(resolvingArgs, 'proof', input.proof ?? []); | ||
const resolvedArgs = { ...input, ...resolvingArgs }; | ||
@@ -76,2 +77,5 @@ (0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.treeConfig, false); | ||
(0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.systemProgram, false); | ||
// Remaining Accounts. | ||
const remainingAccounts = resolvedArgs.proof.map((address) => [address, false]); | ||
remainingAccounts.forEach((remainingAccount) => (0, shared_1.addAccountMeta)(keys, signers, remainingAccount, false)); | ||
// Data. | ||
@@ -78,0 +82,0 @@ const data = getDelegateInstructionDataSerializer().serialize(resolvedArgs); |
@@ -19,2 +19,6 @@ /** | ||
collectionAuthority?: Signer; | ||
/** | ||
* If there is no collecton authority record PDA then | ||
* this must be the Bubblegum program address. | ||
*/ | ||
collectionAuthorityRecordPda?: PublicKey | Pda; | ||
@@ -21,0 +25,0 @@ collectionMint: PublicKey | Pda; |
@@ -10,2 +10,3 @@ /** | ||
import { Serializer } from '@metaplex-foundation/umi/serializers'; | ||
import { PickPartial } from '../shared'; | ||
export type RedeemInstructionAccounts = { | ||
@@ -39,3 +40,6 @@ treeConfig?: PublicKey | Pda; | ||
export declare function getRedeemInstructionDataSerializer(): Serializer<RedeemInstructionDataArgs, RedeemInstructionData>; | ||
export type RedeemInstructionArgs = RedeemInstructionDataArgs; | ||
export type RedeemInstructionExtraArgs = { | ||
proof: Array<PublicKey>; | ||
}; | ||
export type RedeemInstructionArgs = PickPartial<RedeemInstructionDataArgs & RedeemInstructionExtraArgs, 'proof'>; | ||
export declare function redeem(context: Pick<Context, 'programs' | 'eddsa'>, input: RedeemInstructionAccounts & RedeemInstructionArgs): TransactionBuilder; |
@@ -79,2 +79,3 @@ "use strict"; | ||
]); | ||
(0, shared_1.addObjectProperty)(resolvingArgs, 'proof', input.proof ?? []); | ||
const resolvedArgs = { ...input, ...resolvingArgs }; | ||
@@ -89,2 +90,5 @@ (0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.treeConfig, false); | ||
(0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.systemProgram, false); | ||
// Remaining Accounts. | ||
const remainingAccounts = resolvedArgs.proof.map((address) => [address, false]); | ||
remainingAccounts.forEach((remainingAccount) => (0, shared_1.addAccountMeta)(keys, signers, remainingAccount, false)); | ||
// Data. | ||
@@ -91,0 +95,0 @@ const data = getRedeemInstructionDataSerializer().serialize(resolvedArgs); |
@@ -18,4 +18,12 @@ /** | ||
payer?: Signer; | ||
/** | ||
* the case of `set_and_verify_collection` where | ||
* we are actually changing the NFT metadata. | ||
*/ | ||
treeCreatorOrDelegate?: PublicKey | Pda; | ||
collectionAuthority?: Signer; | ||
/** | ||
* If there is no collecton authority record PDA then | ||
* this must be the Bubblegum program address. | ||
*/ | ||
collectionAuthorityRecordPda?: PublicKey | Pda; | ||
@@ -53,3 +61,6 @@ collectionMint: PublicKey | Pda; | ||
export declare function getSetAndVerifyCollectionInstructionDataSerializer(): Serializer<SetAndVerifyCollectionInstructionDataArgs, SetAndVerifyCollectionInstructionData>; | ||
export type SetAndVerifyCollectionInstructionArgs = PickPartial<SetAndVerifyCollectionInstructionDataArgs, 'dataHash' | 'creatorHash' | 'collection'>; | ||
export type SetAndVerifyCollectionInstructionExtraArgs = { | ||
proof: Array<PublicKey>; | ||
}; | ||
export type SetAndVerifyCollectionInstructionArgs = PickPartial<SetAndVerifyCollectionInstructionDataArgs & SetAndVerifyCollectionInstructionExtraArgs, 'dataHash' | 'creatorHash' | 'collection' | 'proof'>; | ||
export declare function setAndVerifyCollection(context: Pick<Context, 'programs' | 'eddsa' | 'identity' | 'payer'>, input: SetAndVerifyCollectionInstructionAccounts & SetAndVerifyCollectionInstructionArgs): TransactionBuilder; |
@@ -121,2 +121,3 @@ "use strict"; | ||
(0, shared_1.addObjectProperty)(resolvingArgs, 'collection', input.collection ?? (0, umi_1.publicKey)(input.collectionMint, false)); | ||
(0, shared_1.addObjectProperty)(resolvingArgs, 'proof', input.proof ?? []); | ||
const resolvedArgs = { ...input, ...resolvingArgs }; | ||
@@ -139,2 +140,5 @@ (0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.treeConfig, false); | ||
(0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.systemProgram, false); | ||
// Remaining Accounts. | ||
const remainingAccounts = resolvedArgs.proof.map((address) => [address, false]); | ||
remainingAccounts.forEach((remainingAccount) => (0, shared_1.addAccountMeta)(keys, signers, remainingAccount, false)); | ||
// Data. | ||
@@ -141,0 +145,0 @@ const data = getSetAndVerifyCollectionInstructionDataSerializer().serialize(resolvedArgs); |
@@ -10,2 +10,3 @@ /** | ||
import { Serializer } from '@metaplex-foundation/umi/serializers'; | ||
import { PickPartial } from '../shared'; | ||
export type TransferInstructionAccounts = { | ||
@@ -39,3 +40,6 @@ treeConfig?: PublicKey | Pda; | ||
export declare function getTransferInstructionDataSerializer(): Serializer<TransferInstructionDataArgs, TransferInstructionData>; | ||
export type TransferInstructionArgs = TransferInstructionDataArgs; | ||
export type TransferInstructionExtraArgs = { | ||
proof: Array<PublicKey>; | ||
}; | ||
export type TransferInstructionArgs = PickPartial<TransferInstructionDataArgs & TransferInstructionExtraArgs, 'proof'>; | ||
export declare function transfer(context: Pick<Context, 'programs' | 'eddsa'>, input: TransferInstructionAccounts & TransferInstructionArgs): TransactionBuilder; |
@@ -71,2 +71,3 @@ "use strict"; | ||
]); | ||
(0, shared_1.addObjectProperty)(resolvingArgs, 'proof', input.proof ?? []); | ||
const resolvedArgs = { ...input, ...resolvingArgs }; | ||
@@ -81,2 +82,5 @@ (0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.treeConfig, false); | ||
(0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.systemProgram, false); | ||
// Remaining Accounts. | ||
const remainingAccounts = resolvedArgs.proof.map((address) => [address, false]); | ||
remainingAccounts.forEach((remainingAccount) => (0, shared_1.addAccountMeta)(keys, signers, remainingAccount, false)); | ||
// Data. | ||
@@ -83,0 +87,0 @@ const data = getTransferInstructionDataSerializer().serialize(resolvedArgs); |
@@ -18,4 +18,12 @@ /** | ||
payer?: Signer; | ||
/** | ||
* the case of `set_and_verify_collection` where | ||
* we are actually changing the NFT metadata. | ||
*/ | ||
treeCreatorOrDelegate?: PublicKey | Pda; | ||
collectionAuthority?: Signer; | ||
/** | ||
* If there is no collecton authority record PDA then | ||
* this must be the Bubblegum program address. | ||
*/ | ||
collectionAuthorityRecordPda?: PublicKey | Pda; | ||
@@ -51,3 +59,6 @@ collectionMint: PublicKey | Pda; | ||
export declare function getUnverifyCollectionInstructionDataSerializer(): Serializer<UnverifyCollectionInstructionDataArgs, UnverifyCollectionInstructionData>; | ||
export type UnverifyCollectionInstructionArgs = PickPartial<UnverifyCollectionInstructionDataArgs, 'dataHash' | 'creatorHash'>; | ||
export type UnverifyCollectionInstructionExtraArgs = { | ||
proof: Array<PublicKey>; | ||
}; | ||
export type UnverifyCollectionInstructionArgs = PickPartial<UnverifyCollectionInstructionDataArgs & UnverifyCollectionInstructionExtraArgs, 'dataHash' | 'creatorHash' | 'proof'>; | ||
export declare function unverifyCollection(context: Pick<Context, 'programs' | 'eddsa' | 'identity' | 'payer'>, input: UnverifyCollectionInstructionAccounts & UnverifyCollectionInstructionArgs): TransactionBuilder; |
@@ -119,2 +119,3 @@ "use strict"; | ||
(0, hooked_1.resolveCreatorHash)(context, { ...input, ...resolvedAccounts }, { ...input, ...resolvingArgs }, programId, false)); | ||
(0, shared_1.addObjectProperty)(resolvingArgs, 'proof', input.proof ?? []); | ||
const resolvedArgs = { ...input, ...resolvingArgs }; | ||
@@ -137,2 +138,5 @@ (0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.treeConfig, false); | ||
(0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.systemProgram, false); | ||
// Remaining Accounts. | ||
const remainingAccounts = resolvedArgs.proof.map((address) => [address, false]); | ||
remainingAccounts.forEach((remainingAccount) => (0, shared_1.addAccountMeta)(keys, signers, remainingAccount, false)); | ||
// Data. | ||
@@ -139,0 +143,0 @@ const data = getUnverifyCollectionInstructionDataSerializer().serialize(resolvedArgs); |
@@ -43,3 +43,6 @@ /** | ||
export declare function getUnverifyCreatorInstructionDataSerializer(): Serializer<UnverifyCreatorInstructionDataArgs, UnverifyCreatorInstructionData>; | ||
export type UnverifyCreatorInstructionArgs = PickPartial<UnverifyCreatorInstructionDataArgs, 'dataHash' | 'creatorHash'>; | ||
export type UnverifyCreatorInstructionExtraArgs = { | ||
proof: Array<PublicKey>; | ||
}; | ||
export type UnverifyCreatorInstructionArgs = PickPartial<UnverifyCreatorInstructionDataArgs & UnverifyCreatorInstructionExtraArgs, 'dataHash' | 'creatorHash' | 'proof'>; | ||
export declare function unverifyCreator(context: Pick<Context, 'programs' | 'eddsa' | 'identity' | 'payer'>, input: UnverifyCreatorInstructionAccounts & UnverifyCreatorInstructionArgs): TransactionBuilder; |
@@ -81,2 +81,3 @@ "use strict"; | ||
(0, hooked_1.resolveCreatorHash)(context, { ...input, ...resolvedAccounts }, { ...input, ...resolvingArgs }, programId, false)); | ||
(0, shared_1.addObjectProperty)(resolvingArgs, 'proof', input.proof ?? []); | ||
const resolvedArgs = { ...input, ...resolvingArgs }; | ||
@@ -92,2 +93,5 @@ (0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.treeConfig, false); | ||
(0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.systemProgram, false); | ||
// Remaining Accounts. | ||
const remainingAccounts = resolvedArgs.proof.map((address) => [address, false]); | ||
remainingAccounts.forEach((remainingAccount) => (0, shared_1.addAccountMeta)(keys, signers, remainingAccount, false)); | ||
// Data. | ||
@@ -94,0 +98,0 @@ const data = getUnverifyCreatorInstructionDataSerializer().serialize(resolvedArgs); |
@@ -18,4 +18,12 @@ /** | ||
payer?: Signer; | ||
/** | ||
* the case of `set_and_verify_collection` where | ||
* we are actually changing the NFT metadata. | ||
*/ | ||
treeCreatorOrDelegate?: PublicKey | Pda; | ||
collectionAuthority?: Signer; | ||
/** | ||
* If there is no collecton authority record PDA then | ||
* this must be the Bubblegum program address. | ||
*/ | ||
collectionAuthorityRecordPda?: PublicKey | Pda; | ||
@@ -51,3 +59,6 @@ collectionMint: PublicKey | Pda; | ||
export declare function getVerifyCollectionInstructionDataSerializer(): Serializer<VerifyCollectionInstructionDataArgs, VerifyCollectionInstructionData>; | ||
export type VerifyCollectionInstructionArgs = PickPartial<VerifyCollectionInstructionDataArgs, 'dataHash' | 'creatorHash'>; | ||
export type VerifyCollectionInstructionExtraArgs = { | ||
proof: Array<PublicKey>; | ||
}; | ||
export type VerifyCollectionInstructionArgs = PickPartial<VerifyCollectionInstructionDataArgs & VerifyCollectionInstructionExtraArgs, 'dataHash' | 'creatorHash' | 'proof'>; | ||
export declare function verifyCollection(context: Pick<Context, 'programs' | 'eddsa' | 'identity' | 'payer'>, input: VerifyCollectionInstructionAccounts & VerifyCollectionInstructionArgs): TransactionBuilder; |
@@ -119,2 +119,3 @@ "use strict"; | ||
(0, hooked_1.resolveCreatorHash)(context, { ...input, ...resolvedAccounts }, { ...input, ...resolvingArgs }, programId, false)); | ||
(0, shared_1.addObjectProperty)(resolvingArgs, 'proof', input.proof ?? []); | ||
const resolvedArgs = { ...input, ...resolvingArgs }; | ||
@@ -137,2 +138,5 @@ (0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.treeConfig, false); | ||
(0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.systemProgram, false); | ||
// Remaining Accounts. | ||
const remainingAccounts = resolvedArgs.proof.map((address) => [address, false]); | ||
remainingAccounts.forEach((remainingAccount) => (0, shared_1.addAccountMeta)(keys, signers, remainingAccount, false)); | ||
// Data. | ||
@@ -139,0 +143,0 @@ const data = getVerifyCollectionInstructionDataSerializer().serialize(resolvedArgs); |
@@ -43,3 +43,6 @@ /** | ||
export declare function getVerifyCreatorInstructionDataSerializer(): Serializer<VerifyCreatorInstructionDataArgs, VerifyCreatorInstructionData>; | ||
export type VerifyCreatorInstructionArgs = PickPartial<VerifyCreatorInstructionDataArgs, 'dataHash' | 'creatorHash'>; | ||
export type VerifyCreatorInstructionExtraArgs = { | ||
proof: Array<PublicKey>; | ||
}; | ||
export type VerifyCreatorInstructionArgs = PickPartial<VerifyCreatorInstructionDataArgs & VerifyCreatorInstructionExtraArgs, 'dataHash' | 'creatorHash' | 'proof'>; | ||
export declare function verifyCreator(context: Pick<Context, 'programs' | 'eddsa' | 'identity' | 'payer'>, input: VerifyCreatorInstructionAccounts & VerifyCreatorInstructionArgs): TransactionBuilder; |
@@ -78,2 +78,3 @@ "use strict"; | ||
(0, hooked_1.resolveCreatorHash)(context, { ...input, ...resolvedAccounts }, { ...input, ...resolvingArgs }, programId, false)); | ||
(0, shared_1.addObjectProperty)(resolvingArgs, 'proof', input.proof ?? []); | ||
const resolvedArgs = { ...input, ...resolvingArgs }; | ||
@@ -89,2 +90,5 @@ (0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.treeConfig, false); | ||
(0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.systemProgram, false); | ||
// Remaining Accounts. | ||
const remainingAccounts = resolvedArgs.proof.map((address) => [address, false]); | ||
remainingAccounts.forEach((remainingAccount) => (0, shared_1.addAccountMeta)(keys, signers, remainingAccount, false)); | ||
// Data. | ||
@@ -91,0 +95,0 @@ const data = getVerifyCreatorInstructionDataSerializer().serialize(resolvedArgs); |
@@ -10,2 +10,3 @@ /** | ||
import { Serializer } from '@metaplex-foundation/umi/serializers'; | ||
import { PickPartial } from '../shared'; | ||
export type VerifyLeafInstructionAccounts = { | ||
@@ -28,3 +29,6 @@ merkleTree: PublicKey | Pda; | ||
export declare function getVerifyLeafInstructionDataSerializer(): Serializer<VerifyLeafInstructionDataArgs, VerifyLeafInstructionData>; | ||
export type VerifyLeafInstructionArgs = VerifyLeafInstructionDataArgs; | ||
export type VerifyLeafInstructionExtraArgs = { | ||
proof: Array<PublicKey>; | ||
}; | ||
export type VerifyLeafInstructionArgs = PickPartial<VerifyLeafInstructionDataArgs & VerifyLeafInstructionExtraArgs, 'proof'>; | ||
export declare function verifyLeaf(context: Pick<Context, 'programs'>, input: VerifyLeafInstructionAccounts & VerifyLeafInstructionArgs): TransactionBuilder; |
@@ -37,4 +37,8 @@ "use strict"; | ||
const resolvingArgs = {}; | ||
(0, shared_1.addObjectProperty)(resolvingArgs, 'proof', input.proof ?? []); | ||
const resolvedArgs = { ...input, ...resolvingArgs }; | ||
(0, shared_1.addAccountMeta)(keys, signers, resolvedAccounts.merkleTree, false); | ||
// Remaining Accounts. | ||
const remainingAccounts = resolvedArgs.proof.map((address) => [address, false]); | ||
remainingAccounts.forEach((remainingAccount) => (0, shared_1.addAccountMeta)(keys, signers, remainingAccount, false)); | ||
// Data. | ||
@@ -41,0 +45,0 @@ const data = getVerifyLeafInstructionDataSerializer().serialize(resolvedArgs); |
export * from './createTree'; | ||
export * from './errors'; | ||
export * from './generated'; | ||
export * from './getAssetWithProof'; | ||
export * from './hash'; | ||
export * from './hooked'; | ||
export * from './leafAssetId'; | ||
export * from './merkle'; | ||
export * from './plugin'; | ||
export * from './readApiDecorator'; | ||
export * from './readApiTypes'; |
@@ -20,5 +20,7 @@ "use strict"; | ||
__exportStar(require("./generated"), exports); | ||
__exportStar(require("./getAssetWithProof"), exports); | ||
__exportStar(require("./hash"), exports); | ||
__exportStar(require("./hooked"), exports); | ||
__exportStar(require("./leafAssetId"), exports); | ||
__exportStar(require("./merkle"), exports); | ||
__exportStar(require("./plugin"), exports); | ||
@@ -25,0 +27,0 @@ __exportStar(require("./readApiDecorator"), exports); |
{ | ||
"name": "@metaplex-foundation/mpl-bubblegum", | ||
"version": "1.0.0-alpha.5", | ||
"version": "1.0.0-alpha.6", | ||
"description": "Create and interact with compressed Metaplex NFTs", | ||
@@ -21,3 +21,4 @@ "main": "dist/src/index.js", | ||
"@metaplex-foundation/mpl-toolbox": "^0.8.0", | ||
"@noble/hashes": "^1.3.1" | ||
"@noble/hashes": "^1.3.1", | ||
"merkletreejs": "^0.3.9" | ||
}, | ||
@@ -24,0 +25,0 @@ "peerDependencies": { |
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 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
384725
191
5590
5
+ Addedmerkletreejs@^0.3.9
+ Added@ethereumjs/rlp@4.0.1(transitive)
+ Added@ethereumjs/util@8.1.0(transitive)
+ Added@noble/curves@1.4.2(transitive)
+ Added@noble/hashes@1.4.0(transitive)
+ Added@scure/base@1.1.9(transitive)
+ Added@scure/bip32@1.4.0(transitive)
+ Added@scure/bip39@1.3.0(transitive)
+ Addedbignumber.js@9.1.2(transitive)
+ Addedbn.js@4.11.65.2.1(transitive)
+ Addedbuffer-reverse@1.0.1(transitive)
+ Addedcrypto-js@4.2.0(transitive)
+ Addedethereum-bloom-filters@1.2.0(transitive)
+ Addedethereum-cryptography@2.2.1(transitive)
+ Addedethjs-unit@0.1.6(transitive)
+ Addedis-hex-prefixed@1.0.0(transitive)
+ Addedmerkletreejs@0.3.11(transitive)
+ Addedmicro-ftch@0.3.1(transitive)
+ Addednumber-to-bn@1.7.0(transitive)
+ Addedrandombytes@2.1.0(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedstrip-hex-prefix@1.0.0(transitive)
+ Addedtreeify@1.1.0(transitive)
+ Addedutf8@3.0.0(transitive)
+ Addedweb3-utils@1.10.4(transitive)