@xlink-network/xlink-sdk
Version:
2,349 lines (2,337 loc) • 65 kB
JavaScript
"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/xlinkSdkUtils/timelockFromEVM.ts
var timelockFromEVM_exports = {};
__export(timelockFromEVM_exports, {
claimTimeLockedAssetsFromEVM: () => claimTimeLockedAssetsFromEVM,
getTimeLockedAssetsFromEVM: () => getTimeLockedAssetsFromEVM
});
module.exports = __toCommonJS(timelockFromEVM_exports);
var import_viem3 = require("viem");
var import_actions2 = require("viem/actions");
// src/evmUtils/contractAbi/bridgeEndpoint.ts
var BridgeEndpointAbi = [
{
inputs: [
{
internalType: "address",
name: "_owner",
type: "address"
},
{
internalType: "string",
name: "name",
type: "string"
},
{
internalType: "string",
name: "version",
type: "string"
},
{
internalType: "address",
name: "_registry",
type: "address"
},
{
internalType: "address",
name: "_pegInAddress",
type: "address"
},
{
internalType: "address",
name: "_timeLock",
type: "address"
}
],
stateMutability: "nonpayable",
type: "constructor"
},
{
inputs: [],
name: "InvalidShortString",
type: "error"
},
{
inputs: [
{
internalType: "string",
name: "str",
type: "string"
}
],
name: "StringTooLong",
type: "error"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address[]",
name: "_allowed",
type: "address[]"
}
],
name: "AddAllowlistEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bool",
name: "allowlist",
type: "bool"
}
],
name: "AllowlistEvent",
type: "event"
},
{
anonymous: false,
inputs: [],
name: "EIP712DomainChanged",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "orderHash",
type: "bytes32"
}
],
name: "FinalizeUnwrapEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "previousOwner",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "newOwner",
type: "address"
}
],
name: "OwnershipTransferred",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}
],
name: "Paused",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address[]",
name: "_removed",
type: "address[]"
}
],
name: "RemoveAllowlistEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "from",
type: "address"
},
{
indexed: false,
internalType: "bytes",
name: "payload",
type: "bytes"
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256"
}
],
name: "SendMessageEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "from",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "token",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "fee",
type: "uint256"
},
{
indexed: false,
internalType: "bytes",
name: "payload",
type: "bytes"
}
],
name: "SendMessageWithTokenEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "timeLock",
type: "address"
}
],
name: "SetTimeLockEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "token",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "timeLockThreshold",
type: "uint256"
}
],
name: "SetTimeLockThresholdByTokenEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256",
name: "timeLockThreshold",
type: "uint256"
}
],
name: "SetTimeLockThresholdEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes32",
name: "orderHash",
type: "bytes32"
},
{
indexed: false,
internalType: "bytes32",
name: "salt",
type: "bytes32"
},
{
indexed: true,
internalType: "address",
name: "recipient",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "token",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
}
],
name: "TransferToUnwrapEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}
],
name: "Unpaused",
type: "event"
},
{
inputs: [
{
internalType: "address[]",
name: "_allowed",
type: "address[]"
}
],
name: "addAllowlist",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "allowlist",
outputs: [
{
internalType: "bool",
name: "",
type: "bool"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
name: "allowlisted",
outputs: [
{
internalType: "bool",
name: "",
type: "bool"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "domainSeparatorV4",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "eip712Domain",
outputs: [
{
internalType: "bytes1",
name: "fields",
type: "bytes1"
},
{
internalType: "string",
name: "name",
type: "string"
},
{
internalType: "string",
name: "version",
type: "string"
},
{
internalType: "uint256",
name: "chainId",
type: "uint256"
},
{
internalType: "address",
name: "verifyingContract",
type: "address"
},
{
internalType: "bytes32",
name: "salt",
type: "bytes32"
},
{
internalType: "uint256[]",
name: "extensions",
type: "uint256[]"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "bytes32[]",
name: "orderHash",
type: "bytes32[]"
}
],
name: "finalizeUnwrap",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "bytes32",
name: "structHash",
type: "bytes32"
}
],
name: "hashTypedDataV4",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "offAllowlist",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "onAllowlist",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "owner",
outputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "paused",
outputs: [
{
internalType: "bool",
name: "",
type: "bool"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "pegInAddress",
outputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "registry",
outputs: [
{
internalType: "contract BridgeRegistry",
name: "",
type: "address"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address[]",
name: "_removed",
type: "address[]"
}
],
name: "removeAllowlist",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "bytes",
name: "payload",
type: "bytes"
}
],
name: "sendMessage",
outputs: [],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address"
},
{
internalType: "uint256",
name: "amount",
type: "uint256"
},
{
internalType: "bytes",
name: "payload",
type: "bytes"
}
],
name: "sendMessageWithToken",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_timeLock",
type: "address"
}
],
name: "setTimeLock",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "_timeLockThreshold",
type: "uint256"
}
],
name: "setTimeLockThreshold",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address"
},
{
internalType: "uint256",
name: "_timeLockThreshold",
type: "uint256"
}
],
name: "setTimeLockThresholdByToken",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "timeLock",
outputs: [
{
internalType: "contract ITimeLock",
name: "",
type: "address"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "timeLockThreshold",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
name: "timeLockThresholdByToken",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "newOwner",
type: "address"
}
],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "token",
type: "address"
},
{
internalType: "address",
name: "recipient",
type: "address"
},
{
internalType: "uint256",
name: "amount",
type: "uint256"
},
{
internalType: "bytes32",
name: "salt",
type: "bytes32"
},
{
components: [
{
internalType: "bytes32",
name: "orderHash",
type: "bytes32"
},
{
internalType: "address",
name: "signer",
type: "address"
},
{
internalType: "bytes",
name: "signature",
type: "bytes"
}
],
internalType: "struct BridgeEndpoint.SignaturePackage[]",
name: "proofs",
type: "tuple[]"
}
],
name: "transferToUnwrap",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32"
}
],
name: "unwrapSent",
outputs: [
{
internalType: "address",
name: "recipient",
type: "address"
},
{
internalType: "address",
name: "token",
type: "address"
},
{
internalType: "uint256",
name: "amount",
type: "uint256"
},
{
internalType: "bool",
name: "sent",
type: "bool"
}
],
stateMutability: "view",
type: "function"
}
];
// src/evmUtils/contractAbi/bridgeTimeLock.ts
var BridgeTimeLockAbi = [
{
inputs: [
{
internalType: "address",
name: "_owner",
type: "address"
},
{
internalType: "uint48",
name: "_releaseDelay",
type: "uint48"
},
{
internalType: "address",
name: "_restoreAddress",
type: "address"
}
],
stateMutability: "nonpayable",
type: "constructor"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "agreementId",
type: "uint256"
},
{
indexed: true,
internalType: "address",
name: "beneficiary",
type: "address"
},
{
indexed: false,
internalType: "enum TimeLockDataTypes.AgreementContext",
name: "agreementContext",
type: "uint8"
},
{
indexed: true,
internalType: "address",
name: "asset",
type: "address"
},
{
indexed: false,
internalType: "bytes",
name: "payload",
type: "bytes"
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
},
{
indexed: false,
internalType: "uint48",
name: "releaseTime",
type: "uint48"
}
],
name: "AgreementClaimedEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "agreementId",
type: "uint256"
},
{
indexed: true,
internalType: "address",
name: "beneficiary",
type: "address"
},
{
indexed: false,
internalType: "enum TimeLockDataTypes.AgreementContext",
name: "agreementContext",
type: "uint8"
},
{
indexed: true,
internalType: "address",
name: "asset",
type: "address"
},
{
indexed: false,
internalType: "bytes",
name: "payload",
type: "bytes"
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
},
{
indexed: false,
internalType: "uint48",
name: "releaseTime",
type: "uint48"
}
],
name: "AgreementCreatedEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "agreementId",
type: "uint256"
},
{
indexed: false,
internalType: "bool",
name: "value",
type: "bool"
}
],
name: "AgreementFrozenEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "agreementId",
type: "uint256"
},
{
indexed: true,
internalType: "address",
name: "beneficiary",
type: "address"
},
{
indexed: false,
internalType: "enum TimeLockDataTypes.AgreementContext",
name: "agreementContext",
type: "uint8"
},
{
indexed: true,
internalType: "address",
name: "asset",
type: "address"
},
{
indexed: false,
internalType: "bytes",
name: "payload",
type: "bytes"
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
},
{
indexed: false,
internalType: "uint48",
name: "releaseTime",
type: "uint48"
}
],
name: "AgreementFulfilledEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "agreementId",
type: "uint256"
},
{
indexed: true,
internalType: "address",
name: "beneficiary",
type: "address"
},
{
indexed: false,
internalType: "enum TimeLockDataTypes.AgreementContext",
name: "agreementContext",
type: "uint8"
},
{
indexed: true,
internalType: "address",
name: "asset",
type: "address"
},
{
indexed: false,
internalType: "bytes",
name: "payload",
type: "bytes"
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
},
{
indexed: false,
internalType: "uint48",
name: "releaseTime",
type: "uint48"
}
],
name: "AgreementRestoredEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "uint256",
name: "agreementId",
type: "uint256"
},
{
indexed: true,
internalType: "address",
name: "beneficiary",
type: "address"
},
{
indexed: false,
internalType: "enum TimeLockDataTypes.AgreementContext",
name: "agreementContext",
type: "uint8"
},
{
indexed: true,
internalType: "address",
name: "asset",
type: "address"
},
{
indexed: false,
internalType: "bytes",
name: "payload",
type: "bytes"
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256"
},
{
indexed: false,
internalType: "uint48",
name: "releaseTime",
type: "uint48"
}
],
name: "AgreementUpdatedEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bool",
name: "value",
type: "bool"
}
],
name: "FreezeAll",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "previousOwner",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "newOwner",
type: "address"
}
],
name: "OwnershipTransferred",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}
],
name: "Paused",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "role",
type: "bytes32"
},
{
indexed: true,
internalType: "bytes32",
name: "previousAdminRole",
type: "bytes32"
},
{
indexed: true,
internalType: "bytes32",
name: "newAdminRole",
type: "bytes32"
}
],
name: "RoleAdminChanged",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "role",
type: "bytes32"
},
{
indexed: true,
internalType: "address",
name: "account",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "sender",
type: "address"
}
],
name: "RoleGranted",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "role",
type: "bytes32"
},
{
indexed: true,
internalType: "address",
name: "account",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "sender",
type: "address"
}
],
name: "RoleRevoked",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "enum TimeLockDataTypes.AgreementContext",
name: "agreementContext",
type: "uint8"
},
{
indexed: false,
internalType: "uint48",
name: "releaseDelay",
type: "uint48"
}
],
name: "SetReleaseDelayEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "restoreAddress",
type: "address"
}
],
name: "SetRestoreAddressEvent",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "account",
type: "address"
}
],
name: "Unpaused",
type: "event"
},
{
inputs: [],
name: "DEFAULT_ADMIN_ROLE",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "EMERGENCY_ADMIN_ROLE",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "agreementCount",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
name: "agreements",
outputs: [
{
internalType: "uint256",
name: "amount",
type: "uint256"
},
{
internalType: "enum TimeLockDataTypes.AgreementContext",
name: "agreementContext",
type: "uint8"
},
{
internalType: "bool",
name: "isFrozen",
type: "bool"
},
{
internalType: "address",
name: "asset",
type: "address"
},
{
internalType: "address",
name: "beneficiary",
type: "address"
},
{
internalType: "bytes",
name: "payload",
type: "bytes"
},
{
internalType: "uint48",
name: "releaseTime",
type: "uint48"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "",
type: "address"
},
{
internalType: "enum TimeLockDataTypes.AgreementContext",
name: "",
type: "uint8"
},
{
internalType: "address",
name: "",
type: "address"
},
{
internalType: "bytes",
name: "",
type: "bytes"
}
],
name: "agreementsByUser",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "uint256[]",
name: "agreementIds",
type: "uint256[]"
}
],
name: "claim",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "asset",
type: "address"
},
{
internalType: "uint256",
name: "amount",
type: "uint256"
},
{
internalType: "address",
name: "beneficiary",
type: "address"
},
{
internalType: "bytes",
name: "payload",
type: "bytes"
},
{
internalType: "enum TimeLockDataTypes.AgreementContext",
name: "agreementContext",
type: "uint8"
}
],
name: "createAgreement",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "agreementId",
type: "uint256"
}
],
name: "freezeAgreement",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "uint256[]",
name: "agreementIds",
type: "uint256[]"
}
],
name: "freezeAgreements",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "freezeAllAgreements",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "uint256[]",
name: "agreementIds",
type: "uint256[]"
}
],
name: "fulfill",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32"
}
],
name: "getRoleAdmin",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32"
},
{
internalType: "address",
name: "account",
type: "address"
}
],
name: "grantRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32"
},
{
internalType: "address",
name: "account",
type: "address"
}
],
name: "hasRole",
outputs: [
{
internalType: "bool",
name: "",
type: "bool"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "owner",
outputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "pause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "paused",
outputs: [
{
internalType: "bool",
name: "",
type: "bool"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "releaseDelay",
outputs: [
{
internalType: "uint48",
name: "",
type: "uint48"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "enum TimeLockDataTypes.AgreementContext",
name: "",
type: "uint8"
}
],
name: "releaseDelayPerContext",
outputs: [
{
internalType: "uint48",
name: "",
type: "uint48"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32"
},
{
internalType: "address",
name: "account",
type: "address"
}
],
name: "renounceRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "uint256[]",
name: "agreementIds",
type: "uint256[]"
}
],
name: "restore",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "restoreAddress",
outputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "bytes32",
name: "role",
type: "bytes32"
},
{
internalType: "address",
name: "account",
type: "address"
}
],
name: "revokeRole",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "enum TimeLockDataTypes.AgreementContext",
name: "agreementContext",
type: "uint8"
},
{
internalType: "uint48",
name: "_releaseDelay",
type: "uint48"
}
],
name: "setReleaseDelay",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_restoreAddress",
type: "address"
}
],
name: "setRestoreAddress",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "bytes4",
name: "interfaceId",
type: "bytes4"
}
],
name: "supportsInterface",
outputs: [
{
internalType: "bool",
name: "",
type: "bool"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "newOwner",
type: "address"
}
],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "unfreezeAllAgreements",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [],
name: "unpause",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}
];
// src/evmUtils/xlinkContractHelpers.ts
var import_viem2 = require("viem");
var import_actions = require("viem/actions");
// src/utils/BigNumber.ts
var import_big = require("big.js");
// src/utils/arrayHelpers.ts
function last(ary) {
return ary[ary.length - 1];
}
var _concat = [].concat;
var _reduce = [].reduce;
function reduce(fn, initialValue, inputArray) {
return _reduce.call(inputArray, fn, initialValue);
}
// src/utils/BigNumber.ts
import_big.Big.PE = 21;
import_big.Big.NE = -21;
var toBig = (num) => {
if (num instanceof import_big.Big) {
return num;
}
return new import_big.Big(num);
};
var fromBig = (num) => {
return num;
};
var BigNumber;
((BigNumber2) => {
({ roundUp: BigNumber2.roundUp, roundDown: BigNumber2.roundDown, roundHalfUp: BigNumber2.roundHalfUp, roundHalfEven: BigNumber2.roundHalfEven } = import_big.Big);
let defaultRoundingMode = BigNumber2.roundHalfUp;
BigNumber2.setDefaultRoundingMode = (roundingMode) => {
defaultRoundingMode = roundingMode;
};
BigNumber2.isBigNumber = (num) => {
return num instanceof import_big.Big;
};
BigNumber2.safeFrom = (value) => {
try {
return (0, BigNumber2.from)(value);
} catch (e) {
return void 0;
}
};
BigNumber2.from = (value) => {
return fromBig(toBig(value));
};
BigNumber2.toString = (value) => {
return toBig(value).toString();
};
BigNumber2.toNumber = (value) => {
return toBig(value).toNumber();
};
BigNumber2.toBigInt = curry2(
(options, value) => {
return BigInt(
(0, BigNumber2.toFixed)(
{
precision: 0,
roundingMode: options.roundingMode ?? defaultRoundingMode
},
toBig(value)
)
);
}
);
BigNumber2.toFixed = curry2(
(options, value) => {
return toBig(value).toFixed(
options.precision,
options.roundingMode ?? defaultRoundingMode
);
}
);
BigNumber2.toExponential = curry2(
(options, value) => {
return toBig(value).toExponential(
options.precision,
options.roundingMode ?? defaultRoundingMode
);
}
);
BigNumber2.isNegative = (value) => {
return toBig(value).lt(0);
};
BigNumber2.isGtZero = (value) => {
return toBig(value).gt(0);
};
BigNumber2.isZero = (value) => {
return toBig(value).eq(0);
};
BigNumber2.isEq = curry2(
(value, a) => {
return toBig(value).eq(toBig(a));
}
);
BigNumber2.isGt = curry2(
(value, a) => {
return toBig(value).gt(toBig(a));
}
);
BigNumber2.isGte = curry2(
(value, a) => {
return toBig(value).gte(toBig(a));
}
);
BigNumber2.isLt = curry2(
(value, a) => {
return toBig(value).lt(toBig(a));
}
);
BigNumber2.isLte = curry2(
(value, a) => {
return toBig(value).lte(toBig(a));
}
);
BigNumber2.setPrecision = curry2(
(options, value) => {
return fromBig(
toBig(
toBig(value).toPrecision(
options.precision,
options.roundingMode ?? defaultRoundingMode
)
)
);
}
);
BigNumber2.getPrecision = (value) => {
return toBig(value).c.length - (toBig(value).e + 1);
};
BigNumber2.getIntegerLength = (value) => {
return toBig(value).e + 1;
};
BigNumber2.leftMoveDecimals = curry2(
(distance, value) => (0, BigNumber2.moveDecimals)({ distance }, value)
);
BigNumber2.rightMoveDecimals = curry2(
(distance, value) => (0, BigNumber2.moveDecimals)({ distance: -distance }, value)
);
BigNumber2.moveDecimals = curry2(
(options, value) => {
if (options.distance > 0) {
return fromBig(toBig(value).div(10 ** options.distance));
}
if (options.distance < 0) {
return fromBig(toBig(value).mul(10 ** -options.distance));
}
return (0, BigNumber2.from)(value);
}
);
BigNumber2.getDecimalPart = curry2(
(options, value) => {
const formatted = (0, BigNumber2.toFixed)(
{
precision: Math.min((0, BigNumber2.getPrecision)(value), options.precision),
roundingMode: BigNumber2.roundDown
},
value
);
const [, decimals] = formatted.split(".");
if (decimals == null) return void 0;
return decimals;
}
);
BigNumber2.abs = (value) => {
return fromBig(toBig(value).abs());
};
BigNumber2.neg = (value) => {
return fromBig(toBig(value).neg());
};
BigNumber2.sqrt = (value) => {
return fromBig(toBig(value).sqrt());
};
BigNumber2.add = curry2(
(value, a) => {
return fromBig(toBig(value).add(toBig(a)));
}
);
BigNumber2.minus = curry2(
(value, a) => {
return fromBig(toBig(value).minus(toBig(a)));
}
);
BigNumber2.mul = curry2(
(value, a) => {
return fromBig(toBig(value).mul(toBig(a)));
}
);
BigNumber2.cumulativeMul = curry2(
(value, as) => {
return reduce(
(acc, currentRate) => [
...acc,
BigNumber2.mul(last(acc), currentRate)
],
[(0, BigNumber2.from)(value)],
as
);
}
);
BigNumber2.div = curry2(
(value, a) => {
return fromBig(toBig(value).div(toBig(a)));
}
);
BigNumber2.pow = curry2((value, a) => {
return fromBig(toBig(value).pow(a));
});
BigNumber2.round = curry2(
(options, value) => {
return fromBig(
toBig(value).round(
options.precision,
options.roundingMode ?? defaultRoundingMode
)
);
}
);
BigNumber2.toPrecision = curry2(
(options, value) => {
return toBig(value).toPrecision(
options.precision,
options.roundingMode ?? defaultRoundingMode
);
}
);
BigNumber2.ascend = curry2(
(a, b) => (0, BigNumber2.isLt)(a, b) ? -1 : (0, BigNumber2.isGt)(a, b) ? 1 : 0
);
BigNumber2.descend = curry2(
(a, b) => (0, BigNumber2.isLt)(a, b) ? 1 : (0, BigNumber2.isGt)(a, b) ? -1 : 0
);
BigNumber2.sort = (comparator, numbers) => {
const _numbers = numbers.map((a) => fromBig(toBig(a)));
_numbers.sort(comparator);
return _numbers;
};
BigNumber2.max = (numbers) => {
return (0, BigNumber2.from)((0, BigNumber2.sort)(BigNumber2.descend, numbers)[0]);
};
BigNumber2.min = (numbers) => {
return (0, BigNumber2.from)((0, BigNumber2.sort)(BigNumber2.ascend, numbers)[0]);
};
BigNumber2.clamp = (range, n) => {
const [min2, max2] = range;
if ((0, BigNumber2.isGte)(n, max2)) return max2;
if ((0, BigNumber2.isLte)(n, min2)) return min2;
return n;
};
BigNumber2.sum = (numbers) => {
return numbers.map((n) => fromBig(toBig(n))).reduce((acc, n) => (0, BigNumber2.add)(acc, n), BigNumber2.ZERO);
};
BigNumber2.ZERO = BigNumber2.from(0);
BigNumber2.ONE = BigNumber2.from(1);
})(BigNumber || (BigNumber = {}));
function curry2(fn) {
return function(a, b) {
if (arguments.length > 1) {
return fn(a, b);
}
return (b2) => fn(a, b2);
};
}
// src/utils/typeHelpers.ts
function isNotNull(input) {
return input != null;
}
function checkNever(_x) {
return;
}
function assertExclude(asserting, excluding) {
return;
}
((assertExclude2) => {
assertExclude2.i = () => null;
})(assertExclude || (assertExclude = {}));
// src/utils/types/knownIds.ts
var chainId = (value) => value;
var tokenId = (value) => value;
var KnownTokenId;
((KnownTokenId3) => {
function isKnownToken(value) {
return isBitcoinToken(value) || isBRC20Token(value) || isRunesToken(value) || isEVMToken(value) || isStacksToken(value);
}
KnownTokenId3.isKnownToken = isKnownToken;
let Bitcoin;
((Bitcoin2) => {
Bitcoin2.BTC = tokenId("btc-btc");
})(Bitcoin = KnownTokenId3.Bitcoin || (KnownTokenId3.Bitcoin = {}));
function isBitcoinToken(value) {
return _allKnownBitcoinTokens.includes(value);
}
KnownTokenId3.isBitcoinToken = isBitcoinToken;
function isBRC20Token(value) {
return value.startsWith("brc20-");
}
KnownTokenId3.isBRC20Token = isBRC20Token;
function isRunesToken(value) {
return value.startsWith("runes-");
}
KnownTokenId3.isRunesToken = isRunesToken;
let EVM;
((EVM2) => {
EVM2.sUSDT = tokenId("evm-susdt");
EVM2.USDT = tokenId("evm-usdt");
EVM2.USDC = tokenId("evm-usdc");
EVM2.aBTC = tokenId("evm-abtc");
EVM2.WBTC = tokenId("evm-wbtc");
EVM2.BTCB = tokenId("evm-btcb");
EVM2.cbBTC = tokenId("evm-cbbtc");
EVM2.LUNR = tokenId("evm-lunr");
EVM2.ALEX = tokenId("evm-alex");
EVM2.SKO = tokenId("evm-sko");
EVM2.vLiSTX = tokenId("evm-vlistx");
EVM2.vLiALEX = tokenId("evm-vlialex");
EVM2.uBTC = tokenId("evm-ubtc");
EVM2.wuBTC = tokenId("evm-wubtc");
EVM2.DB20 = tokenId("evm-db20");
EVM2.DOG = tokenId("evm-dog");
})(EVM = KnownTokenId3.EVM || (KnownTokenId3.EVM = {}));
function isEVMToken(value) {
return _allKnownEVMTokens.includes(value);
}
KnownTokenId3.isEVMToken = isEVMToken;
let Stacks;
((Stacks2) => {
Stacks2.sUSDT = tokenId("stx-susdt");
Stacks2.sLUNR = tokenId("stx-slunr");
Stacks2.aBTC = tokenId("stx-abtc");
Stacks2.ALEX = tokenId("stx-alex");
Stacks2.sSKO = tokenId("stx-ssko");
Stacks2.vLiSTX = tokenId("stx-vlistx");
Stacks2.vLiALEX = tokenId("stx-vlialex");
Stacks2.uBTC = tokenId("stx-ubtc");
Stacks2.DB20 = tokenId("stx-db20");
Stacks2.DOG = tokenId("stx-dog");
})(Stacks = KnownTokenId3.Stacks || (KnownTokenId3.Stacks = {}));
function isStacksToken(value) {
return _allKnownStacksTokens.includes(value);
}
KnownTokenId3.isStacksToken = isStacksToken;
})(KnownTokenId || (KnownTokenId = {}));
var _allKnownBitcoinTokens = Object.values(KnownTokenId.Bitcoin);
var _allKnownEVMTokens = Object.values(KnownTokenId.EVM);
var _allKnownStacksTokens = Object.values(KnownTokenId.Stacks);
var KnownChainId;
((KnownChainId3) => {
function isKnownChain(value) {
return isBitcoinChain(value) || isBRC20Chain(value) || isRunesChain(value) || isEVMChain(value) || isStacksChain(value);
}
KnownChainId3.isKnownChain = isKnownChain;
let Bitcoin;
((Bitcoin2) => {
Bitcoin2.Mainnet = chainId("bitcoin-mainnet");
Bitcoin2.Testnet = chainId("bitcoin-testnet");
})(Bitcoin = KnownChainId3.Bitcoin || (KnownChainId3.Bitcoin = {}));
function isBitcoinChain(value) {
return _allKnownBitcoinChains.includes(value);
}
KnownChainId3.isBitcoinChain = isBitcoinChain;
let Runes;
((Runes2) => {
Runes2.Mainnet = chainId("runes-mainnet");
Runes2.Testnet = chainId("runes-testnet");
})(Runes = KnownChainId3.Runes || (KnownChainId3.Runes = {}));
function isRunesChain(value) {
return _allKnownRunesChains.includes(value);
}
KnownChainId3.isRunesChain = isRunesChain;
let BRC20;
((BRC202) => {
BRC202.Mainnet = chainId("brc20-mainnet");
BRC202.Testnet = chainId("brc20-testnet");
})(BRC20 = KnownChainId3.BRC20 || (KnownChainId3.BRC20 = {}));
function isBRC20Chain(value) {
return _allKnownBRC20Chains.includes(value);
}
KnownChainId3.isBRC20Chain = isBRC20Chain;
let EVM;
((EVM2) => {
EVM2.Ethereum = chainId("evm-ethereum");
EVM2.Sepolia = chainId("evm-sepolia");
EVM2.BSC = chainId("evm-bsc");
EVM2.BSCTestnet = chainId("evm-bsctestnet");
EVM2.CoreDAO = chainId("evm-coredao");
EVM2.CoreDAOTestnet = chainId("evm-coredao-testnet");
EVM2.Bsquared = chainId("evm-bsquared");
EVM2.BOB = chainId("evm-bob");
EVM2.Bitlayer = chainId("evm-bitlayer");
EVM2.Lorenzo = chainId("evm-lorenzo");
EVM2.Merlin = chainId("evm-merlin");
EVM2.AILayer = chainId("evm-ailayer");
EVM2.Mode = chainId("evm-mode");
EVM2.XLayer = chainId("evm-xlayer");
EVM2.Arbitrum = chainId("evm-arbitrum");
EVM2.Aurora = chainId("evm-aurora");
EVM2.BlifeTestnet = chainId("evm-blife-testnet");
EVM2.BitboyTestnet = chainId("evm-bitboy-testnet");
EVM2.Manta = chainId("evm-manta");
EVM2.Linea = chainId("evm-linea");
EVM2.Base = chainId("evm-base");
EVM2.BeraTestnet = chainId("evm-bera-testnet");
})(EVM = KnownChainId3.EVM || (KnownChainId3.EVM = {}));
function isEVMMainnetChain(value) {
return _allKnownEVMMainnetChains.includes(value);
}
KnownChainId3.isEVMMainnetChain = isEVMMainnetChain;
function isEVMTestnetChain(value) {
return _allKnownEVMTestnetChains.includes(value);
}
KnownChainId3.isEVMTestnetChain = isEVMTestnetChain;
function isEVMChain(value) {
return _allKnownEVMChains.includes(value);
}
KnownChainId3.isEVMChain = isEVMChain;
let Stacks;
((Stacks2) => {
Stacks2.Mainnet = chainId("stacks-mainnet");
Stacks2.Testnet = chainId("stacks-testnet");
})(Stacks = KnownChainId3.Stacks || (KnownChainId3.Stacks = {}));
function isStacksChain(value) {
return _allKnownStacksChains.includes(value);
}
KnownChainId3.isStacksChain = isStacksChain;
})(KnownChainId || (KnownChainId = {}));
var _allKnownBitcoinChains = Object.values(KnownChainId.Bitcoin);
var _allKnownRunesChains = Object.values(KnownChainId.Runes);
var _allKnownBRC20Chains = Object.values(KnownChainId.BRC20);
var _allKnownEVMChains = Object.values(KnownChainId.EVM);
var _allKnownStacksChains = Object.values(KnownChainId.Stacks);
var _allKnownEVMMainnetChains = [
KnownChainId.EVM.Ethereum,
KnownChainId.EVM.BSC,
KnownChainId.EVM.CoreDAO,
KnownChainId.EVM.Bsquared,
KnownChainId.EVM.BOB,
KnownChainId.EVM.Bitlayer,
KnownChainId.EVM.Lorenzo,
KnownChainId.EVM.Merlin,
KnownChainId.EVM.AILayer,
KnownChainId.EVM.Mode,
KnownChainId.EVM.XLayer,
KnownChainId.EVM.Arbitrum,
KnownChainId.EVM.Aurora,
KnownChainId.EVM.Manta,
KnownChainId.EVM.Linea,
KnownChainId.EVM.Base
];
var _allKnownEVMTestnetChains = [
KnownChainId.EVM.Sepolia,
KnownChainId.EVM.BSCTestnet,
KnownChainId.EVM.CoreDAOTestnet,
KnownChainId.EVM.BlifeTestnet,
KnownChainId.EVM.BitboyTestnet,
KnownChainId.EVM.BeraTestnet
];
var _allNoLongerSupportedEVMChains = [
KnownChainId.EVM.Lorenzo
];
var _restEVMChain = null;
checkNever(_restEVMChain);
// src/evmUtils/contractAbi/bridgeConfig.ts
var BridgeConfigAbi = [
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "previousOwner",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "newOwner",
type: "address"
}
],
name: "OwnershipTransferred",
type: "event"
},
{
inputs: [
{
internalType: "string",
name: "",
type: "string"
}
],
name: "config",
outputs: [
{
internalType: "string",
name: "",
type: "string"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "string[]",
name: "keys",
type: "string[]"
}
],
name: "getConfigs",
outputs: [
{
internalType: "string[]",
name: "",
type: "string[]"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "owner",
outputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "string[]",
name: "keys",
type: "string[]"
},
{
internalType: "string[]",
name: "values",
type: "string[]"
}
],
name: "setConfigs",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "newOwner",
type: "address"
}
],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function"
}
];
// src/evmUtils/addressHelpers.ts
var import_viem = require("viem");
var nativeCurrencyAddress = import_viem.zeroAddress;
// src/evmUtils/evmContractAddresses.ts
var EVMChain = KnownChainId.EVM;
var EVMToken = KnownTokenId.EVM;
var EVMEndpointContract;
((EVMEndpointContract2) => {
EVMEndpointContract2.BridgeEndpoint = "BridgeEndpoint";
EVMEndpointContract2.NativeBridgeEndpoint = "NativeBridgeEndpoint";
EVMEndpointContract2.BridgeConfig = "BridgeConfig";
EVMEndpointContract2.TimeLock = "TimeLock";
EVMEndpointContract2.Registry = "Registry";
})(EVMEndpointContract || (EVMEndpointContract = {}));
var evmContractAddresses = {
[EVMChain.Ethereum]: {
// https://t.me/c/1599543687/57297
[EVMEndpointContract.BridgeConfig]: "0x79d1C91053baceced5C796aB8a765E4d5aB38e8a"
},
[EVMChain.BSC]: {
// https://t.me/c/1599543687/57297
[EVMEndpointContract.BridgeConfig]: "0x7062dB5dcaECDb355878a0BAB00A6941345D8711"
},
[EVMChain.CoreDAO]: {
// https://t.me/c/1599543687/57297
[EVMEndpointContract.BridgeConfig]: "0x7062dB5dcaECDb355878a0BAB00A6941345D8711"
},
[EVMChain.Bsquared]: {
// https://t.me/c/1599543687/57297
[EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24"
},
[EVMChain.BOB]: {
// https://t.me/c/1599543687/57297
[EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24"
},
[EVMChain.Bitlayer]: {
// https://t.me/c/1599543687/57297
[EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24"
},
[EVMChain.Lorenzo]: {
// https://t.me/c/1599543687/57297
[EVMEndpointContract.BridgeConfig]