From 6f8c8430ac6ef6ecb973ee53e5eec9fad70a3e2d Mon Sep 17 00:00:00 2001 From: A5 Pickle <5342825+a5-pickle@users.noreply.github.com> Date: Mon, 15 May 2023 15:55:03 -0400 Subject: [PATCH] solana: fix token metadata program interaction (#2913) * testing: fix pubkey caused by 0b0b9cea70ae0dd0a5275adb08c3732fd5560ee7 * solana: fix token-metadata forked dependency * sdk/js: fix tokenMetadata and Solana IDLs * testing: fix tests; add token-metadata dependency --------- Co-authored-by: A5 Pickle --- .github/workflows/build.yml | 2 +- devnet/solana-devnet.yaml | 2 +- .../nftBridge/instructions/completeWrapped.ts | 30 +- .../instructions/completeWrappedMeta.ts | 27 +- .../nftBridge/instructions/transferNative.ts | 15 +- .../nftBridge/instructions/transferWrapped.ts | 13 +- .../solana/tokenBridge/accounts/wrapped.ts | 2 +- .../tokenBridge/instructions/attestToken.ts | 4 +- .../tokenBridge/instructions/createWrapped.ts | 28 +- sdk/js/src/solana/utils/index.ts | 2 +- sdk/js/src/solana/utils/splMetadata.ts | 331 ------------------ sdk/js/src/solana/utils/tokenMetadata.ts | 17 + solana/Cargo.lock | 28 +- solana/Dockerfile | 3 +- solana/external/mpl_token_metadata.so | Bin 0 -> 688808 bytes solana/modules/nft_bridge/program/Cargo.toml | 4 +- .../nft_bridge/program/src/accounts.rs | 47 ++- .../program/src/api/complete_transfer.rs | 5 +- .../nft_bridge/program/src/api/transfer.rs | 40 +-- solana/modules/nft_bridge/program/src/lib.rs | 3 +- .../nft_bridge/program/tests/common.rs | 37 +- solana/modules/token_bridge/client/Cargo.toml | 2 +- .../modules/token_bridge/client/src/main.rs | 17 +- .../modules/token_bridge/program/Cargo.toml | 4 +- .../token_bridge/program/src/accounts.rs | 47 ++- .../token_bridge/program/src/api/attest.rs | 14 +- .../program/src/api/create_wrapped.rs | 41 ++- .../modules/token_bridge/program/src/lib.rs | 2 + .../token_bridge/program/tests/common.rs | 37 +- .../token_bridge/token-metadata/Cargo.toml | 20 -- .../token_bridge/token-metadata/README.md | 8 - .../token_bridge/token-metadata/Xargo.toml | 2 - .../token-metadata/spl_token_metadata.so | Bin 441920 -> 0 bytes .../token-metadata/src/instruction.rs | 138 -------- .../token_bridge/token-metadata/src/lib.rs | 7 - .../token_bridge/token-metadata/src/state.rs | 124 ------- .../token_bridge/token-metadata/src/utils.rs | 16 - testing/solana-test-validator/.gitignore | 4 +- testing/solana-test-validator/Makefile | 26 +- testing/solana-test-validator/package.json | 1 + .../solana-test-validator/run_sdk_tests.sh | 5 +- .../sdk-tests/0_deploy_and_upgrade.ts | 6 +- .../sdk-tests/2_token_bridge.ts | 292 ++++++++++++++- .../sdk-tests/3_nft_bridge.ts | 88 +++-- .../accounts/wrapped_deadbeef_metadata.json | 13 + .../accounts/wrapped_deadbeef_mint.json | 13 + .../sdk-tests/helpers/consts.ts | 7 + testing/solana-test-validator/yarn.lock | 162 ++++++++- 48 files changed, 833 insertions(+), 903 deletions(-) delete mode 100644 sdk/js/src/solana/utils/splMetadata.ts create mode 100644 sdk/js/src/solana/utils/tokenMetadata.ts create mode 100755 solana/external/mpl_token_metadata.so delete mode 100644 solana/modules/token_bridge/token-metadata/Cargo.toml delete mode 100644 solana/modules/token_bridge/token-metadata/README.md delete mode 100644 solana/modules/token_bridge/token-metadata/Xargo.toml delete mode 100644 solana/modules/token_bridge/token-metadata/spl_token_metadata.so delete mode 100644 solana/modules/token_bridge/token-metadata/src/instruction.rs delete mode 100644 solana/modules/token_bridge/token-metadata/src/lib.rs delete mode 100644 solana/modules/token_bridge/token-metadata/src/state.rs delete mode 100644 solana/modules/token_bridge/token-metadata/src/utils.rs create mode 100644 testing/solana-test-validator/sdk-tests/accounts/wrapped_deadbeef_metadata.json create mode 100644 testing/solana-test-validator/sdk-tests/accounts/wrapped_deadbeef_mint.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 444544054..d0344c858 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -177,7 +177,7 @@ jobs: export PATH="${HOME}/.local/share/solana/install/active_release/bin:${PATH}" mkdir -p "${BPF_OUT_DIR}" - cp modules/token_bridge/token-metadata/spl_token_metadata.so "${BPF_OUT_DIR}" + cp external/mpl_token_metadata.so "${BPF_OUT_DIR}" BPF_PACKAGES=( bridge/program/Cargo.toml diff --git a/devnet/solana-devnet.yaml b/devnet/solana-devnet.yaml index 1aae1cd29..40fc7a7ef 100644 --- a/devnet/solana-devnet.yaml +++ b/devnet/solana-devnet.yaml @@ -52,7 +52,7 @@ spec: - /opt/solana/deps/cpi_poster.so - --bpf-program - metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s - - /opt/solana/deps/spl_token_metadata.so + - /opt/solana/deps/mpl_token_metadata.so - --bpf-program - Ex9bCdVMSfx7EzB3pgSi2R4UHwJAXvTw18rBQm5YQ8gK - /opt/solana/deps/wormhole_migration.so diff --git a/sdk/js/src/solana/nftBridge/instructions/completeWrapped.ts b/sdk/js/src/solana/nftBridge/instructions/completeWrapped.ts index fbb61b220..b77e92758 100644 --- a/sdk/js/src/solana/nftBridge/instructions/completeWrapped.ts +++ b/sdk/js/src/solana/nftBridge/instructions/completeWrapped.ts @@ -1,3 +1,7 @@ +import { + ASSOCIATED_TOKEN_PROGRAM_ID, + TOKEN_PROGRAM_ID, +} from "@solana/spl-token"; import { PublicKey, PublicKeyInitData, @@ -5,26 +9,22 @@ import { SYSVAR_RENT_PUBKEY, TransactionInstruction, } from "@solana/web3.js"; -import { - ASSOCIATED_TOKEN_PROGRAM_ID, - TOKEN_PROGRAM_ID, -} from "@solana/spl-token"; -import { createReadOnlyNftBridgeProgramInterface } from "../program"; -import { deriveClaimKey, derivePostedVaaKey } from "../../wormhole"; -import { - deriveEndpointKey, - deriveNftBridgeConfigKey, - deriveWrappedMintKey, - deriveWrappedMetaKey, - deriveMintAuthorityKey, -} from "../accounts"; import { isBytes, ParsedNftTransferVaa, parseNftTransferVaa, SignedVaa, } from "../../../vaa"; -import { SplTokenMetadataProgram } from "../../utils"; +import { TOKEN_METADATA_PROGRAM_ID } from "../../utils"; +import { deriveClaimKey, derivePostedVaaKey } from "../../wormhole"; +import { + deriveEndpointKey, + deriveMintAuthorityKey, + deriveNftBridgeConfigKey, + deriveWrappedMetaKey, + deriveWrappedMintKey, +} from "../accounts"; +import { createReadOnlyNftBridgeProgramInterface } from "../program"; export function createCompleteTransferWrappedInstruction( nftBridgeProgramId: PublicKeyInitData, @@ -110,7 +110,7 @@ export function getCompleteTransferWrappedAccounts( rent: SYSVAR_RENT_PUBKEY, systemProgram: SystemProgram.programId, tokenProgram: TOKEN_PROGRAM_ID, - splMetadataProgram: SplTokenMetadataProgram.programId, + splMetadataProgram: TOKEN_METADATA_PROGRAM_ID, associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID, wormholeProgram: new PublicKey(wormholeProgramId), }; diff --git a/sdk/js/src/solana/nftBridge/instructions/completeWrappedMeta.ts b/sdk/js/src/solana/nftBridge/instructions/completeWrappedMeta.ts index 68278445c..b3e37b185 100644 --- a/sdk/js/src/solana/nftBridge/instructions/completeWrappedMeta.ts +++ b/sdk/js/src/solana/nftBridge/instructions/completeWrappedMeta.ts @@ -1,3 +1,4 @@ +import { TOKEN_PROGRAM_ID } from "@solana/spl-token"; import { PublicKey, PublicKeyInitData, @@ -5,26 +6,22 @@ import { SYSVAR_RENT_PUBKEY, TransactionInstruction, } from "@solana/web3.js"; -import { TOKEN_PROGRAM_ID } from "@solana/spl-token"; -import { createReadOnlyNftBridgeProgramInterface } from "../program"; -import { derivePostedVaaKey } from "../../wormhole"; -import { - deriveEndpointKey, - deriveNftBridgeConfigKey, - deriveWrappedMintKey, - deriveWrappedMetaKey, - deriveMintAuthorityKey, -} from "../accounts"; import { isBytes, ParsedNftTransferVaa, parseNftTransferVaa, SignedVaa, } from "../../../vaa"; +import { deriveTokenMetadataKey, TOKEN_METADATA_PROGRAM_ID } from "../../utils"; +import { derivePostedVaaKey } from "../../wormhole"; import { - deriveSplTokenMetadataKey, - SplTokenMetadataProgram, -} from "../../utils"; + deriveEndpointKey, + deriveMintAuthorityKey, + deriveNftBridgeConfigKey, + deriveWrappedMetaKey, + deriveWrappedMintKey, +} from "../accounts"; +import { createReadOnlyNftBridgeProgramInterface } from "../program"; export function createCompleteWrappedMetaInstruction( nftBridgeProgramId: PublicKeyInitData, @@ -92,12 +89,12 @@ export function getCompleteWrappedMetaAccounts( ), mint, wrappedMeta: deriveWrappedMetaKey(nftBridgeProgramId, mint), - splMetadata: deriveSplTokenMetadataKey(mint), + splMetadata: deriveTokenMetadataKey(mint), mintAuthority: deriveMintAuthorityKey(nftBridgeProgramId), rent: SYSVAR_RENT_PUBKEY, systemProgram: SystemProgram.programId, tokenProgram: TOKEN_PROGRAM_ID, - splMetadataProgram: SplTokenMetadataProgram.programId, + splMetadataProgram: TOKEN_METADATA_PROGRAM_ID, wormholeProgram: new PublicKey(wormholeProgramId), }; } diff --git a/sdk/js/src/solana/nftBridge/instructions/transferNative.ts b/sdk/js/src/solana/nftBridge/instructions/transferNative.ts index 2e1e44299..1c0473ae9 100644 --- a/sdk/js/src/solana/nftBridge/instructions/transferNative.ts +++ b/sdk/js/src/solana/nftBridge/instructions/transferNative.ts @@ -1,21 +1,18 @@ +import { TOKEN_PROGRAM_ID } from "@solana/spl-token"; import { PublicKey, PublicKeyInitData, TransactionInstruction, } from "@solana/web3.js"; -import { TOKEN_PROGRAM_ID } from "@solana/spl-token"; -import { createReadOnlyNftBridgeProgramInterface } from "../program"; +import { TOKEN_METADATA_PROGRAM_ID, deriveTokenMetadataKey } from "../../utils"; import { getPostMessageAccounts } from "../../wormhole"; import { deriveAuthoritySignerKey, + deriveCustodyKey, deriveCustodySignerKey, deriveNftBridgeConfigKey, - deriveCustodyKey, } from "../accounts"; -import { - deriveSplTokenMetadataKey, - SplTokenMetadataProgram, -} from "../../utils"; +import { createReadOnlyNftBridgeProgramInterface } from "../program"; export function createTransferNativeInstruction( nftBridgeProgramId: PublicKeyInitData, @@ -103,7 +100,7 @@ export function getTransferNativeAccounts( config: deriveNftBridgeConfigKey(nftBridgeProgramId), from: new PublicKey(from), mint: new PublicKey(mint), - splMetadata: deriveSplTokenMetadataKey(mint), + splMetadata: deriveTokenMetadataKey(mint), custody: deriveCustodyKey(nftBridgeProgramId, mint), authoritySigner: deriveAuthoritySignerKey(nftBridgeProgramId), custodySigner: deriveCustodySignerKey(nftBridgeProgramId), @@ -116,7 +113,7 @@ export function getTransferNativeAccounts( rent, systemProgram, tokenProgram: TOKEN_PROGRAM_ID, - splMetadataProgram: SplTokenMetadataProgram.programId, + splMetadataProgram: TOKEN_METADATA_PROGRAM_ID, wormholeProgram: new PublicKey(wormholeProgramId), }; } diff --git a/sdk/js/src/solana/nftBridge/instructions/transferWrapped.ts b/sdk/js/src/solana/nftBridge/instructions/transferWrapped.ts index 9f57d47bd..a74123245 100644 --- a/sdk/js/src/solana/nftBridge/instructions/transferWrapped.ts +++ b/sdk/js/src/solana/nftBridge/instructions/transferWrapped.ts @@ -1,10 +1,10 @@ +import { TOKEN_PROGRAM_ID } from "@solana/spl-token"; import { PublicKey, PublicKeyInitData, TransactionInstruction, } from "@solana/web3.js"; -import { TOKEN_PROGRAM_ID } from "@solana/spl-token"; -import { createReadOnlyNftBridgeProgramInterface } from "../program"; +import { TOKEN_METADATA_PROGRAM_ID, deriveTokenMetadataKey } from "../../utils"; import { getPostMessageAccounts } from "../../wormhole"; import { deriveAuthoritySignerKey, @@ -12,10 +12,7 @@ import { deriveWrappedMetaKey, deriveWrappedMintKey, } from "../accounts"; -import { - deriveSplTokenMetadataKey, - SplTokenMetadataProgram, -} from "../../utils"; +import { createReadOnlyNftBridgeProgramInterface } from "../program"; export function createTransferWrappedInstruction( nftBridgeProgramId: PublicKeyInitData, @@ -120,7 +117,7 @@ export function getTransferWrappedAccounts( fromOwner: new PublicKey(fromOwner), mint, wrappedMeta: deriveWrappedMetaKey(nftBridgeProgramId, mint), - splMetadata: deriveSplTokenMetadataKey(mint), + splMetadata: deriveTokenMetadataKey(mint), authoritySigner: deriveAuthoritySignerKey(nftBridgeProgramId), wormholeBridge, wormholeMessage, @@ -131,7 +128,7 @@ export function getTransferWrappedAccounts( rent, systemProgram, tokenProgram: TOKEN_PROGRAM_ID, - splMetadataProgram: SplTokenMetadataProgram.programId, + splMetadataProgram: TOKEN_METADATA_PROGRAM_ID, wormholeProgram: new PublicKey(wormholeProgramId), }; } diff --git a/sdk/js/src/solana/tokenBridge/accounts/wrapped.ts b/sdk/js/src/solana/tokenBridge/accounts/wrapped.ts index d302bdc96..8cfd46ab0 100644 --- a/sdk/js/src/solana/tokenBridge/accounts/wrapped.ts +++ b/sdk/js/src/solana/tokenBridge/accounts/wrapped.ts @@ -11,7 +11,7 @@ import { } from "../../../utils"; import { deriveAddress, getAccountData } from "../../utils"; -export { deriveSplTokenMetadataKey } from "../../utils/splMetadata"; +export { deriveTokenMetadataKey } from "../../utils/tokenMetadata"; export function deriveWrappedMintKey( tokenBridgeProgramId: PublicKeyInitData, diff --git a/sdk/js/src/solana/tokenBridge/instructions/attestToken.ts b/sdk/js/src/solana/tokenBridge/instructions/attestToken.ts index e75d71266..253a025ff 100644 --- a/sdk/js/src/solana/tokenBridge/instructions/attestToken.ts +++ b/sdk/js/src/solana/tokenBridge/instructions/attestToken.ts @@ -6,7 +6,7 @@ import { import { createReadOnlyTokenBridgeProgramInterface } from "../program"; import { getPostMessageAccounts } from "../../wormhole"; import { - deriveSplTokenMetadataKey, + deriveTokenMetadataKey, deriveTokenBridgeConfigKey, deriveWrappedMetaKey, } from "../accounts"; @@ -83,7 +83,7 @@ export function getAttestTokenAccounts( config: deriveTokenBridgeConfigKey(tokenBridgeProgramId), mint: new PublicKey(mint), wrappedMeta: deriveWrappedMetaKey(tokenBridgeProgramId, mint), - splMetadata: deriveSplTokenMetadataKey(mint), + splMetadata: deriveTokenMetadataKey(mint), wormholeBridge, wormholeMessage: new PublicKey(message), wormholeEmitter, diff --git a/sdk/js/src/solana/tokenBridge/instructions/createWrapped.ts b/sdk/js/src/solana/tokenBridge/instructions/createWrapped.ts index d9228ddf5..a101cc7c3 100644 --- a/sdk/js/src/solana/tokenBridge/instructions/createWrapped.ts +++ b/sdk/js/src/solana/tokenBridge/instructions/createWrapped.ts @@ -1,3 +1,4 @@ +import { TOKEN_PROGRAM_ID } from "@solana/spl-token"; import { PublicKey, PublicKeyInitData, @@ -5,24 +6,23 @@ import { SYSVAR_RENT_PUBKEY, TransactionInstruction, } from "@solana/web3.js"; -import { TOKEN_PROGRAM_ID } from "@solana/spl-token"; -import { createReadOnlyTokenBridgeProgramInterface } from "../program"; -import { deriveClaimKey, derivePostedVaaKey } from "../../wormhole"; -import { - deriveEndpointKey, - deriveMintAuthorityKey, - deriveSplTokenMetadataKey, - deriveWrappedMetaKey, - deriveTokenBridgeConfigKey, - deriveWrappedMintKey, -} from "../accounts"; import { isBytes, parseAttestMetaVaa, ParsedAttestMetaVaa, SignedVaa, } from "../../../vaa"; -import { SplTokenMetadataProgram } from "../../utils"; +import { TOKEN_METADATA_PROGRAM_ID } from "../../utils"; +import { deriveClaimKey, derivePostedVaaKey } from "../../wormhole"; +import { + deriveEndpointKey, + deriveMintAuthorityKey, + deriveTokenBridgeConfigKey, + deriveTokenMetadataKey, + deriveWrappedMetaKey, + deriveWrappedMintKey, +} from "../accounts"; +import { createReadOnlyTokenBridgeProgramInterface } from "../program"; export function createCreateWrappedInstruction( tokenBridgeProgramId: PublicKeyInitData, @@ -96,12 +96,12 @@ export function getCreateWrappedAccounts( ), mint, wrappedMeta: deriveWrappedMetaKey(tokenBridgeProgramId, mint), - splMetadata: deriveSplTokenMetadataKey(mint), + splMetadata: deriveTokenMetadataKey(mint), mintAuthority: deriveMintAuthorityKey(tokenBridgeProgramId), rent: SYSVAR_RENT_PUBKEY, systemProgram: SystemProgram.programId, tokenProgram: TOKEN_PROGRAM_ID, - splMetadataProgram: SplTokenMetadataProgram.programId, + splMetadataProgram: TOKEN_METADATA_PROGRAM_ID, wormholeProgram: new PublicKey(wormholeProgramId), }; } diff --git a/sdk/js/src/solana/utils/index.ts b/sdk/js/src/solana/utils/index.ts index a772221dc..127699684 100644 --- a/sdk/js/src/solana/utils/index.ts +++ b/sdk/js/src/solana/utils/index.ts @@ -2,5 +2,5 @@ export * from "./account"; export * from "./bpfLoaderUpgradeable"; export * from "./connection"; export * from "./secp256k1"; -export * from "./splMetadata"; +export * from "./tokenMetadata"; export * from "./transaction"; diff --git a/sdk/js/src/solana/utils/splMetadata.ts b/sdk/js/src/solana/utils/splMetadata.ts deleted file mode 100644 index b7e3daef8..000000000 --- a/sdk/js/src/solana/utils/splMetadata.ts +++ /dev/null @@ -1,331 +0,0 @@ -import { - AccountMeta, - Commitment, - Connection, - PublicKey, - PublicKeyInitData, - SystemProgram, - SYSVAR_RENT_PUBKEY, - TransactionInstruction, -} from "@solana/web3.js"; -import { - deriveAddress, - getAccountData, - newAccountMeta, - newReadOnlyAccountMeta, -} from "./account"; - -export class Creator { - address: PublicKey; - verified: boolean; - share: number; - - constructor(address: PublicKeyInitData, verified: boolean, share: number) { - this.address = new PublicKey(address); - this.verified = verified; - this.share = share; - } - - static size: number = 34; - - serialize() { - const serialized = Buffer.alloc(Creator.size); - serialized.write(this.address.toBuffer().toString("hex"), 0, "hex"); - if (this.verified) { - serialized.writeUInt8(1, 32); - } - serialized.writeUInt8(this.share, 33); - return serialized; - } - - static deserialize(data: Buffer): Creator { - const address = data.subarray(0, 32); - const verified = data.readUInt8(32) > 0; - const share = data.readUInt8(33); - return new Creator(address, verified, share); - } -} - -export class Data { - name: string; - symbol: string; - uri: string; - sellerFeeBasisPoints: number; - creators: Creator[] | null; - - constructor( - name: string, - symbol: string, - uri: string, - sellerFeeBasisPoints: number, - creators: Creator[] | null - ) { - this.name = name; - this.symbol = symbol; - this.uri = uri; - this.sellerFeeBasisPoints = sellerFeeBasisPoints; - this.creators = creators; - } - - serialize() { - const nameLen = this.name.length; - const symbolLen = this.symbol.length; - const uriLen = this.uri.length; - const creators = this.creators; - const [creatorsLen, creatorsSize] = (() => { - if (creators === null) { - return [0, 0]; - } - - const creatorsLen = creators.length; - return [creatorsLen, 4 + creatorsLen * Creator.size]; - })(); - const serialized = Buffer.alloc( - 15 + nameLen + symbolLen + uriLen + creatorsSize - ); - serialized.writeUInt32LE(nameLen, 0); - serialized.write(this.name, 4); - serialized.writeUInt32LE(symbolLen, 4 + nameLen); - serialized.write(this.symbol, 8 + nameLen); - serialized.writeUInt32LE(uriLen, 8 + nameLen + symbolLen); - serialized.write(this.uri, 12 + nameLen + symbolLen); - serialized.writeUInt16LE( - this.sellerFeeBasisPoints, - 12 + nameLen + symbolLen + uriLen - ); - if (creators === null) { - serialized.writeUInt8(0, 14 + nameLen + symbolLen + uriLen); - } else { - serialized.writeUInt8(1, 14 + nameLen + symbolLen + uriLen); - serialized.writeUInt32LE(creatorsLen, 15 + nameLen + symbolLen + uriLen); - for (let i = 0; i < creatorsLen; ++i) { - const creator = creators.at(i)!; - const idx = 19 + nameLen + symbolLen + uriLen + i * Creator.size; - serialized.write(creator.serialize().toString("hex"), idx, "hex"); - } - } - return serialized; - } - - static deserialize(data: Buffer): Data { - const nameLen = data.readUInt32LE(0); - const name = data.subarray(4, 4 + nameLen).toString(); - const symbolLen = data.readUInt32LE(4 + nameLen); - const symbol = data - .subarray(8 + nameLen, 8 + nameLen + symbolLen) - .toString(); - const uriLen = data.readUInt32LE(8 + nameLen + symbolLen); - const uri = data - .subarray(12 + nameLen + symbolLen, 12 + nameLen + symbolLen + uriLen) - .toString(); - const sellerFeeBasisPoints = data.readUInt16LE( - 12 + nameLen + symbolLen + uriLen - ); - const optionCreators = data.readUInt8(14 + nameLen + symbolLen + uriLen); - const creators = (() => { - if (optionCreators == 0) { - return null; - } - - const creators: Creator[] = []; - const creatorsLen = data.readUInt32LE(15 + nameLen + symbolLen + uriLen); - for (let i = 0; i < creatorsLen; ++i) { - const idx = 19 + nameLen + symbolLen + uriLen + i * Creator.size; - creators.push( - Creator.deserialize(data.subarray(idx, idx + Creator.size)) - ); - } - return creators; - })(); - return new Data(name, symbol, uri, sellerFeeBasisPoints, creators); - } -} - -export class CreateMetadataAccountArgs extends Data { - isMutable: boolean; - - constructor( - name: string, - symbol: string, - uri: string, - sellerFeeBasisPoints: number, - creators: Creator[] | null, - isMutable: boolean - ) { - super(name, symbol, uri, sellerFeeBasisPoints, creators); - this.isMutable = isMutable; - } - - static serialize( - name: string, - symbol: string, - uri: string, - sellerFeeBasisPoints: number, - creators: Creator[] | null, - isMutable: boolean - ) { - return new CreateMetadataAccountArgs( - name, - symbol, - uri, - sellerFeeBasisPoints, - creators, - isMutable - ).serialize(); - } - - static serializeInstructionData( - name: string, - symbol: string, - uri: string, - sellerFeeBasisPoints: number, - creators: Creator[] | null, - isMutable: boolean - ) { - return Buffer.concat([ - Buffer.alloc(1, 0), - CreateMetadataAccountArgs.serialize( - name, - symbol, - uri, - sellerFeeBasisPoints, - creators, - isMutable - ), - ]); - } - - serialize() { - return Buffer.concat([ - super.serialize(), - Buffer.alloc(1, this.isMutable ? 1 : 0), - ]); - } -} - -export class SplTokenMetadataProgram { - /** - * @internal - */ - constructor() {} - - /** - * Public key that identifies the SPL Token Metadata program - */ - static programId: PublicKey = new PublicKey( - "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s" - ); - - static createMetadataAccounts( - payer: PublicKey, - mint: PublicKey, - mintAuthority: PublicKey, - name: string, - symbol: string, - updateAuthority: PublicKey, - updateAuthorityIsSigner: boolean = false, - uri?: string, - creators?: Creator[] | null, - sellerFeeBasisPoints?: number, - isMutable: boolean = false, - metadataAccount: PublicKey = deriveSplTokenMetadataKey(mint) - ): TransactionInstruction { - const keys: AccountMeta[] = [ - newAccountMeta(metadataAccount, false), - newReadOnlyAccountMeta(mint, false), - newReadOnlyAccountMeta(mintAuthority, true), - newReadOnlyAccountMeta(payer, true), - newReadOnlyAccountMeta(updateAuthority, updateAuthorityIsSigner), - newReadOnlyAccountMeta(SystemProgram.programId, false), - newReadOnlyAccountMeta(SYSVAR_RENT_PUBKEY, false), - ]; - const data = CreateMetadataAccountArgs.serializeInstructionData( - name, - symbol, - uri === undefined ? "" : uri, - sellerFeeBasisPoints === undefined ? 0 : sellerFeeBasisPoints, - creators === undefined ? null : creators, - isMutable - ); - return { - programId: SplTokenMetadataProgram.programId, - keys, - data, - }; - } -} - -export function deriveSplTokenMetadataKey(mint: PublicKeyInitData): PublicKey { - return deriveAddress( - [ - Buffer.from("metadata"), - SplTokenMetadataProgram.programId.toBuffer(), - new PublicKey(mint).toBuffer(), - ], - SplTokenMetadataProgram.programId - ); -} - -export enum Key { - Uninitialized, - EditionV1, - MasterEditionV1, - ReservationListV1, - MetadataV1, - ReservationListV2, - MasterEditionV2, - EditionMarker, -} - -export class Metadata { - key: Key; - updateAuthority: PublicKey; - mint: PublicKey; - data: Data; - primarySaleHappened: boolean; - isMutable: boolean; - - constructor( - key: number, - updateAuthority: PublicKeyInitData, - mint: PublicKeyInitData, - data: Data, - primarySaleHappened: boolean, - isMutable: boolean - ) { - this.key = key as Key; - this.updateAuthority = new PublicKey(updateAuthority); - this.mint = new PublicKey(mint); - this.data = data; - this.primarySaleHappened = primarySaleHappened; - this.isMutable = isMutable; - } - - static deserialize(data: Buffer): Metadata { - const key = data.readUInt8(0); - const updateAuthority = data.subarray(1, 33); - const mint = data.subarray(33, 65); - const meta = Data.deserialize(data.subarray(65)); - const metaLen = meta.serialize().length; - const primarySaleHappened = data.readUInt8(65 + metaLen) > 0; - const isMutable = data.readUInt8(66 + metaLen) > 0; - return new Metadata( - key, - updateAuthority, - mint, - meta, - primarySaleHappened, - isMutable - ); - } -} - -export async function getMetadata( - connection: Connection, - mint: PublicKeyInitData, - commitment?: Commitment -): Promise { - return connection - .getAccountInfo(deriveSplTokenMetadataKey(mint), commitment) - .then((info) => Metadata.deserialize(getAccountData(info))); -} diff --git a/sdk/js/src/solana/utils/tokenMetadata.ts b/sdk/js/src/solana/utils/tokenMetadata.ts new file mode 100644 index 000000000..f00699ac0 --- /dev/null +++ b/sdk/js/src/solana/utils/tokenMetadata.ts @@ -0,0 +1,17 @@ +import { PublicKey, PublicKeyInitData } from "@solana/web3.js"; +import { deriveAddress } from "./account"; + +export const TOKEN_METADATA_PROGRAM_ID = new PublicKey( + "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s" +); + +export function deriveTokenMetadataKey(mint: PublicKeyInitData): PublicKey { + return deriveAddress( + [ + Buffer.from("metadata"), + TOKEN_METADATA_PROGRAM_ID.toBuffer(), + new PublicKey(mint).toBuffer(), + ], + TOKEN_METADATA_PROGRAM_ID + ); +} diff --git a/solana/Cargo.lock b/solana/Cargo.lock index 353911178..9ff31e883 100644 --- a/solana/Cargo.lock +++ b/solana/Cargo.lock @@ -1847,6 +1847,19 @@ dependencies = [ "syn 1.0.91", ] +[[package]] +name = "mpl-token-metadata" +version = "0.0.1" +source = "git+https://github.com/wormhole-foundation/metaplex-program-library?rev=a7ab32ab0defd89c98f205c80ebdaf77ed60152d#a7ab32ab0defd89c98f205c80ebdaf77ed60152d" +dependencies = [ + "borsh", + "num-derive", + "num-traits", + "solana-program", + "spl-token", + "thiserror", +] + [[package]] name = "nft-bridge" version = "0.1.0" @@ -1857,6 +1870,7 @@ dependencies = [ "hex", "hex-literal", "libsecp256k1", + "mpl-token-metadata", "primitive-types", "rand 0.7.3", "rocksalt", @@ -1868,7 +1882,6 @@ dependencies = [ "solitaire", "spl-associated-token-account", "spl-token", - "spl-token-metadata", "wasm-bindgen", "wormhole-bridge-solana", ] @@ -3985,15 +3998,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "spl-token-metadata" -version = "0.0.1" -dependencies = [ - "borsh", - "solana-program", - "spl-token", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -4269,6 +4273,7 @@ dependencies = [ "hex", "hex-literal", "libsecp256k1", + "mpl-token-metadata", "primitive-types", "rand 0.7.3", "rocksalt", @@ -4279,7 +4284,6 @@ dependencies = [ "solana-sdk", "solitaire", "spl-token", - "spl-token-metadata", "wasm-bindgen", "wormhole-bridge-solana", ] @@ -4292,6 +4296,7 @@ dependencies = [ "borsh", "clap", "hex", + "mpl-token-metadata", "rand 0.7.3", "shellexpand", "solana-clap-utils", @@ -4300,7 +4305,6 @@ dependencies = [ "solana-program", "solana-sdk", "solitaire", - "spl-token-metadata", "token-bridge", ] diff --git a/solana/Dockerfile b/solana/Dockerfile index 12037e947..4739bc811 100644 --- a/solana/Dockerfile +++ b/solana/Dockerfile @@ -15,6 +15,7 @@ COPY migration migration COPY Cargo.toml Cargo.toml COPY Cargo.lock Cargo.lock COPY solitaire solitaire +COPY external external ENV RUST_LOG="solana_runtime::system_instruction_processor=trace,solana_runtime::message_processor=trace,solana_bpf_loader=debug,solana_rbpf=debug" ENV RUST_BACKTRACE=1 @@ -40,7 +41,7 @@ RUN --mount=type=cache,target=target,id=build \ cp target/deploy/wormhole_migration.so /opt/solana/deps/wormhole_migration.so && \ cp target/deploy/token_bridge.so /opt/solana/deps/token_bridge.so && \ cp target/deploy/nft_bridge.so /opt/solana/deps/nft_bridge.so && \ - cp modules/token_bridge/token-metadata/spl_token_metadata.so /opt/solana/deps/spl_token_metadata.so + cp external/mpl_token_metadata.so /opt/solana/deps/mpl_token_metadata.so FROM scratch AS export-stage COPY --from=builder /opt/solana/deps / diff --git a/solana/external/mpl_token_metadata.so b/solana/external/mpl_token_metadata.so new file mode 100755 index 0000000000000000000000000000000000000000..2f6f053e6ec115c54627efbc9488fd6ae1effccc GIT binary patch literal 688808 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

i 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 = Derive, "authority_signer">; pub type CustodySigner<'b> = Derive, "custody_signer">; @@ -106,3 +110,44 @@ impl<'b> Seeded<&SplTokenMetaDerivationData> for SplTokenMeta<'b> { ] } } + +/// This method removes code duplication when checking token metadata. When metadata is read for +/// attestation and transfers, Token Bridge does not invoke Metaplex's Token Metadata program, so +/// it must validate the account the same way Token Metadata program does to ensure the correct +/// account is passed into Token Bridge's instruction context. +pub fn deserialize_and_verify_metadata( + info: &Info, + derivation_data: SplTokenMetaDerivationData, +) -> Result { + // Verify pda. + info.verify_derivation(&spl_token_metadata::id(), &derivation_data)?; + + // There must be account data for token's metadata. + if info.data_is_empty() { + return Err(TokenBridgeError::NonexistentTokenMetadataAccount.into()); + } + + // Account must belong to Metaplex Token Metadata program. + if *info.owner != spl_token_metadata::id() { + return Err(TokenBridgeError::WrongAccountOwner.into()); + } + + // Account must be the expected Metadata length. + if info.data_len() != spl_token_metadata::state::MAX_METADATA_LEN { + return Err(TokenBridgeError::InvalidMetadata.into()); + } + + let mut data: &[u8] = &info.data.borrow_mut(); + + // Unfortunately we cannot use `map_err` easily, so we will match certain deserialization conditions. + match spl_token_metadata::utils::meta_deser_unchecked(&mut data) { + Ok(deserialized) => { + if deserialized.key == MetadataV1 { + Ok(deserialized) + } else { + Err(TokenBridgeError::NotMetadataV1Account.into()) + } + } + _ => Err(TokenBridgeError::InvalidMetadata.into()), + } +} diff --git a/solana/modules/nft_bridge/program/src/api/complete_transfer.rs b/solana/modules/nft_bridge/program/src/api/complete_transfer.rs index 0b0232cbb..b98145122 100644 --- a/solana/modules/nft_bridge/program/src/api/complete_transfer.rs +++ b/solana/modules/nft_bridge/program/src/api/complete_transfer.rs @@ -382,7 +382,7 @@ pub fn complete_wrapped_meta( symbol.retain(|&c| c != '\u{FFFD}'); let symbol: String = symbol.iter().collect(); - let spl_token_metadata_ix = spl_token_metadata::instruction::create_metadata_accounts( + let spl_token_metadata_ix = spl_token_metadata::instruction::create_metadata_accounts_v3( spl_token_metadata::id(), *accs.spl_metadata.key, *accs.mint.info().key, @@ -396,6 +396,9 @@ pub fn complete_wrapped_meta( 0, false, true, + None, + None, + None, ); invoke_seeded(&spl_token_metadata_ix, ctx, &accs.mint_authority, None)?; diff --git a/solana/modules/nft_bridge/program/src/api/transfer.rs b/solana/modules/nft_bridge/program/src/api/transfer.rs index 51584c455..9d13cf2f5 100644 --- a/solana/modules/nft_bridge/program/src/api/transfer.rs +++ b/solana/modules/nft_bridge/program/src/api/transfer.rs @@ -1,5 +1,6 @@ use crate::{ accounts::{ + deserialize_and_verify_metadata, AuthoritySigner, ConfigAccount, CoreBridge, @@ -17,11 +18,7 @@ use crate::{ messages::PayloadTransfer, types::*, TokenBridgeError, - TokenBridgeError::{ - InvalidMetadata, - TokenNotNFT, - WrongAccountOwner, - }, + TokenBridgeError::WrongAccountOwner, }; use bridge::{ api::PostMessageData, @@ -50,7 +47,6 @@ use solitaire::{ CreationLamports::Exempt, *, }; -use spl_token_metadata::state::Metadata; #[derive(FromAccounts)] pub struct TransferNative<'b> { @@ -123,24 +119,11 @@ pub fn transfer_native( accs.custody .verify_derivation(ctx.program_id, &derivation_data)?; - let derivation_data: SplTokenMetaDerivationData = (&*accs).into(); - accs.spl_metadata - .verify_derivation(&spl_token_metadata::id(), &derivation_data)?; - // Verify mints if accs.from.mint != *accs.mint.info().key { return Err(TokenBridgeError::InvalidMint.into()); } - // Token must have metadata - if accs.spl_metadata.data_is_empty() { - return Err(TokenNotNFT.into()); - } - - if *accs.spl_metadata.owner != spl_token_metadata::id() { - return Err(WrongAccountOwner.into()); - } - // Verify that the token is not a wrapped token if let COption::Some(mint_authority) = accs.mint.mint_authority { if mint_authority == MintSigner::key(None, ctx.program_id) { @@ -180,8 +163,7 @@ pub fn transfer_native( ); invoke(&transfer_ix, ctx.accounts)?; - let metadata: Metadata = - Metadata::from_account_info(accs.spl_metadata.info()).ok_or(InvalidMetadata)?; + let metadata = deserialize_and_verify_metadata(&accs.spl_metadata, (&*accs).into())?; // Post message // Given there is no tokenID equivalent on Solana and each distinct token address is translated @@ -326,21 +308,7 @@ pub fn transfer_wrapped( accs.wrapped_meta .verify_derivation(ctx.program_id, &derivation_data)?; - // Token must have metadata - if accs.spl_metadata.data_is_empty() { - return Err(TokenNotNFT.into()); - } - - let derivation_data: SplTokenMetaDerivationData = (&*accs).into(); - accs.spl_metadata - .verify_derivation(&spl_token_metadata::id(), &derivation_data)?; - - if *accs.spl_metadata.owner != spl_token_metadata::id() { - return Err(WrongAccountOwner.into()); - } - - let metadata: Metadata = - Metadata::from_account_info(accs.spl_metadata.info()).ok_or(InvalidMetadata)?; + let metadata = deserialize_and_verify_metadata(&accs.spl_metadata, (&*accs).into())?; // Post message let payload = PayloadTransfer { diff --git a/solana/modules/nft_bridge/program/src/lib.rs b/solana/modules/nft_bridge/program/src/lib.rs index 2cd6e92f8..3846070e1 100644 --- a/solana/modules/nft_bridge/program/src/lib.rs +++ b/solana/modules/nft_bridge/program/src/lib.rs @@ -59,9 +59,10 @@ pub enum TokenBridgeError { TokenNotNative, UninitializedMint, WrongAccountOwner, - TokenNotNFT, + NonexistentTokenMetadataAccount, InvalidAssociatedAccount, InvalidRecipient, + NotMetadataV1Account, } impl From for SolitaireError { diff --git a/solana/modules/nft_bridge/program/tests/common.rs b/solana/modules/nft_bridge/program/tests/common.rs index 460aad355..482f4013f 100644 --- a/solana/modules/nft_bridge/program/tests/common.rs +++ b/solana/modules/nft_bridge/program/tests/common.rs @@ -128,7 +128,7 @@ mod helpers { ); let mut builder = ProgramTest::new("bridge", program, processor!(bridge::solitaire)); - builder.add_program("spl_token_metadata", spl_token_metadata::id(), None); + builder.add_program("mpl_token_metadata", spl_token_metadata::id(), None); builder.add_program( "nft_bridge", token_program, @@ -506,21 +506,26 @@ mod helpers { client, payer, &[payer, mint_authority], - &[spl_token_metadata::instruction::create_metadata_accounts( - spl_token_metadata::id(), - metadata_account, - mint, - mint_authority.pubkey(), - payer.pubkey(), - update_authority, - name, - symbol, - uri, - None, - 0, - false, - false, - )], + &[ + spl_token_metadata::instruction::create_metadata_accounts_v3( + spl_token_metadata::id(), + metadata_account, + mint, + mint_authority.pubkey(), + payer.pubkey(), + update_authority, + name, + symbol, + uri, + None, + 0, + false, + false, + None, + None, + None, + ), + ], CommitmentLevel::Processed, ) .await diff --git a/solana/modules/token_bridge/client/Cargo.toml b/solana/modules/token_bridge/client/Cargo.toml index 2ad19945d..ee10289e6 100644 --- a/solana/modules/token_bridge/client/Cargo.toml +++ b/solana/modules/token_bridge/client/Cargo.toml @@ -17,4 +17,4 @@ solana-cli-config = "=1.10.31" solitaire = { path = "../../../solitaire/program" } solana-clap-utils = "=1.10.31" hex = "0.4.3" -spl-token-metadata = { path = "../token-metadata" } +spl-token-metadata = { git = "https://github.com/wormhole-foundation/metaplex-program-library", rev = "a7ab32ab0defd89c98f205c80ebdaf77ed60152d", package = "mpl-token-metadata" } diff --git a/solana/modules/token_bridge/client/src/main.rs b/solana/modules/token_bridge/client/src/main.rs index d30200ffd..8ffd0ee6b 100644 --- a/solana/modules/token_bridge/client/src/main.rs +++ b/solana/modules/token_bridge/client/src/main.rs @@ -107,7 +107,7 @@ fn command_create_meta( ) .0; println!("Meta account: {}", meta_acc); - let ix = spl_token_metadata::instruction::create_metadata_accounts( + let ix = spl_token_metadata::instruction::create_metadata_accounts_v3( spl_token_metadata::id(), meta_acc, *mint, @@ -121,6 +121,9 @@ fn command_create_meta( 0, false, false, + None, + None, + None, ); let mut transaction = Transaction::new_with_payer(&[ix], Some(&config.fee_payer.pubkey())); @@ -334,9 +337,15 @@ fn main() { &spl_token_metadata::id(), ) .0; - let meta_info = config.rpc_client.get_account(&meta_acc).unwrap(); - let meta_info = - spl_token_metadata::state::Metadata::from_bytes(&meta_info.data).unwrap(); + let meta_info = spl_token_metadata::utils::meta_deser_unchecked( + &mut config + .rpc_client + .get_account(&meta_acc) + .unwrap() + .data + .as_slice(), + ) + .unwrap(); println!("Key: {:?}", meta_info.key); println!("Mint: {}", meta_info.mint); println!("Metadata Key: {}", meta_acc); diff --git a/solana/modules/token_bridge/program/Cargo.toml b/solana/modules/token_bridge/program/Cargo.toml index 815b7c990..2fca2b8e9 100644 --- a/solana/modules/token_bridge/program/Cargo.toml +++ b/solana/modules/token_bridge/program/Cargo.toml @@ -28,7 +28,7 @@ sha3 = "0.9.1" solana-program = "*" spl-token = { version = "=3.3.0", features = ["no-entrypoint"] } primitive-types = { version = "0.9.0", default-features = false } -spl-token-metadata = { path = "../token-metadata" } +spl-token-metadata = { git = "https://github.com/wormhole-foundation/metaplex-program-library", rev = "a7ab32ab0defd89c98f205c80ebdaf77ed60152d", package = "mpl-token-metadata" } wasm-bindgen = { version = "0.2.74", features = ["serde-serialize"], optional = true } serde = { version = "1.0", features = ["derive"] } @@ -39,5 +39,3 @@ libsecp256k1 = { version = "0.6.0", features = [] } rand = "0.7.3" solana-program-test = "=1.10.31" solana-sdk = "=1.10.31" -spl-token = { version = "=3.3.0", features = ["no-entrypoint"] } -spl-token-metadata = { path = "../token-metadata" } diff --git a/solana/modules/token_bridge/program/src/accounts.rs b/solana/modules/token_bridge/program/src/accounts.rs index 53666738d..4dc55f43e 100644 --- a/solana/modules/token_bridge/program/src/accounts.rs +++ b/solana/modules/token_bridge/program/src/accounts.rs @@ -1,4 +1,7 @@ -use crate::types::*; +use crate::{ + types::*, + TokenBridgeError, +}; use bridge::{ accounts::BridgeData, api::ForeignAddress, @@ -8,6 +11,7 @@ use solitaire::{ processors::seeded::Seeded, *, }; +use spl_token_metadata::state::Key::MetadataV1; pub type AuthoritySigner<'b> = Derive, "authority_signer">; pub type CustodySigner<'b> = Derive, "custody_signer">; @@ -101,3 +105,44 @@ impl<'b> Seeded<&SplTokenMetaDerivationData> for SplTokenMeta<'b> { ] } } + +/// This method removes code duplication when checking token metadata. When metadata is read for +/// attestation and transfers, Token Bridge does not invoke Metaplex's Token Metadata program, so +/// it must validate the account the same way Token Metadata program does to ensure the correct +/// account is passed into Token Bridge's instruction context. +pub fn deserialize_and_verify_metadata( + info: &Info, + derivation_data: SplTokenMetaDerivationData, +) -> Result { + // Verify pda. + info.verify_derivation(&spl_token_metadata::id(), &derivation_data)?; + + // There must be account data for token's metadata. + if info.data_is_empty() { + return Err(TokenBridgeError::NonexistentTokenMetadataAccount.into()); + } + + // Account must belong to Metaplex Token Metadata program. + if *info.owner != spl_token_metadata::id() { + return Err(TokenBridgeError::WrongAccountOwner.into()); + } + + // Account must be the expected Metadata length. + if info.data_len() != spl_token_metadata::state::MAX_METADATA_LEN { + return Err(TokenBridgeError::InvalidMetadata.into()); + } + + let mut data: &[u8] = &info.data.borrow_mut(); + + // Unfortunately we cannot use `map_err` easily, so we will match certain deserialization conditions. + match spl_token_metadata::utils::meta_deser_unchecked(&mut data) { + Ok(deserialized) => { + if deserialized.key == MetadataV1 { + Ok(deserialized) + } else { + Err(TokenBridgeError::NotMetadataV1Account.into()) + } + } + _ => Err(TokenBridgeError::InvalidMetadata.into()), + } +} diff --git a/solana/modules/token_bridge/program/src/api/attest.rs b/solana/modules/token_bridge/program/src/api/attest.rs index d2af371de..319e0fca8 100644 --- a/solana/modules/token_bridge/program/src/api/attest.rs +++ b/solana/modules/token_bridge/program/src/api/attest.rs @@ -1,5 +1,6 @@ use crate::{ accounts::{ + deserialize_and_verify_metadata, ConfigAccount, CoreBridge, EmitterAccount, @@ -10,7 +11,6 @@ use crate::{ }, messages::PayloadAssetMeta, types::*, - TokenBridgeError::*, }; use bridge::{ api::PostMessageData, @@ -34,7 +34,6 @@ use solitaire::{ }, *, }; -use spl_token_metadata::state::Metadata; #[derive(FromAccounts)] pub struct AttestToken<'b> { @@ -118,16 +117,7 @@ pub fn attest_token( // Assign metadata if an SPL Metadata account exists for the SPL token in question. if !accs.spl_metadata.data_is_empty() { - let derivation_data: SplTokenMetaDerivationData = (&*accs).into(); - accs.spl_metadata - .verify_derivation(&spl_token_metadata::id(), &derivation_data)?; - - if *accs.spl_metadata.owner != spl_token_metadata::id() { - return Err(WrongAccountOwner.into()); - } - - let metadata: Metadata = - Metadata::from_account_info(accs.spl_metadata.info()).ok_or(InvalidMetadata)?; + let metadata = deserialize_and_verify_metadata(&accs.spl_metadata, (&*accs).into())?; payload.name = metadata.data.name.clone(); payload.symbol = metadata.data.symbol; } diff --git a/solana/modules/token_bridge/program/src/api/create_wrapped.rs b/solana/modules/token_bridge/program/src/api/create_wrapped.rs index 54883581d..31ea5852d 100644 --- a/solana/modules/token_bridge/program/src/api/create_wrapped.rs +++ b/solana/modules/token_bridge/program/src/api/create_wrapped.rs @@ -1,5 +1,6 @@ use crate::{ accounts::{ + deserialize_and_verify_metadata, ConfigAccount, Endpoint, EndpointDerivationData, @@ -14,7 +15,6 @@ use crate::{ messages::PayloadAssetMeta, TokenBridgeError::{ InvalidChain, - InvalidMetadata, InvalidVAA, }, INVALID_VAAS, @@ -40,10 +40,6 @@ use solitaire::{ *, }; -use spl_token_metadata::state::{ - Data as SplData, - Metadata, -}; use std::cmp::min; #[derive(FromAccounts)] @@ -164,7 +160,7 @@ pub fn create_accounts( let name = truncate_utf8(&accs.vaa.name, 32 - 11) + " (Wormhole)"; let symbol = truncate_utf8(&accs.vaa.symbol, 10); - let spl_token_metadata_ix = spl_token_metadata::instruction::create_metadata_accounts( + let spl_token_metadata_ix = spl_token_metadata::instruction::create_metadata_accounts_v3( spl_token_metadata::id(), *accs.spl_metadata.key, *accs.mint.info().key, @@ -178,6 +174,9 @@ pub fn create_accounts( 0, false, true, + None, + None, + None, ); invoke_seeded(&spl_token_metadata_ix, ctx, &accs.mint_authority, None)?; @@ -194,28 +193,34 @@ pub fn update_accounts( accs: &mut CreateWrapped, _data: CreateWrappedData, ) -> Result<()> { - accs.spl_metadata.verify_derivation( - &spl_token_metadata::id(), - &SplTokenMetaDerivationData { + // Checks in this method are redundant with what occurs in `update_metadata_accounts_v2`, but we want to make + // sure that the account we are deserializing is legitimate. + let metadata = deserialize_and_verify_metadata( + &accs.spl_metadata, + SplTokenMetaDerivationData { mint: *accs.mint.info().key, }, )?; - let mut metadata: SplData = Metadata::from_account_info(accs.spl_metadata.info()) - .ok_or(InvalidMetadata)? - .data; - - // Normalize token metadata. - metadata.name = truncate_utf8(&accs.vaa.name, 32 - 11) + " (Wormhole)"; - metadata.symbol = truncate_utf8(&accs.vaa.symbol, 10); + // Normalize token metadata's name and symbol. + let new_data_v2 = spl_token_metadata::state::DataV2 { + name: truncate_utf8(&accs.vaa.name, 32 - 11) + " (Wormhole)", + symbol: truncate_utf8(&accs.vaa.symbol, 10), + uri: metadata.data.uri, + seller_fee_basis_points: metadata.data.seller_fee_basis_points, + creators: metadata.data.creators, + collection: metadata.collection, + uses: metadata.uses, + }; // Update SPL Metadata - let spl_token_metadata_ix = spl_token_metadata::instruction::update_metadata_accounts( + let spl_token_metadata_ix = spl_token_metadata::instruction::update_metadata_accounts_v2( spl_token_metadata::id(), *accs.spl_metadata.key, *accs.mint_authority.info().key, None, - Some(metadata), + Some(new_data_v2), + None, None, ); invoke_seeded(&spl_token_metadata_ix, ctx, &accs.mint_authority, None)?; diff --git a/solana/modules/token_bridge/program/src/lib.rs b/solana/modules/token_bridge/program/src/lib.rs index c2555039c..6ccb82f5d 100644 --- a/solana/modules/token_bridge/program/src/lib.rs +++ b/solana/modules/token_bridge/program/src/lib.rs @@ -89,6 +89,8 @@ pub enum TokenBridgeError { InvalidFee, InvalidRecipient, InvalidVAA, + NonexistentTokenMetadataAccount, + NotMetadataV1Account, } impl From for SolitaireError { diff --git a/solana/modules/token_bridge/program/tests/common.rs b/solana/modules/token_bridge/program/tests/common.rs index bbbc374b0..cdea407eb 100644 --- a/solana/modules/token_bridge/program/tests/common.rs +++ b/solana/modules/token_bridge/program/tests/common.rs @@ -131,7 +131,7 @@ mod helpers { ); let mut builder = ProgramTest::new("bridge", program, processor!(bridge::solitaire)); - builder.add_program("spl_token_metadata", spl_token_metadata::id(), None); + builder.add_program("mpl_token_metadata", spl_token_metadata::id(), None); builder.add_program( "token_bridge", token_program, @@ -618,21 +618,26 @@ mod helpers { client, payer, &[payer, mint_authority], - &[spl_token_metadata::instruction::create_metadata_accounts( - spl_token_metadata::id(), - metadata_account, - mint.pubkey(), - mint_authority.pubkey(), - payer.pubkey(), - update_authority, - name, - symbol, - "https://token.org".to_string(), - None, - 0, - false, - false, - )], + &[ + spl_token_metadata::instruction::create_metadata_accounts_v3( + spl_token_metadata::id(), + metadata_account, + mint.pubkey(), + mint_authority.pubkey(), + payer.pubkey(), + update_authority, + name, + symbol, + "https://token.org".to_string(), + None, + 0, + false, + false, + None, + None, + None, + ), + ], CommitmentLevel::Processed, ) .await diff --git a/solana/modules/token_bridge/token-metadata/Cargo.toml b/solana/modules/token_bridge/token-metadata/Cargo.toml deleted file mode 100644 index 10ca4cfb9..000000000 --- a/solana/modules/token_bridge/token-metadata/Cargo.toml +++ /dev/null @@ -1,20 +0,0 @@ -[package] -name = "spl-token-metadata" -version = "0.0.1" -description = "Metaplex Metadata" -authors = ["Metaplex Maintainers "] -repository = "https://github.com/metaplex-foundation/metaplex" -license = "Apache-2.0" -edition = "2018" - -[lib] -crate-type = ["cdylib", "lib"] - -[features] -no-entrypoint = [] -test-bpf = [] - -[dependencies] -borsh = "=0.9.3" -solana-program = "=1.10.31" -spl-token = { version = "=3.3.0", features = ["no-entrypoint"] } diff --git a/solana/modules/token_bridge/token-metadata/README.md b/solana/modules/token_bridge/token-metadata/README.md deleted file mode 100644 index ec5ef2155..000000000 --- a/solana/modules/token_bridge/token-metadata/README.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Token Metadata Program ---- - -Fork of the SPL Token Metadata program from the Metaplex repository, this is -temporary until there are versioned releases we can compile against. Currently -the upstream version depends on a version of solana with conflicting versions -of borsh. diff --git a/solana/modules/token_bridge/token-metadata/Xargo.toml b/solana/modules/token_bridge/token-metadata/Xargo.toml deleted file mode 100644 index 475fb71ed..000000000 --- a/solana/modules/token_bridge/token-metadata/Xargo.toml +++ /dev/null @@ -1,2 +0,0 @@ -[target.bpfel-unknown-unknown.dependencies.std] -features = [] diff --git a/solana/modules/token_bridge/token-metadata/spl_token_metadata.so b/solana/modules/token_bridge/token-metadata/spl_token_metadata.so deleted file mode 100644 index 79f13c0ecb38fe9bc3800d4108bdbfb91b04e181..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441920 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, - pub update_authority: Option, - pub primary_sale_happened: Option, -} - -#[repr(C)] -#[derive(BorshSerialize, BorshDeserialize, PartialEq, Debug, Clone)] -/// Args for create call -pub struct CreateMetadataAccountArgs { - /// Note that unique metadatas are disabled for now. - pub data: Data, - /// Whether you want your metadata to be updateable in the future. - pub is_mutable: bool, -} - -#[repr(C)] -#[derive(BorshSerialize, BorshDeserialize, PartialEq, Debug, Clone)] -pub struct CreateMasterEditionArgs { - /// If set, means that no more than this number of editions can ever be minted. This is immutable. - pub max_supply: Option, -} - -#[repr(C)] -#[derive(BorshSerialize, BorshDeserialize, PartialEq, Debug, Clone)] -pub struct MintNewEditionFromMasterEditionViaTokenArgs { - pub edition: u64, -} - -/// Instructions supported by the Metadata program. -#[derive(BorshSerialize, BorshDeserialize, Clone)] -pub enum MetadataInstruction { - /// Create Metadata object. - /// 0. `[writable]` Metadata key (pda of ['metadata', program id, mint id]) - /// 1. `[]` Mint of token asset - /// 2. `[signer]` Mint authority - /// 3. `[signer]` payer - /// 4. `[]` update authority info - /// 5. `[]` System program - /// 6. `[]` Rent info - CreateMetadataAccount(CreateMetadataAccountArgs), - - /// Update a Metadata - /// 0. `[writable]` Metadata account - /// 1. `[signer]` Update authority key - UpdateMetadataAccount(UpdateMetadataAccountArgs), -} - -/// Creates an CreateMetadataAccounts instruction -#[allow(clippy::too_many_arguments)] -pub fn create_metadata_accounts( - program_id: Pubkey, - metadata_account: Pubkey, - mint: Pubkey, - mint_authority: Pubkey, - payer: Pubkey, - update_authority: Pubkey, - name: String, - symbol: String, - uri: String, - creators: Option>, - seller_fee_basis_points: u16, - update_authority_is_signer: bool, - is_mutable: bool, -) -> Instruction { - Instruction { - program_id, - accounts: vec![ - AccountMeta::new(metadata_account, false), - AccountMeta::new_readonly(mint, false), - AccountMeta::new_readonly(mint_authority, true), - AccountMeta::new(payer, true), - AccountMeta::new_readonly(update_authority, update_authority_is_signer), - AccountMeta::new_readonly(solana_program::system_program::id(), false), - AccountMeta::new_readonly(sysvar::rent::id(), false), - ], - data: MetadataInstruction::CreateMetadataAccount(CreateMetadataAccountArgs { - data: Data { - name, - symbol, - uri, - seller_fee_basis_points, - creators, - }, - is_mutable, - }) - .try_to_vec() - .unwrap(), - } -} - -/// update metadata account instruction -pub fn update_metadata_accounts( - program_id: Pubkey, - metadata_account: Pubkey, - update_authority: Pubkey, - new_update_authority: Option, - data: Option, - primary_sale_happened: Option, -) -> Instruction { - Instruction { - program_id, - accounts: vec![ - AccountMeta::new(metadata_account, false), - AccountMeta::new_readonly(update_authority, true), - ], - data: MetadataInstruction::UpdateMetadataAccount(UpdateMetadataAccountArgs { - data, - update_authority: new_update_authority, - primary_sale_happened, - }) - .try_to_vec() - .unwrap(), - } -} diff --git a/solana/modules/token_bridge/token-metadata/src/lib.rs b/solana/modules/token_bridge/token-metadata/src/lib.rs deleted file mode 100644 index fc77d62c5..000000000 --- a/solana/modules/token_bridge/token-metadata/src/lib.rs +++ /dev/null @@ -1,7 +0,0 @@ -// The solana_program::declare_id! macro generates spurious import statements. -#[allow(unused_imports)] -pub mod instruction; -pub mod state; -pub mod utils; - -solana_program::declare_id!("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"); diff --git a/solana/modules/token_bridge/token-metadata/src/state.rs b/solana/modules/token_bridge/token-metadata/src/state.rs deleted file mode 100644 index bbe6e066c..000000000 --- a/solana/modules/token_bridge/token-metadata/src/state.rs +++ /dev/null @@ -1,124 +0,0 @@ -use crate::utils::try_from_slice_checked; -use borsh::{ - BorshDeserialize, - BorshSerialize, -}; -use solana_program::{ - account_info::AccountInfo, - pubkey::Pubkey, -}; - -/// prefix used for PDAs to avoid certain collision attacks (https://en.wikipedia.org/wiki/Collision_attack#Chosen-prefix_collision_attack) -pub const PREFIX: &str = "metadata"; - -/// Used in seeds to make Edition model pda address -pub const EDITION: &str = "edition"; - -pub const RESERVATION: &str = "reservation"; - -pub const MAX_NAME_LENGTH: usize = 32; - -pub const MAX_SYMBOL_LENGTH: usize = 10; - -pub const MAX_URI_LENGTH: usize = 200; - -pub const MAX_METADATA_LEN: usize = 1 - + 32 - + 32 - + MAX_NAME_LENGTH - + MAX_SYMBOL_LENGTH - + MAX_URI_LENGTH - + MAX_CREATOR_LIMIT * MAX_CREATOR_LEN - + 2 - + 1 - + 1 - + 198; - -pub const MAX_EDITION_LEN: usize = 1 + 32 + 8 + 200; - -// Large buffer because the older master editions have two pubkeys in them, -// need to keep two versions same size because the conversion process actually changes the same account -// by rewriting it. -pub const MAX_MASTER_EDITION_LEN: usize = 1 + 9 + 8 + 264; - -pub const MAX_CREATOR_LIMIT: usize = 5; - -pub const MAX_CREATOR_LEN: usize = 32 + 1 + 1; - -pub const MAX_RESERVATIONS: usize = 200; - -// can hold up to 200 keys per reservation, note: the extra 8 is for number of elements in the vec -pub const MAX_RESERVATION_LIST_V1_SIZE: usize = 1 + 32 + 8 + 8 + MAX_RESERVATIONS * 34 + 100; - -// can hold up to 200 keys per reservation, note: the extra 8 is for number of elements in the vec -pub const MAX_RESERVATION_LIST_SIZE: usize = 1 + 32 + 8 + 8 + MAX_RESERVATIONS * 48 + 8 + 8 + 84; - -pub const MAX_EDITION_MARKER_SIZE: usize = 32; - -pub const EDITION_MARKER_BIT_SIZE: u64 = 248; - -#[repr(C)] -#[derive(BorshSerialize, BorshDeserialize, PartialEq, Debug, Clone, Copy)] -pub enum Key { - Uninitialized, - EditionV1, - MasterEditionV1, - ReservationListV1, - MetadataV1, - ReservationListV2, - MasterEditionV2, - EditionMarker, -} - -impl Default for Key { - fn default() -> Self { - Key::Uninitialized - } -} - -#[repr(C)] -#[derive(BorshSerialize, BorshDeserialize, Default, PartialEq, Debug, Clone)] -pub struct Data { - /// The name of the asset - pub name: String, - /// The symbol for the asset - pub symbol: String, - /// URI pointing to JSON representing the asset - pub uri: String, - /// Royalty basis points that goes to creators in secondary sales (0-10000) - pub seller_fee_basis_points: u16, - /// Array of creators, optional - pub creators: Option>, -} - -#[repr(C)] -#[derive(Clone, BorshSerialize, BorshDeserialize, Debug, Default)] -pub struct Metadata { - pub key: Key, - pub update_authority: Pubkey, - pub mint: Pubkey, - pub data: Data, - // Immutable, once flipped, all sales of this metadata are considered secondary. - pub primary_sale_happened: bool, - // Whether or not the data struct is mutable, default is not - pub is_mutable: bool, -} - -impl Metadata { - pub fn from_bytes(a: &[u8]) -> Option { - try_from_slice_checked(a, Key::MetadataV1, MAX_METADATA_LEN) - } - - pub fn from_account_info(a: &AccountInfo) -> Option { - try_from_slice_checked(&a.data.borrow_mut(), Key::MetadataV1, MAX_METADATA_LEN) - } -} - -#[repr(C)] -#[derive(BorshSerialize, BorshDeserialize, PartialEq, Debug, Clone)] -pub struct Creator { - pub address: Pubkey, - pub verified: bool, - // In percentages, NOT basis points ;) Watch out! - pub share: u8, -} diff --git a/solana/modules/token_bridge/token-metadata/src/utils.rs b/solana/modules/token_bridge/token-metadata/src/utils.rs deleted file mode 100644 index 6f96b66f9..000000000 --- a/solana/modules/token_bridge/token-metadata/src/utils.rs +++ /dev/null @@ -1,16 +0,0 @@ -use crate::state::Key; -use borsh::BorshDeserialize; -use solana_program::borsh::try_from_slice_unchecked; - -pub fn try_from_slice_checked( - data: &[u8], - data_type: Key, - data_size: usize, -) -> Option { - if (data[0] != data_type as u8 && data[0] != Key::Uninitialized as u8) - || data.len() != data_size - { - return None; - } - try_from_slice_unchecked(data).ok() -} diff --git a/testing/solana-test-validator/.gitignore b/testing/solana-test-validator/.gitignore index 14647191b..65279b95c 100644 --- a/testing/solana-test-validator/.gitignore +++ b/testing/solana-test-validator/.gitignore @@ -1,3 +1,5 @@ .test -artifacts +artifacts* node_modules +wormhole-main +validator.log diff --git a/testing/solana-test-validator/Makefile b/testing/solana-test-validator/Makefile index 7b56c460a..7acf31398 100644 --- a/testing/solana-test-validator/Makefile +++ b/testing/solana-test-validator/Makefile @@ -7,15 +7,33 @@ node_modules: yarn -artifacts: node_modules - cd ../../solana && DOCKER_BUILDKIT=1 docker build -f Dockerfile --build-arg BRIDGE_ADDRESS=agnnozV7x6ffAhi8xVhBd5dShfLnuUKKPEMX1tJ1nDC -o ../testing/solana-test-validator/artifacts . +artifacts: + cd ../../solana && \ + DOCKER_BUILDKIT=1 docker build \ + -f Dockerfile \ + --build-arg BRIDGE_ADDRESS=agnnozV7x6ffAhi8xVhBd5dShfLnuUKKPEMX1tJ1nDC \ + -o ../testing/solana-test-validator/artifacts . + +artifacts-main: + git clone \ + --depth 1 \ + --branch main \ + --filter=blob:none \ + https://github.com/wormhole-foundation/wormhole \ + wormhole-main + cd wormhole-main/solana && \ + DOCKER_BUILDKIT=1 docker build \ + -f Dockerfile \ + --build-arg BRIDGE_ADDRESS=agnnozV7x6ffAhi8xVhBd5dShfLnuUKKPEMX1tJ1nDC \ + -o ../../artifacts-main . + rm -rf wormhole-main .PHONY: test -test: artifacts +test: node_modules artifacts-main artifacts @echo "Running integration tests" yarn run sdk-tests .PHONY: clean clean: - rm -rf artifacts node_modules validator.log .test + rm -rf artifacts artifacts-main wormhole-main node_modules validator.log .test diff --git a/testing/solana-test-validator/package.json b/testing/solana-test-validator/package.json index 6c77e4e67..2ea044a7b 100644 --- a/testing/solana-test-validator/package.json +++ b/testing/solana-test-validator/package.json @@ -6,6 +6,7 @@ "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, "dependencies": { + "@metaplex-foundation/mpl-token-metadata": "^2.11.1", "@project-serum/anchor": "0.25.0", "@solana/spl-token": "^0.3.1", "@solana/web3.js": "^1.53.0", diff --git a/testing/solana-test-validator/run_sdk_tests.sh b/testing/solana-test-validator/run_sdk_tests.sh index 65f215859..3d6cc0967 100755 --- a/testing/solana-test-validator/run_sdk_tests.sh +++ b/testing/solana-test-validator/run_sdk_tests.sh @@ -15,9 +15,10 @@ ACCOUNTS=$ROOT/sdk-tests/accounts TEST=$ROOT/.test solana-test-validator --reset \ - --bpf-program metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s $ARTIFACTS/spl_token_metadata.so \ + --bpf-program metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s $ARTIFACTS/mpl_token_metadata.so \ + --account-dir $ACCOUNTS \ --ledger $TEST > validator.log 2>&1 & -sleep 2 +sleep 5 ### write program logs PROGRAM_LOGS=$TEST/program-logs diff --git a/testing/solana-test-validator/sdk-tests/0_deploy_and_upgrade.ts b/testing/solana-test-validator/sdk-tests/0_deploy_and_upgrade.ts index 7ef9f3155..6d9568a71 100644 --- a/testing/solana-test-validator/sdk-tests/0_deploy_and_upgrade.ts +++ b/testing/solana-test-validator/sdk-tests/0_deploy_and_upgrade.ts @@ -69,7 +69,7 @@ describe("Deploy and Upgrade Programs", () => { describe("Wormhole (Core Bridge)", () => { it("Deploy and Initialize", async () => { - const artifactPath = `${__dirname}/../artifacts/bridge.so`; + const artifactPath = `${__dirname}/../artifacts-main/bridge.so`; const programIdPath = `${__dirname}/keys/${CORE_BRIDGE_ADDRESS}.json`; const upgradeAuthority = deriveUpgradeAuthorityKey(CORE_BRIDGE_ADDRESS); @@ -176,7 +176,7 @@ describe("Deploy and Upgrade Programs", () => { describe("Token Bridge", () => { it("Deploy and Initialize", async () => { - const artifactPath = `${__dirname}/../artifacts/token_bridge.so`; + const artifactPath = `${__dirname}/../artifacts-main/token_bridge.so`; const programIdPath = `${__dirname}/keys/${TOKEN_BRIDGE_ADDRESS}.json`; const upgradeAuthority = deriveUpgradeAuthorityKey(TOKEN_BRIDGE_ADDRESS); @@ -270,7 +270,7 @@ describe("Deploy and Upgrade Programs", () => { describe("NFT Bridge", () => { it("Deploy and Initialize", async () => { - const artifactPath = `${__dirname}/../artifacts/nft_bridge.so`; + const artifactPath = `${__dirname}/../artifacts-main/nft_bridge.so`; const programIdPath = `${__dirname}/keys/${NFT_BRIDGE_ADDRESS}.json`; const upgradeAuthority = deriveUpgradeAuthorityKey(NFT_BRIDGE_ADDRESS); diff --git a/testing/solana-test-validator/sdk-tests/2_token_bridge.ts b/testing/solana-test-validator/sdk-tests/2_token_bridge.ts index acfb66bb3..7e49169ca 100644 --- a/testing/solana-test-validator/sdk-tests/2_token_bridge.ts +++ b/testing/solana-test-validator/sdk-tests/2_token_bridge.ts @@ -1,5 +1,9 @@ import { expect } from "chai"; import * as web3 from "@solana/web3.js"; +import { + Metadata, + PROGRAM_ID as TOKEN_METADATA_PROGRAM_ID, +} from "@metaplex-foundation/mpl-token-metadata"; import { createMint, getAccount, @@ -30,6 +34,7 @@ import { deriveEndpointKey, deriveMintAuthorityKey, deriveRedeemerAccountKey, + deriveTokenMetadataKey, deriveWrappedMintKey, getAttestTokenAccounts, getCompleteTransferNativeAccounts, @@ -54,7 +59,6 @@ import { getTransferWrappedWithPayloadCpiAccounts, NodeWallet, signSendAndConfirmTransaction, - SplTokenMetadataProgram, } from "../../../sdk/js/src/solana"; import { deriveWormholeEmitterKey, @@ -80,6 +84,9 @@ import { GUARDIAN_SET_INDEX, LOCALHOST, WETH_ADDRESS, + DEADBEEF_ADDRESS, + DEADBEEF_METADATA_ADDRESS, + DEADBEEF_MINT_ADDRESS, } from "./helpers/consts"; import { ethAddressToBuffer, now } from "./helpers/utils"; import { @@ -517,7 +524,7 @@ describe("Token Bridge", () => { "4CgrjMnDneBjBBEyXtcikLTbAWpHAD1cwn8W1sSSCLru" ); expect(accounts.vaa.toString()).to.equal( - "AaZqjqvg8QirKetuR799Smfw5gyAWobUooGsvxzr1aoX" + "4NDyWDtRvfEdi48a9JgYG28m919hrcdW8gNgRg3jwU99" ); expect(accounts.claim.toString()).to.equal( "4dyk94hhqektDX9wUBCL1ZkyQC1Xn3QaTSAdJeZzbTcJ" @@ -538,9 +545,8 @@ describe("Token Bridge", () => { expect(accounts.systemProgram.equals(web3.SystemProgram.programId)).to.be .true; expect(accounts.tokenProgram.equals(TOKEN_PROGRAM_ID)).is.true; - expect( - accounts.splMetadataProgram.equals(SplTokenMetadataProgram.programId) - ).is.true; + expect(accounts.splMetadataProgram.equals(TOKEN_METADATA_PROGRAM_ID)).is + .true; expect(accounts.wormholeProgram.equals(CORE_BRIDGE_ADDRESS)).is.true; }); @@ -1552,6 +1558,278 @@ describe("Token Bridge", () => { Buffer.compare(wrappedMeta.tokenAddress, expectedTokenAddress) ).to.equal(0); expect(wrappedMeta.originalDecimals).to.equal(decimals); + + // check metadata + const expectedName = `${name} (Wormhole)`.padEnd(32, "\0"); + const metadata = await Metadata.fromAccountAddress( + connection, + deriveTokenMetadataKey(mint) + ); + expect(metadata.data.symbol.toString()).equals(symbol.padEnd(10, "\0")); + expect(metadata.data.name.toString()).equals(expectedName); + localVariables.oldName = expectedName; + }); + + it("Update (Create) Wrapped with New Metadata", async () => { + const tokenAddress = WETH_ADDRESS; + const oldName: string = localVariables.oldName; + + const mint = deriveWrappedMintKey( + TOKEN_BRIDGE_ADDRESS, + ethereumTokenBridge.chain, + tokenAddress + ); + + // check existing metadata + { + const metadata = await Metadata.fromAccountAddress( + connection, + deriveTokenMetadataKey(mint) + ); + expect(metadata.data.name.toString()).equals(oldName); + } + + const decimals = 18; + const symbol = "WETH"; + const name = "Wrapped Ether"; + const nonce = 420; + const message = ethereumTokenBridge.publishAttestMeta( + tokenAddress, + decimals, + symbol, + name, + nonce + ); + const signedVaa = guardians.addSignatures( + message, + [0, 1, 2, 3, 5, 7, 8, 9, 10, 12, 15, 16, 18] + ); + + const txSignatures = await postVaa( + connection, + wallet.signTransaction, + CORE_BRIDGE_ADDRESS, + wallet.key(), + signedVaa + ).then((results) => results.map((result) => result.signature)); + const postTx = txSignatures.pop()!; + for (const verifyTx of txSignatures) { + // console.log(`verifySignatures: ${verifyTx}`); + } + // console.log(`postVaa: ${postTx}`); + + const createWrappedIx = createCreateWrappedInstruction( + TOKEN_BRIDGE_ADDRESS, + CORE_BRIDGE_ADDRESS, + wallet.key(), + signedVaa + ); + + const createWrappedTx = await web3.sendAndConfirmTransaction( + connection, + new web3.Transaction().add(createWrappedIx), + [wallet.signer()] + ); + // console.log(`createWrappedTx: ${createWrappedTx}`); + + // verify data + const parsed = parseAttestMetaVaa(signedVaa); + const messageData = await getPostedVaa( + connection, + CORE_BRIDGE_ADDRESS, + parsed.hash + ).then((posted) => posted.message); + + expect(messageData.consistencyLevel).to.equal( + ethereumTokenBridge.consistencyLevel + ); + const expectedEmitter = ethAddressToBuffer( + ETHEREUM_TOKEN_BRIDGE_ADDRESS + ); + expect( + Buffer.compare(messageData.emitterAddress, expectedEmitter) + ).to.equal(0); + expect(messageData.emitterChain).to.equal(ethereumTokenBridge.chain); + expect(messageData.nonce).to.equal(nonce); + expect(messageData.sequence).to.equal(3n); + expect(messageData.vaaTime).to.equal(0); + expect(messageData.vaaVersion).to.equal(1); + expect(Buffer.compare(parsed.payload, messageData.payload)).to.equal(0); + + const assetMeta = parseAttestMetaPayload(messageData.payload); + expect(assetMeta.payloadType).to.equal(2); + const expectedTokenAddress = ethAddressToBuffer(tokenAddress); + expect( + Buffer.compare(assetMeta.tokenAddress, expectedTokenAddress) + ).to.equal(0); + expect(assetMeta.tokenChain).to.equal(ethereumTokenBridge.chain); + expect(assetMeta.decimals).to.equal(decimals); + expect(assetMeta.symbol).to.equal(symbol); + expect(assetMeta.name).to.equal(name); + + // check wrapped mint + const mintInfo = await getMint(connection, mint); + expect(mintInfo.decimals).to.equal(8); + expect(mintInfo.mintAuthority).is.not.null; + expect( + mintInfo.mintAuthority?.equals( + deriveMintAuthorityKey(TOKEN_BRIDGE_ADDRESS) + ) + ).is.true; + expect(mintInfo.supply).to.equal(0n); + + // check wrapped meta + const wrappedMeta = await getWrappedMeta( + connection, + TOKEN_BRIDGE_ADDRESS, + mint + ); + expect(wrappedMeta.chain).to.equal(ethereumTokenBridge.chain); + expect( + Buffer.compare(wrappedMeta.tokenAddress, expectedTokenAddress) + ).to.equal(0); + expect(wrappedMeta.originalDecimals).to.equal(decimals); + + // check metadata + const metadata = await Metadata.fromAccountAddress( + connection, + deriveTokenMetadataKey(mint) + ); + expect(metadata.data.name.toString()).not.equals(oldName); + + expect(metadata.data.symbol.toString()).equals(symbol.padEnd(10, "\0")); + expect(metadata.data.name.toString()).equals( + `${name} (Wormhole)`.padEnd(32, "\0") + ); + }); + + it("Update (Create) Wrapped with New Metadata for V1 Metadata Account", async () => { + const tokenAddress = DEADBEEF_ADDRESS; + const oldExpectedName = "Dead Beef (Wormhole)".padEnd(32, "\0"); + + // fetch previously created metadata account + // check wrapped mint + { + const mint = deriveWrappedMintKey( + TOKEN_BRIDGE_ADDRESS, + ethereumTokenBridge.chain, + tokenAddress + ); + expect(mint.toString()).equals(DEADBEEF_MINT_ADDRESS); + + const metadataKey = deriveTokenMetadataKey(mint); + expect(metadataKey.toString()).equals(DEADBEEF_METADATA_ADDRESS); + + const metadata = await Metadata.fromAccountAddress( + connection, + metadataKey + ); + expect(metadata.data.name.toString()).equals(oldExpectedName); + } + + const decimals = 18; + const symbol = "BEEF"; + const name = "Dead Beef Modified"; + const nonce = 420; + const message = ethereumTokenBridge.publishAttestMeta( + tokenAddress, + decimals, + symbol, + name, + nonce + ); + const signedVaa = guardians.addSignatures( + message, + [0, 1, 2, 3, 5, 7, 8, 9, 10, 12, 15, 16, 18] + ); + + const txSignatures = await postVaa( + connection, + wallet.signTransaction, + CORE_BRIDGE_ADDRESS, + wallet.key(), + signedVaa + ).then((results) => results.map((result) => result.signature)); + const postTx = txSignatures.pop()!; + for (const verifyTx of txSignatures) { + // console.log(`verifySignatures: ${verifyTx}`); + } + // console.log(`postVaa: ${postTx}`); + + const createWrappedIx = createCreateWrappedInstruction( + TOKEN_BRIDGE_ADDRESS, + CORE_BRIDGE_ADDRESS, + wallet.key(), + signedVaa + ); + + const createWrappedTx = await web3.sendAndConfirmTransaction( + connection, + new web3.Transaction().add(createWrappedIx), + [wallet.signer()] + ); + // console.log(`createWrappedTx: ${createWrappedTx}`); + + // verify data + const parsed = parseAttestMetaVaa(signedVaa); + const messageData = await getPostedVaa( + connection, + CORE_BRIDGE_ADDRESS, + parsed.hash + ).then((posted) => posted.message); + + expect(messageData.consistencyLevel).to.equal( + ethereumTokenBridge.consistencyLevel + ); + const expectedEmitter = ethAddressToBuffer( + ETHEREUM_TOKEN_BRIDGE_ADDRESS + ); + expect( + Buffer.compare(messageData.emitterAddress, expectedEmitter) + ).to.equal(0); + expect(messageData.emitterChain).to.equal(ethereumTokenBridge.chain); + expect(messageData.nonce).to.equal(nonce); + expect(messageData.sequence).to.equal(4n); + expect(messageData.vaaTime).to.equal(0); + expect(messageData.vaaVersion).to.equal(1); + expect(Buffer.compare(parsed.payload, messageData.payload)).to.equal(0); + + const assetMeta = parseAttestMetaPayload(messageData.payload); + expect(assetMeta.payloadType).to.equal(2); + const expectedTokenAddress = ethAddressToBuffer(tokenAddress); + expect( + Buffer.compare(assetMeta.tokenAddress, expectedTokenAddress) + ).to.equal(0); + expect(assetMeta.tokenChain).to.equal(ethereumTokenBridge.chain); + expect(assetMeta.decimals).to.equal(decimals); + expect(assetMeta.symbol).to.equal(symbol); + expect(assetMeta.name).to.equal(name); + + // check wrapped mint + const mint = deriveWrappedMintKey( + TOKEN_BRIDGE_ADDRESS, + assetMeta.tokenChain, + assetMeta.tokenAddress + ); + const mintInfo = await getMint(connection, mint); + expect(mintInfo.decimals).to.equal(8); + expect(mintInfo.mintAuthority).is.not.null; + expect( + mintInfo.mintAuthority?.equals( + deriveMintAuthorityKey(TOKEN_BRIDGE_ADDRESS) + ) + ).is.true; + expect(mintInfo.supply).to.equal(0n); + + // check metadata + const metadata = await Metadata.fromAccountAddress( + connection, + deriveTokenMetadataKey(mint) + ); + expect(metadata.data.name.toString()).not.equals(oldExpectedName); + expect(metadata.data.name.toString()).equals( + `${name} (Wormhole)`.padEnd(32, "\0") + ); }); it("Receive Token", async () => { @@ -1653,7 +1931,7 @@ describe("Token Bridge", () => { ).to.equal(0); expect(messageData.emitterChain).to.equal(ethereumTokenBridge.chain); expect(messageData.nonce).to.equal(nonce); - expect(messageData.sequence).to.equal(3n); + expect(messageData.sequence).to.equal(5n); expect(messageData.vaaTime).to.equal(0); expect(messageData.vaaVersion).to.equal(1); expect( @@ -1900,7 +2178,7 @@ describe("Token Bridge", () => { // nft bridge on Ethereum const ethereumTokenBridge = new MockEthereumTokenBridge( ETHEREUM_TOKEN_BRIDGE_ADDRESS, - 3 // startSequence + 10 // startSequence ); describe("getOriginalAssetSolana", () => { diff --git a/testing/solana-test-validator/sdk-tests/3_nft_bridge.ts b/testing/solana-test-validator/sdk-tests/3_nft_bridge.ts index b1de7a142..857569fc8 100644 --- a/testing/solana-test-validator/sdk-tests/3_nft_bridge.ts +++ b/testing/solana-test-validator/sdk-tests/3_nft_bridge.ts @@ -1,5 +1,10 @@ import { expect } from "chai"; import * as web3 from "@solana/web3.js"; +import { + Metadata, + PROGRAM_ID as TOKEN_METADATA_PROGRAM_ID, + createCreateMetadataAccountV3Instruction, +} from "@metaplex-foundation/mpl-token-metadata"; import { ASSOCIATED_TOKEN_PROGRAM_ID, createMint, @@ -19,9 +24,8 @@ import { import { postVaa } from "../../../sdk/js/src/solana/sendAndConfirmPostVaa"; import { BpfLoaderUpgradeable, - getMetadata, NodeWallet, - SplTokenMetadataProgram, + deriveTokenMetadataKey, } from "../../../sdk/js/src/solana"; import { deriveWormholeEmitterKey, @@ -115,26 +119,37 @@ describe("NFT Bridge", () => { uri: "https://spl.solana.com/token#example-create-a-non-fungible-token", }; - const mint = localVariables.mint; - const name = localVariables.nftMeta.name; - const symbol = localVariables.nftMeta.symbol; - const updateAuthorityIsSigner = false; - const uri = localVariables.nftMeta.uri; - const creators = null; - const sellerFeeBasisPoints = 0; - const isMutable = false; - const createMetadataIx = SplTokenMetadataProgram.createMetadataAccounts( - wallet.key(), + const mint: web3.PublicKey = localVariables.mint; + const name: string = localVariables.nftMeta.name; + const symbol: string = localVariables.nftMeta.symbol; + const uri: string = localVariables.nftMeta.uri; + + const accounts = { + metadata: deriveTokenMetadataKey(mint), mint, - wallet.key(), - name, - symbol, - wallet.key(), - updateAuthorityIsSigner, - uri, - creators, - sellerFeeBasisPoints, - isMutable + mintAuthority: wallet.key(), + payer: wallet.key(), + updateAuthority: wallet.key(), + }; + const args = { + createMetadataAccountArgsV3: { + data: { + name, + symbol, + uri, + sellerFeeBasisPoints: 0, + creators: null, + collection: null, + uses: null, + }, + isMutable: false, + collectionDetails: null, + }, + }; + const createMetadataIx = createCreateMetadataAccountV3Instruction( + accounts, + args, + TOKEN_METADATA_PROGRAM_ID ); const createMetadataTx = await web3.sendAndConfirmTransaction( @@ -323,9 +338,8 @@ describe("NFT Bridge", () => { expect(accounts.systemProgram.equals(web3.SystemProgram.programId)).to.be .true; expect(accounts.tokenProgram.equals(TOKEN_PROGRAM_ID)).is.true; - expect( - accounts.splMetadataProgram.equals(SplTokenMetadataProgram.programId) - ).is.true; + expect(accounts.splMetadataProgram.equals(TOKEN_METADATA_PROGRAM_ID)).is + .true; expect( accounts.associatedTokenProgram.equals(ASSOCIATED_TOKEN_PROGRAM_ID) ).is.true; @@ -401,9 +415,8 @@ describe("NFT Bridge", () => { expect(accounts.systemProgram.equals(web3.SystemProgram.programId)).to.be .true; expect(accounts.tokenProgram.equals(TOKEN_PROGRAM_ID)).is.true; - expect( - accounts.splMetadataProgram.equals(SplTokenMetadataProgram.programId) - ).is.true; + expect(accounts.splMetadataProgram.equals(TOKEN_METADATA_PROGRAM_ID)).is + .true; expect(accounts.wormholeProgram.equals(CORE_BRIDGE_ADDRESS)).is.true; }); @@ -467,9 +480,8 @@ describe("NFT Bridge", () => { expect(accounts.systemProgram.equals(web3.SystemProgram.programId)).to.be .true; expect(accounts.tokenProgram.equals(TOKEN_PROGRAM_ID)).is.true; - expect( - accounts.splMetadataProgram.equals(SplTokenMetadataProgram.programId) - ).is.true; + expect(accounts.splMetadataProgram.equals(TOKEN_METADATA_PROGRAM_ID)).is + .true; expect(accounts.wormholeProgram.equals(CORE_BRIDGE_ADDRESS)).is.true; }); @@ -524,9 +536,8 @@ describe("NFT Bridge", () => { expect(accounts.systemProgram.equals(web3.SystemProgram.programId)).to.be .true; expect(accounts.tokenProgram.equals(TOKEN_PROGRAM_ID)).is.true; - expect( - accounts.splMetadataProgram.equals(SplTokenMetadataProgram.programId) - ).is.true; + expect(accounts.splMetadataProgram.equals(TOKEN_METADATA_PROGRAM_ID)).is + .true; expect(accounts.wormholeProgram.equals(CORE_BRIDGE_ADDRESS)).is.true; }); @@ -792,8 +803,9 @@ describe("NFT Bridge", () => { custodyAccount ).then((account) => account.amount); - const metadata = await getMetadata(connection, mint).then( - (info) => info.data + const metadata = await Metadata.fromAccountAddress( + connection, + deriveTokenMetadataKey(mint) ); const tokenChain = 1; @@ -803,10 +815,10 @@ describe("NFT Bridge", () => { const message = ethereumNftBridge.publishTransferNft( NFT_TRANSFER_NATIVE_TOKEN_ADDRESS.toString("hex"), tokenChain, - metadata.name, - metadata.symbol, + metadata.data.name, + metadata.data.symbol, tokenId, - metadata.uri, + metadata.data.uri, recipientChain, mintAta.toBuffer().toString("hex"), nonce diff --git a/testing/solana-test-validator/sdk-tests/accounts/wrapped_deadbeef_metadata.json b/testing/solana-test-validator/sdk-tests/accounts/wrapped_deadbeef_metadata.json new file mode 100644 index 000000000..eaa6b6466 --- /dev/null +++ b/testing/solana-test-validator/sdk-tests/accounts/wrapped_deadbeef_metadata.json @@ -0,0 +1,13 @@ +{ + "pubkey": "A2mcN1tknMBAgMnCUF6ZT8tEJj1QE1AuCsquvXHgpWVJ", + "account": { + "lamports": 5616720, + "data": [ + "BP0KziEuVYQFCsdn5PTCokaUsJwqy3LxSbhyCV219Z2d8nzo8j6OCMEC0yd3q42xDE00sIuZJtJx185IZhkbzwkgAAAARGVhZCBCZWVmIChXb3JtaG9sZSkAAAAAAAAAAAAAAAAKAAAAQkVFRgAAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "base64" + ], + "owner": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s", + "executable": false, + "rentEpoch": 0 + } +} \ No newline at end of file diff --git a/testing/solana-test-validator/sdk-tests/accounts/wrapped_deadbeef_mint.json b/testing/solana-test-validator/sdk-tests/accounts/wrapped_deadbeef_mint.json new file mode 100644 index 000000000..20cc4ea97 --- /dev/null +++ b/testing/solana-test-validator/sdk-tests/accounts/wrapped_deadbeef_mint.json @@ -0,0 +1,13 @@ +{ + "pubkey": "HKa8mGMJJm2qnja4xmMaoeGqF4LBpGCyXVZuaiGYFaYY", + "account": { + "lamports": 1461600, + "data": [ + "AQAAAP0KziEuVYQFCsdn5PTCokaUsJwqy3LxSbhyCV219Z2dAAAAAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "base64" + ], + "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "executable": false, + "rentEpoch": 0 + } +} \ No newline at end of file diff --git a/testing/solana-test-validator/sdk-tests/helpers/consts.ts b/testing/solana-test-validator/sdk-tests/helpers/consts.ts index 7c02d92cc..580bee963 100644 --- a/testing/solana-test-validator/sdk-tests/helpers/consts.ts +++ b/testing/solana-test-validator/sdk-tests/helpers/consts.ts @@ -50,3 +50,10 @@ export const ETHEREUM_TOKEN_BRIDGE_ADDRESS = export const WETH_ADDRESS = "0xDDb64fE46a91D46ee29420539FC25FD07c5FEa3E"; export const ETHEREUM_NFT_BRIDGE_ADDRESS = "0x26b4afb60d6c903165150c6f0aa14f8016be4aec"; + +// preloaded +export const DEADBEEF_ADDRESS = "0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"; +export const DEADBEEF_MINT_ADDRESS = + "HKa8mGMJJm2qnja4xmMaoeGqF4LBpGCyXVZuaiGYFaYY"; +export const DEADBEEF_METADATA_ADDRESS = + "A2mcN1tknMBAgMnCUF6ZT8tEJj1QE1AuCsquvXHgpWVJ"; diff --git a/testing/solana-test-validator/yarn.lock b/testing/solana-test-validator/yarn.lock index 00c527f82..b2edd83df 100644 --- a/testing/solana-test-validator/yarn.lock +++ b/testing/solana-test-validator/yarn.lock @@ -55,11 +55,60 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@metaplex-foundation/beet-solana@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet-solana/-/beet-solana-0.4.0.tgz#52891e78674aaa54e0031f1bca5bfbc40de12e8d" + integrity sha512-B1L94N3ZGMo53b0uOSoznbuM5GBNJ8LwSeznxBxJ+OThvfHQ4B5oMUqb+0zdLRfkKGS7Q6tpHK9P+QK0j3w2cQ== + dependencies: + "@metaplex-foundation/beet" ">=0.1.0" + "@solana/web3.js" "^1.56.2" + bs58 "^5.0.0" + debug "^4.3.4" + +"@metaplex-foundation/beet@>=0.1.0", "@metaplex-foundation/beet@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet/-/beet-0.7.1.tgz#0975314211643f87b5f6f3e584fa31abcf4c612c" + integrity sha512-hNCEnS2WyCiYyko82rwuISsBY3KYpe828ubsd2ckeqZr7tl0WVLivGkoyA/qdiaaHEBGdGl71OpfWa2rqL3DiA== + dependencies: + ansicolors "^0.3.2" + bn.js "^5.2.0" + debug "^4.3.3" + +"@metaplex-foundation/cusper@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/cusper/-/cusper-0.0.2.tgz#dc2032a452d6c269e25f016aa4dd63600e2af975" + integrity sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA== + +"@metaplex-foundation/mpl-token-metadata@^2.11.1": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-token-metadata/-/mpl-token-metadata-2.11.1.tgz#b7755c5cc7bae5e98e285dd675fa65b62e9bd881" + integrity sha512-FNJhDAFmpXD5K9lstJYXROjUjHQmCHFpzVs4asUpVvtkF645+PGyDtqoUENfVEwoUPY8ZT6Exs7d0exRgYqxUA== + dependencies: + "@metaplex-foundation/beet" "^0.7.1" + "@metaplex-foundation/beet-solana" "^0.4.0" + "@metaplex-foundation/cusper" "^0.0.2" + "@solana/spl-token" "^0.3.6" + "@solana/web3.js" "^1.66.2" + bn.js "^5.2.0" + debug "^4.3.4" + +"@noble/curves@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.0.0.tgz#e40be8c7daf088aaf291887cbc73f43464a92932" + integrity sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw== + dependencies: + "@noble/hashes" "1.3.0" + "@noble/ed25519@^1.7.0": version "1.7.0" resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.0.tgz#583ac38340a479314b9e348d4572101ed9492f9d" integrity sha512-LeAxFK0+181zQOhOUuKE8Jnd3duzYhDNd3iCLxpmzA5K+e4I1FdbrK3Ot0ZHBwZMeRD/6EojyUfTbpHZ+hkQHg== +"@noble/hashes@1.3.0", "@noble/hashes@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.0.tgz#085fd70f6d7d9d109671090ccae1d3bec62554a1" + integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== + "@noble/hashes@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" @@ -125,6 +174,15 @@ "@solana/buffer-layout-utils" "^0.2.0" "@solana/web3.js" "^1.41.0" +"@solana/spl-token@^0.3.6": + version "0.3.7" + resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.7.tgz#6f027f9ad8e841f792c32e50920d9d2e714fc8da" + integrity sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg== + dependencies: + "@solana/buffer-layout" "^4.0.0" + "@solana/buffer-layout-utils" "^0.2.0" + buffer "^6.0.3" + "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.41.0", "@solana/web3.js@^1.53.0": version "1.53.0" resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.53.0.tgz" @@ -170,6 +228,27 @@ rpc-websockets "^7.5.0" superstruct "^0.14.2" +"@solana/web3.js@^1.56.2", "@solana/web3.js@^1.66.2": + version "1.76.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.76.0.tgz#0f888e25d727d0dadf3dd8a01967347555200b2b" + integrity sha512-aJtF/nTs+9St+KtTK/wgVJ+SinfjYzn+3w1ygYIPw8ST6LH+qHBn8XkodgDTwlv/xzNkaVz1kkUDOZ8BPXyZWA== + dependencies: + "@babel/runtime" "^7.12.5" + "@noble/curves" "^1.0.0" + "@noble/hashes" "^1.3.0" + "@solana/buffer-layout" "^4.0.0" + agentkeepalive "^4.2.1" + bigint-buffer "^1.1.5" + bn.js "^5.0.0" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^3.4.4" + node-fetch "^2.6.7" + rpc-websockets "^7.5.1" + superstruct "^0.14.2" + "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" @@ -283,6 +362,15 @@ acorn@^8.4.1: resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz" integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== +agentkeepalive@^4.2.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.3.0.tgz#bb999ff07412653c1803b3ced35e50729830a255" + integrity sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg== + dependencies: + debug "^4.1.0" + depd "^2.0.0" + humanize-ms "^1.2.1" + ansi-colors@4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" @@ -300,6 +388,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansicolors@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== + anymatch@~3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" @@ -340,6 +433,11 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" +base-x@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" + integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== + base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" @@ -420,6 +518,13 @@ bs58@^4.0.0, bs58@^4.0.1: dependencies: base-x "^3.0.2" +bs58@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" + integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== + dependencies: + base-x "^4.0.0" + buffer-from@^1.0.0, buffer-from@^1.1.0: version "1.1.2" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" @@ -438,6 +543,14 @@ buffer@6.0.1: base64-js "^1.3.1" ieee754 "^1.2.1" +buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + buffer@^5.4.3: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" @@ -446,14 +559,6 @@ buffer@^5.4.3: base64-js "^1.3.1" ieee754 "^1.1.13" -buffer@^6.0.3, buffer@~6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - bufferutil@^4.0.1: version "4.0.6" resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz" @@ -577,6 +682,13 @@ debug@4.3.3: dependencies: ms "2.1.2" +debug@^4.1.0, debug@^4.3.3, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + decamelize@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" @@ -594,6 +706,11 @@ delay@^5.0.0: resolved "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz" integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== +depd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + diff@5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" @@ -768,6 +885,13 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" @@ -1018,7 +1142,7 @@ ms@2.1.2: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3: +ms@2.1.3, ms@^2.0.0: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -1048,6 +1172,13 @@ node-fetch@2, node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" +node-fetch@^2.6.7: + version "2.6.11" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" + integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== + dependencies: + whatwg-url "^5.0.0" + node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: version "4.5.0" resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz" @@ -1167,6 +1298,19 @@ rpc-websockets@^7.5.0: bufferutil "^4.0.1" utf-8-validate "^5.0.2" +rpc-websockets@^7.5.1: + version "7.5.1" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.1.tgz#e0a05d525a97e7efc31a0617f093a13a2e10c401" + integrity sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w== + dependencies: + "@babel/runtime" "^7.17.2" + eventemitter3 "^4.0.7" + uuid "^8.3.2" + ws "^8.5.0" + optionalDependencies: + bufferutil "^4.0.1" + utf-8-validate "^5.0.2" + safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"