功能

更新MPL Hybrid 404托管配置

托管配置可通过updateEscrowV1插件升级。

为了更方便,您可以使用mpl-hybrid包中的fetchEscrowV1()获取托管账户,并使用展开运算符将所有当前字段值提供给更新指令,只调整您希望更改的值,因为原始未更改的值将由展开运算符处理。

更新托管

const escrowConfigurationAddress = publicKey("11111111111111111111111111111111");
// 获取托管配置账户。
const escrowConfigurationData = await fetchEscrowV1(umi, escrowConfigurationAddress);
// 使用展开运算符`...`将`escrowConfigurationData`字段展开到对象中
// 并调整您希望更新的任何字段。
const res = await updateEscrowV1(umi, {
...escrowConfigurationData,
// 您的托管配置地址。
escrow: escrowConfigurationAddress,
authority: umi.identity,
// 在下面添加您希望更改和更新的任何字段。
feeAmount: 100000,
}).sendAndConfirm(umi);

可更新字段

可以传递给updateEscrowV1参数对象的可更新字段。

{
name,
uri,
max,
min,
amount,
feeAmount,
solFeeAmount,
path
}

name

托管的名称。

name: "My Test Escrow"

uri

这是元数据池的基础uri。这需要是一个静态uri,其中还包含顺序目标的元数据json文件。即:

https://shdw-drive.genesysgo.net/.../0.json
https://shdw-drive.genesysgo.net/.../1.json
https://shdw-drive.genesysgo.net/.../2.json
uri: "https://shdw-drive.genesysgo.net/<bucket-id>/"

token

用于MPL Hybrid 404项目的代币铸造地址。

token: publicKey("11111111111111111111111111111111")

feeLocation

将接收交换费用的钱包地址。

feeLocation: publicKey("11111111111111111111111111111111")

feeAta

将接收代币的钱包的代币账户。

feeAta: findAssociatedTokenPda(umi, {
mint: publicKey("111111111111111111111111111111111"),
owner: publicKey("22222222222222222222222222222222"),
});

min和max

min和max表示元数据池中可用的最小和最大索引。

最低索引: 0.json
...
最高索引: 4999.json

这将转换为min和max参数。

min: 0,
max: 4999

费用

可以更新3个单独的费用。

// 将NFT交换为代币时收到的代币数量。
// 此值以lamports为单位,您需要考虑代币的
// 小数位数。如果代币有5位小数
// 并且您希望收取1个完整代币,则feeAmount为`100000`
amount: 100000,
// 将代币交换为NFT时支付的费用金额。
// 此值以lamports为单位,您需要考虑代币的小数位数。
// 如果代币有5位小数并且您希望收取1个完整代币,
// 则feeAmount为`100000`
feeAmount: 100000,
// 从代币交换为NFT时支付的可选费用。
// 这以lamports为单位,因此您可以使用`sol()`来计算
// lamports。
solFeeAmount: sol(0.5).basisPoints,

path

path参数启用或禁用mpl-hybrid程序上的元数据重掷功能。

// 交换时重掷元数据 0 = true, 1 = false
path: 0,