跳转至主要内容

钱包整合

了解如何将您的web3钱包或其他dApp与Milkomeda整合起来

开始构建分散财务的未来

下面的文章有助于了解milkomeda-js-sdk包,允许开发人员在Milkomeda侧链上整合web3钱包。

整合钱包与 Milkomeda 协议

1. 1. 下载 milkomeda-js-sdk 包

您可以在这里找到 milkomeda-js-sdk 包。 这是一个承载Milkomeda部署的静态配置的包。

info

这对于避免每个项目整合Milkomeda硬编码静态配置是很有用的。

2. 2. 安装 milkomeda-js-sdk 软件包

使用 npm 安装包:

npm i @dcspark/milkomeda-js-sdk

使用 yarn 安装包:

yarn add @dcspark/milkomeda-js-sdk

3. 3. 将该软件包导入你的项目中

使用 import:

import { generateMilkomedaMetadata, milkomedaNetworks } from "@dcspark/milkomeda-js-sdk";

使用 require:

const milkomedaJsSdk = require("@dcspark/milkomeda-js-sdk");

了解更多关于 milkomeda-js-sdk 软件包

Milkomeda-js-sdk是一个承载Milkomeda部署的静态配置的包。 这对于避免每个项目整合Milkomeda硬编码静态配置是很有用的。

参数说明
isMainnetboolean告知特定的网络配置是否是主网(如Cardano)
mainchain由主链信息组成,如协议和它的id
sidechain由侧链信息组成,如协议名称(如MilkomedaC1)和侧链id
backendEndpoint提供了服务的URL值,它暴露了关于侧链特定版本的额外信息
protocolMagic介绍了与适当的Milkomeda网络兼容的协议魔法(protocol magic)
timeIntervalForAddressMs以毫秒为单位定义的可能的地址变化的时间间隔
sidechainContract侧链合约的地址,任何客户端都可以连接到该地址

暴露有效载荷的例子

下面你可以找到一个暴露的Milkomeda网络(devnet)的有效载荷的例子

{
[NETWORK_NAME]: {
isMainnet: false,
name: NETWORK_NAME,
mainchain: {
protocol: ProtocolNames.cardanoProtocol,
id: toChainId({
networkId: registry.Testnet.NetworkId,
networkMagic: registry.Testnet.NetworkMagic
})
},
sidechain: { protocol: ProtocolNames.evmProtocol, id: 200101 },
backendEndpoint: BackendEndpoints.devnet,
protocolMagic: ProtocolMagic.devnet,
timeIntervalForAddressMs: 86400000,
sidechainContract: "0x000000000000000000000000000000000000BbBB"
},
}

此外,该包还引入了辅助类型和一个有助于为Milkomeda交易创建适当元数据的函数。

# Milkomeda metadata generator
generateMilkomedaMetadata(
address, # address is EVM address
protocolMagic # protocol magic for specific network
)

交易的元数据由两个参数组成 - 协议魔法& EVM地址 Testnet交易的示范性元数据如下。 Testnet交易的示范性元数据如下。

{
87: "devnet.cardano-evm.c1"
88: "0xEVM_TESTNET_ADDRESS"
}

为交易生成Milkomeda元数据的例子

generateMilkomedaMetadata("0x000…", milkomedaNetworks["c1-devnet"].protocolMagic);
info

记住用你的EVM地址替换「0x000...」

Milkomeda REST API

除了Milkomeda-js-sdk包,我们已经引入了一个REST API,可以获取更多关于Milkomeda侧链本身的数据。

info

在这个例子中,为了更好地解释,我们使用了Flint钱包的整合案例

REST API的基本网址作为backendEndpoint参数使用milkomeda-js-sdk。 你可以用下面的代码把它从包里取出来:

milkomedaNetworks["c1-devnet"].backendEndpoint

当你的代码中包含了基本的URL,你可以使用以下的一个端点:

使用Milkomeda REST API stargate 端点,你可以获得devnet和mainnet的相同属性的有效载荷。 在下方你可以看到devnet的一个有效载荷的例子:

{
"current_address": "addr_test1wz6lvjg3anml96vl22mls5vae3x2cgaqwy2ewp5gj3fcxdcw652wz",
"ttl_expiry": 1646438400000,
"ada": {
"minLovelace": "3000000",
"fromADAFeeLovelace": "500000",
"toADAFeeGWei": "500000"
},
"assets": [
{
"idCardano": "b4004c2f3edfdd2016d0fead9b927064f345534b000000000000000000000000",
"idMilkomeda": "9c223e1dAf6184672E982d9AA560D9FD1d09A01B",
"minCNTInt": "1",
"minGWei": "1000000000"
}

]
}

如果您对本文和Milkomeda整合有任何其他问题,请访问https://www.milkomeda.com/support或访问我们的discord服务器,请不要犹豫,与我们联系。