钱包整合
了解如何将您的web3钱包或其他dApp与Milkomeda整合起来
开始构建分散财务的未来
下面的文章有助于了解milkomeda-js-sdk包,允许开发人员在Milkomeda侧链上整合web3钱包。
整合钱包与 Milkomeda 协议
1. 1. 下载 milkomeda-js-sdk 包
您可以在这里找到 milkomeda-js-sdk 包。 这是一个承载Milkomeda部署的静态配置的包。
这对于避免每个项目整合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硬编码静态配置是很有用的。
参数 | 说明 |
---|---|
isMainnet | boolean告知特定的网络配置是否是主网(如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);
记住用你的EVM地址替换「0x000...」
Milkomeda REST API
除了Milkomeda-js-sdk包,我们已经引入了一个REST API,可以获取更多关于Milkomeda侧链本身的数据。
在这个例子中,为了更好地解释,我们使用了Flint钱包的整合案例
REST API的基本网址作为backendEndpoint参数使用milkomeda-js-sdk。 你可以用下面的代码把它从包里取出来:
- Devnet
- Mainnet
milkomedaNetworks["c1-devnet"].backendEndpoint
当你的代码中包含了基本的URL,你可以使用以下的一个端点:
- Stargate address (V1/stargate)
milkomedaNetworks["c1-mainnet"].backendEndpoint
结果: https://allowlist-mainnet.flint-wallet.com
如果您想将您的钱包与Milkomeda主网整合,您需要使用另外两个终端,以获得网络上允许的EVM地址。 The purpose of this microservice is to provide a list of addresses that are allowed to use the bridge in Milkomeda.
这个[microservice] (https://github.com/dcSpark/allowedlist-service/)的目的是提供一个允许使用Milkomeda桥的地址列表。
当你的代码中包含基本的URL时,你可以使用以下的一个端点:
- Stargate address (/V1/stargate)
- fullAllowedList (/v1/fullAllowedList)
返回主网中允许的EVM地址数组
{
"allowList": ["0x...", "0x..."]
}
- isAddress=0x (/v1/isAddressAllowed?address=0x)
返回一个boolean值,告知所提供的地址是否被允许进入受限的主网。
使用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"
}
…
]
}