diff --git a/package.json b/package.json index f07437dc..24d2c50d 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,9 @@ "typescript": "^5.3.3" }, "dependencies": { + "@multiversx/sdk-core": "^12.18.0", + "@multiversx/sdk-network-providers": "^2.2.1", + "@multiversx/sdk-wallet": "^4.3.0", "@taquito/taquito": "^19.0.0", "@taquito/tzip16": "^19.0.0", "@taquito/utils": "^19.0.0", diff --git a/src/contractsTypes/abi/bridgeStorage.ts b/src/contractsTypes/abi/bridgeStorage.ts new file mode 100644 index 00000000..79034527 --- /dev/null +++ b/src/contractsTypes/abi/bridgeStorage.ts @@ -0,0 +1,714 @@ +const bridgeStorageABI = [ + { + inputs: [ + { + internalType: 'address', + name: 'bootstrapValidator', + type: 'address', + }, + { + components: [ + { + internalType: 'string', + name: 'chain', + type: 'string', + }, + { + internalType: 'uint256', + name: 'fee', + type: 'uint256', + }, + ], + internalType: 'struct ChainFee[]', + name: 'bootstrapChainFee', + type: 'tuple[]', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'string', + name: 'sourceChain', + type: 'string', + }, + { + internalType: 'string', + name: 'destinationChain', + type: 'string', + }, + { + internalType: 'address', + name: 'destinationUserAddress', + type: 'address', + }, + { + internalType: 'address', + name: 'sourceNftContractAddress', + type: 'address', + }, + { + internalType: 'string', + name: 'name', + type: 'string', + }, + { + internalType: 'string', + name: 'symbol', + type: 'string', + }, + { + internalType: 'uint256', + name: 'royalty', + type: 'uint256', + }, + { + internalType: 'address', + name: 'royaltyReceiver', + type: 'address', + }, + { + internalType: 'string', + name: 'metadata', + type: 'string', + }, + { + internalType: 'string', + name: 'transactionHash', + type: 'string', + }, + { + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', + }, + { + internalType: 'string', + name: 'nftType', + type: 'string', + }, + { + internalType: 'uint256', + name: 'fee', + type: 'uint256', + }, + ], + internalType: 'struct NftTransferDetails', + name: 'nftTransferDetails', + type: 'tuple', + }, + { + internalType: 'string', + name: 'signature', + type: 'string', + }, + ], + name: 'approveLockNft', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'stakerAddress', + type: 'address', + }, + { + internalType: 'string', + name: 'signature', + type: 'string', + }, + ], + name: 'approveStake', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + name: 'chainEpoch', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + name: 'chainFee', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + { + internalType: 'address', + name: '', + type: 'address', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'chainFeeVoted', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'chainFeeVotes', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: 'chain', + type: 'string', + }, + { + internalType: 'uint256', + name: 'fee', + type: 'uint256', + }, + ], + name: 'changeChainFee', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_validatorAddress', + type: 'address', + }, + { + internalType: 'bool', + name: '_status', + type: 'bool', + }, + ], + name: 'changeValidatorStatus', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: 'a', + type: 'string', + }, + { + internalType: 'string', + name: 'b', + type: 'string', + }, + ], + name: 'concatenate', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'pure', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: 'chain', + type: 'string', + }, + { + internalType: 'string', + name: 'txHash', + type: 'string', + }, + ], + name: 'getLockNftSignatures', + outputs: [ + { + components: [ + { + components: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'string', + name: 'sourceChain', + type: 'string', + }, + { + internalType: 'string', + name: 'destinationChain', + type: 'string', + }, + { + internalType: 'address', + name: 'destinationUserAddress', + type: 'address', + }, + { + internalType: 'address', + name: 'sourceNftContractAddress', + type: 'address', + }, + { + internalType: 'string', + name: 'name', + type: 'string', + }, + { + internalType: 'string', + name: 'symbol', + type: 'string', + }, + { + internalType: 'uint256', + name: 'royalty', + type: 'uint256', + }, + { + internalType: 'address', + name: 'royaltyReceiver', + type: 'address', + }, + { + internalType: 'string', + name: 'metadata', + type: 'string', + }, + { + internalType: 'string', + name: 'transactionHash', + type: 'string', + }, + { + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', + }, + { + internalType: 'string', + name: 'nftType', + type: 'string', + }, + { + internalType: 'uint256', + name: 'fee', + type: 'uint256', + }, + ], + internalType: 'struct NftTransferDetails', + name: 'transferDetails', + type: 'tuple', + }, + { + internalType: 'string[]', + name: 'signatures', + type: 'string[]', + }, + ], + internalType: 'struct NftTransferWithSignatures', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: 'chain', + type: 'string', + }, + { + internalType: 'string', + name: 'txHash', + type: 'string', + }, + ], + name: 'getLockNftSignaturesCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'stakerAddress', + type: 'address', + }, + ], + name: 'getStakingSignatures', + outputs: [ + { + internalType: 'string[]', + name: '', + type: 'string[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'stakerAddress', + type: 'address', + }, + ], + name: 'getStakingSignaturesCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + name: 'lockSignatures', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'string', + name: 'sourceChain', + type: 'string', + }, + { + internalType: 'string', + name: 'destinationChain', + type: 'string', + }, + { + internalType: 'address', + name: 'destinationUserAddress', + type: 'address', + }, + { + internalType: 'address', + name: 'sourceNftContractAddress', + type: 'address', + }, + { + internalType: 'string', + name: 'name', + type: 'string', + }, + { + internalType: 'string', + name: 'symbol', + type: 'string', + }, + { + internalType: 'uint256', + name: 'royalty', + type: 'uint256', + }, + { + internalType: 'address', + name: 'royaltyReceiver', + type: 'address', + }, + { + internalType: 'string', + name: 'metadata', + type: 'string', + }, + { + internalType: 'string', + name: 'transactionHash', + type: 'string', + }, + { + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', + }, + { + internalType: 'string', + name: 'nftType', + type: 'string', + }, + { + internalType: 'uint256', + name: 'fee', + type: 'uint256', + }, + ], + internalType: 'struct NftTransferDetails', + name: 'transferDetails', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'stakingSignatures', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + name: 'usedSignatures', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'validatorCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'validatorEpoch', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + { + internalType: 'bool', + name: '', + type: 'bool', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'validatorStatusChangeVotes', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + { + internalType: 'address', + name: '', + type: 'address', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'validatorVoted', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'validators', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, +]; + +export default bridgeStorageABI; diff --git a/src/contractsTypes/abi/erc1155Royality.ts b/src/contractsTypes/abi/erc1155Royality.ts new file mode 100644 index 00000000..af9c1bec --- /dev/null +++ b/src/contractsTypes/abi/erc1155Royality.ts @@ -0,0 +1,582 @@ +const erc1155RoyalityABI = [ + { + inputs: [], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + inputs: [ + { + internalType: 'address', + name: 'sender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'balance', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'needed', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'ERC1155InsufficientBalance', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'approver', + type: 'address', + }, + ], + name: 'ERC1155InvalidApprover', + type: 'error', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'idsLength', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'valuesLength', + type: 'uint256', + }, + ], + name: 'ERC1155InvalidArrayLength', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + ], + name: 'ERC1155InvalidOperator', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'receiver', + type: 'address', + }, + ], + name: 'ERC1155InvalidReceiver', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'sender', + type: 'address', + }, + ], + name: 'ERC1155InvalidSender', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'ERC1155MissingApprovalForAll', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'OwnableInvalidOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'OwnableUnauthorizedAccount', + type: 'error', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + indexed: false, + internalType: 'bool', + name: 'approved', + type: 'bool', + }, + ], + name: 'ApprovalForAll', + 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: true, + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256[]', + name: 'ids', + type: 'uint256[]', + }, + { + indexed: false, + internalType: 'uint256[]', + name: 'values', + type: 'uint256[]', + }, + ], + name: 'TransferBatch', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'TransferSingle', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'string', + name: 'value', + type: 'string', + }, + { + indexed: true, + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + ], + name: 'URI', + type: 'event', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + ], + name: 'balanceOf', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address[]', + name: 'accounts', + type: 'address[]', + }, + { + internalType: 'uint256[]', + name: 'ids', + type: 'uint256[]', + }, + ], + name: 'balanceOfBatch', + outputs: [ + { + internalType: 'uint256[]', + name: '', + type: 'uint256[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + ], + name: 'isApprovedForAll', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'royalty', + type: 'uint256', + }, + { + internalType: 'address', + name: 'royaltyReceiver', + type: 'address', + }, + { + internalType: 'string', + name: 'tokenURI', + type: 'string', + }, + ], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + 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: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'salePrice', + type: 'uint256', + }, + ], + name: 'royaltyInfo', + outputs: [ + { + internalType: 'address', + name: 'receiver', + type: 'address', + }, + { + internalType: 'uint256', + name: 'royaltyAmount', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256[]', + name: 'ids', + type: 'uint256[]', + }, + { + internalType: 'uint256[]', + name: 'values', + type: 'uint256[]', + }, + { + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, + ], + name: 'safeBatchTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + { + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + internalType: 'bool', + name: 'approved', + type: 'bool', + }, + ], + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'string', + name: 'newTokenURI', + type: 'string', + }, + ], + name: 'setTokenURI', + 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: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'uri', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, +]; + +export default erc1155RoyalityABI; diff --git a/src/contractsTypes/abi/erc20.ts b/src/contractsTypes/abi/erc20.ts new file mode 100644 index 00000000..15bb6b47 --- /dev/null +++ b/src/contractsTypes/abi/erc20.ts @@ -0,0 +1,333 @@ +const erc20ABI = [ + { + inputs: [ + { + internalType: 'string', + name: 'name', + type: 'string', + }, + { + internalType: 'string', + name: 'symbol', + type: 'string', + }, + { + internalType: 'uint256', + name: 'initialSupply', + type: 'uint256', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'allowance', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'needed', + type: 'uint256', + }, + ], + name: 'ERC20InsufficientAllowance', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'sender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'balance', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'needed', + type: 'uint256', + }, + ], + name: 'ERC20InsufficientBalance', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'approver', + type: 'address', + }, + ], + name: 'ERC20InvalidApprover', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'receiver', + type: 'address', + }, + ], + name: 'ERC20InvalidReceiver', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'sender', + type: 'address', + }, + ], + name: 'ERC20InvalidSender', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + ], + name: 'ERC20InvalidSpender', + type: 'error', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'Approval', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'Transfer', + type: 'event', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + ], + name: 'allowance', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'approve', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'balanceOf', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'decimals', + outputs: [ + { + internalType: 'uint8', + name: '', + type: 'uint8', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'name', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'symbol', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'totalSupply', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'transfer', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'transferFrom', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, +]; + +export default erc20ABI; diff --git a/src/contractsTypes/abi/erc721Royality.ts b/src/contractsTypes/abi/erc721Royality.ts new file mode 100644 index 00000000..666ce4a5 --- /dev/null +++ b/src/contractsTypes/abi/erc721Royality.ts @@ -0,0 +1,621 @@ +const erc721RoyalityABI = [ + { + inputs: [ + { + internalType: 'string', + name: 'name', + type: 'string', + }, + { + internalType: 'string', + name: 'symbol', + type: 'string', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + inputs: [ + { + internalType: 'address', + name: 'sender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'ERC721IncorrectOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'ERC721InsufficientApproval', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'approver', + type: 'address', + }, + ], + name: 'ERC721InvalidApprover', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + ], + name: 'ERC721InvalidOperator', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'ERC721InvalidOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'receiver', + type: 'address', + }, + ], + name: 'ERC721InvalidReceiver', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'sender', + type: 'address', + }, + ], + name: 'ERC721InvalidSender', + type: 'error', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'ERC721NonexistentToken', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'OwnableInvalidOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'OwnableUnauthorizedAccount', + type: 'error', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'approved', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'Approval', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + indexed: false, + internalType: 'bool', + name: 'approved', + type: 'bool', + }, + ], + name: 'ApprovalForAll', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: '_fromTokenId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: '_toTokenId', + type: 'uint256', + }, + ], + name: 'BatchMetadataUpdate', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: '_tokenId', + type: 'uint256', + }, + ], + name: 'MetadataUpdate', + 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: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'Transfer', + type: 'event', + }, + { + inputs: [ + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'approve', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'balanceOf', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'getApproved', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + ], + name: 'isApprovedForAll', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'royalty', + type: 'uint256', + }, + { + internalType: 'address', + name: 'royalityReciever', + type: 'address', + }, + { + internalType: 'string', + name: 'tokenURI', + type: 'string', + }, + ], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'name', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'ownerOf', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'renounceOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'salePrice', + type: 'uint256', + }, + ], + name: 'royaltyInfo', + outputs: [ + { + internalType: 'address', + name: 'receiver', + type: 'address', + }, + { + internalType: 'uint256', + name: 'royaltyAmount', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + internalType: 'bool', + name: 'approved', + type: 'bool', + }, + ], + name: 'setApprovalForAll', + 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: [], + name: 'symbol', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'tokenURI', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'transferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'transferOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, +]; + +export default erc721RoyalityABI; diff --git a/src/contractsTypes/abi/evmBridgeABI.ts b/src/contractsTypes/abi/evmBridgeABI.ts new file mode 100644 index 00000000..50a83111 --- /dev/null +++ b/src/contractsTypes/abi/evmBridgeABI.ts @@ -0,0 +1,768 @@ +const evmBridgeABI = [ + { + inputs: [ + { + internalType: 'address[]', + name: '_validators', + type: 'address[]', + }, + { + internalType: 'string', + name: '_chainType', + type: 'string', + }, + { + internalType: 'address', + name: '_collectionDeployer', + type: 'address', + }, + { + internalType: 'address', + name: '_storageDeployer', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + inputs: [], + name: 'ECDSAInvalidSignature', + type: 'error', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'length', + type: 'uint256', + }, + ], + name: 'ECDSAInvalidSignatureLength', + type: 'error', + }, + { + inputs: [ + { + internalType: 'bytes32', + name: 's', + type: 'bytes32', + }, + ], + name: 'ECDSAInvalidSignatureS', + type: 'error', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: '_validator', + type: 'address', + }, + ], + name: 'AddNewValidator', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'string', + name: 'sourceChain', + type: 'string', + }, + { + indexed: false, + internalType: 'string', + name: 'transactionHash', + type: 'string', + }, + ], + name: 'Claimed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'string', + name: 'destinationChain', + type: 'string', + }, + { + indexed: false, + internalType: 'string', + name: 'destinationUserAddress', + type: 'string', + }, + { + indexed: false, + internalType: 'string', + name: 'sourceNftContractAddress', + type: 'string', + }, + { + indexed: false, + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'string', + name: 'nftType', + type: 'string', + }, + { + indexed: false, + internalType: 'string', + name: 'sourceChain', + type: 'string', + }, + ], + name: 'Locked', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'bytes32', + name: 'hashValue', + type: 'bytes32', + }, + { + indexed: false, + internalType: 'bytes[]', + name: '', + type: 'bytes[]', + }, + ], + name: 'LogHash', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: '_validator', + type: 'address', + }, + ], + name: 'RewardValidator', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'address', + name: 'contractAddr', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'UnLock1155', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'address', + name: 'contractAddr', + type: 'address', + }, + ], + name: 'UnLock721', + type: 'event', + }, + { + inputs: [ + { + internalType: 'address', + name: '_validator', + type: 'address', + }, + { + components: [ + { + internalType: 'string', + name: 'signerAddress', + type: 'string', + }, + { + internalType: 'bytes', + name: 'signature', + type: 'bytes', + }, + ], + internalType: 'struct SignerAndSignature[]', + name: 'signatures', + type: 'tuple[]', + }, + ], + name: 'addValidator', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'string', + name: 'sourceChain', + type: 'string', + }, + { + internalType: 'string', + name: 'destinationChain', + type: 'string', + }, + { + internalType: 'address', + name: 'destinationUserAddress', + type: 'address', + }, + { + internalType: 'string', + name: 'sourceNftContractAddress', + type: 'string', + }, + { + internalType: 'string', + name: 'name', + type: 'string', + }, + { + internalType: 'string', + name: 'symbol', + type: 'string', + }, + { + internalType: 'uint256', + name: 'royalty', + type: 'uint256', + }, + { + internalType: 'address', + name: 'royaltyReceiver', + type: 'address', + }, + { + internalType: 'string', + name: 'metadata', + type: 'string', + }, + { + internalType: 'string', + name: 'transactionHash', + type: 'string', + }, + { + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', + }, + { + internalType: 'string', + name: 'nftType', + type: 'string', + }, + { + internalType: 'uint256', + name: 'fee', + type: 'uint256', + }, + ], + internalType: 'struct Bridge.ClaimData', + name: 'data', + type: 'tuple', + }, + { + internalType: 'bytes[]', + name: 'signatures', + type: 'bytes[]', + }, + ], + name: 'claimNFT1155', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'string', + name: 'sourceChain', + type: 'string', + }, + { + internalType: 'string', + name: 'destinationChain', + type: 'string', + }, + { + internalType: 'address', + name: 'destinationUserAddress', + type: 'address', + }, + { + internalType: 'string', + name: 'sourceNftContractAddress', + type: 'string', + }, + { + internalType: 'string', + name: 'name', + type: 'string', + }, + { + internalType: 'string', + name: 'symbol', + type: 'string', + }, + { + internalType: 'uint256', + name: 'royalty', + type: 'uint256', + }, + { + internalType: 'address', + name: 'royaltyReceiver', + type: 'address', + }, + { + internalType: 'string', + name: 'metadata', + type: 'string', + }, + { + internalType: 'string', + name: 'transactionHash', + type: 'string', + }, + { + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', + }, + { + internalType: 'string', + name: 'nftType', + type: 'string', + }, + { + internalType: 'uint256', + name: 'fee', + type: 'uint256', + }, + ], + internalType: 'struct Bridge.ClaimData', + name: 'data', + type: 'tuple', + }, + { + internalType: 'bytes[]', + name: 'signatures', + type: 'bytes[]', + }, + ], + name: 'claimNFT721', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_validator', + type: 'address', + }, + { + internalType: 'bytes[]', + name: 'signatures', + type: 'bytes[]', + }, + ], + name: 'claimValidatorRewards', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'collectionDeployer', + outputs: [ + { + internalType: 'contract INFTCollectionDeployer', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + name: 'duplicateStorageMapping1155', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + name: 'duplicateStorageMapping721', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + name: 'duplicateToOriginalMapping', + outputs: [ + { + internalType: 'string', + name: 'chain', + type: 'string', + }, + { + internalType: 'string', + name: 'contractAddress', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'string', + name: 'destinationChain', + type: 'string', + }, + { + internalType: 'string', + name: 'destinationUserAddress', + type: 'string', + }, + { + internalType: 'address', + name: 'sourceNftContractAddress', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', + }, + ], + name: 'lock1155', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'string', + name: 'destinationChain', + type: 'string', + }, + { + internalType: 'string', + name: 'destinationUserAddress', + type: 'string', + }, + { + internalType: 'address', + name: 'sourceNftContractAddress', + type: 'address', + }, + ], + name: 'lock721', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + name: 'originalStorageMapping1155', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + name: 'originalStorageMapping721', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + name: 'originalToDuplicateMapping', + outputs: [ + { + internalType: 'string', + name: 'chain', + type: 'string', + }, + { + internalType: 'address', + name: 'contractAddress', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'selfChain', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'storageDeployer', + outputs: [ + { + internalType: 'contract INFTStorageDeployer', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes32', + name: '', + type: 'bytes32', + }, + ], + name: 'uniqueIdentifier', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'validators', + outputs: [ + { + internalType: 'bool', + name: 'added', + type: 'bool', + }, + { + internalType: 'uint256', + name: 'pendingReward', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'validatorsCount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + stateMutability: 'payable', + type: 'receive', + }, +]; + +export default evmBridgeABI; diff --git a/src/contractsTypes/abi/index.ts b/src/contractsTypes/abi/index.ts new file mode 100644 index 00000000..2024e83b --- /dev/null +++ b/src/contractsTypes/abi/index.ts @@ -0,0 +1,17 @@ +import erc20ABI from './erc20'; +import stakingABI from './staking'; +import bridgeStorageABI from './bridgeStorage'; +import evmBridgeABI from './evmBridgeABI'; +import erc1155RoyalityABI from './erc1155Royality'; +import erc721RoyalityABI from './erc721Royality'; +import multiversXBridgeABI from './multiversXBridgeABI'; + +export { + erc20ABI, + stakingABI, + bridgeStorageABI, + evmBridgeABI, + erc1155RoyalityABI, + erc721RoyalityABI, + multiversXBridgeABI, +}; diff --git a/src/contractsTypes/abi/multiversXBridgeABI.ts b/src/contractsTypes/abi/multiversXBridgeABI.ts new file mode 100644 index 00000000..dc97bb0e --- /dev/null +++ b/src/contractsTypes/abi/multiversXBridgeABI.ts @@ -0,0 +1,493 @@ +const multiversXBridgeABI = { + buildInfo: { + rustc: { + version: '1.71.0-nightly', + commitHash: 'a2b1646c597329d0a25efa3889b66650f65de1de', + commitDate: '2023-05-25', + channel: 'Nightly', + short: 'rustc 1.71.0-nightly (a2b1646c5 2023-05-25)', + }, + contractCrate: { + name: 'bridge', + version: '0.0.0', + }, + framework: { + name: 'multiversx-sc', + version: '0.44.0', + }, + }, + name: 'BridgeContract', + constructor: { + inputs: [ + { + name: 'public_key', + type: 'Address', + }, + ], + outputs: [], + }, + endpoints: [ + { + name: 'tokens', + mutability: 'readonly', + inputs: [], + outputs: [ + { + type: 'variadic>', + multi_result: true, + }, + ], + }, + { + name: 'validators', + mutability: 'readonly', + inputs: [ + { + name: 'address', + type: 'Address', + }, + ], + outputs: [ + { + type: 'variadic', + multi_result: true, + }, + ], + }, + { + name: 'validatorsCount', + mutability: 'readonly', + inputs: [], + outputs: [ + { + type: 'u64', + }, + ], + }, + { + name: 'uniqueIdentifier', + mutability: 'readonly', + inputs: [], + outputs: [ + { + type: 'variadic', + multi_result: true, + }, + ], + }, + { + name: 'originalToDuplicateMapping', + mutability: 'readonly', + inputs: [], + outputs: [ + { + type: 'variadic,ContractInfo>>', + multi_result: true, + }, + ], + }, + { + name: 'duplicateToOriginalMapping', + mutability: 'readonly', + inputs: [], + outputs: [ + { + type: 'variadic,ContractInfo>>', + multi_result: true, + }, + ], + }, + { + name: 'addValidator', + mutability: 'mutable', + inputs: [ + { + name: 'new_validator_public_key', + type: 'Address', + }, + { + name: 'signatures', + type: 'List', + }, + ], + outputs: [], + }, + { + name: 'claimValidatorRewards', + mutability: 'mutable', + inputs: [ + { + name: 'validator', + type: 'Address', + }, + { + name: 'signatures', + type: 'List', + }, + ], + outputs: [], + }, + { + name: 'lock721', + mutability: 'mutable', + payableInTokens: ['*'], + inputs: [ + { + name: 'token_id', + type: 'TokenIdentifier', + }, + { + name: 'destination_chain', + type: 'bytes', + }, + { + name: 'destination_user_address', + type: 'bytes', + }, + { + name: 'source_nft_contract_address', + type: 'TokenIdentifier', + }, + { + name: 'nonce', + type: 'u64', + }, + ], + outputs: [], + }, + { + name: 'lock1155', + mutability: 'mutable', + payableInTokens: ['*'], + inputs: [ + { + name: 'token_id', + type: 'TokenIdentifier', + }, + { + name: 'destination_chain', + type: 'bytes', + }, + { + name: 'destination_user_address', + type: 'bytes', + }, + { + name: 'source_nft_contract_address', + type: 'TokenIdentifier', + }, + { + name: 'amount', + type: 'BigUint', + }, + { + name: 'nonce', + type: 'u64', + }, + ], + outputs: [], + }, + { + name: 'claimNft721', + mutability: 'mutable', + payableInTokens: ['EGLD'], + inputs: [ + { + name: 'data', + type: 'ClaimData', + }, + { + name: 'signatures', + type: 'List', + }, + { + name: 'uris', + type: 'multi', + multi_arg: true, + }, + ], + outputs: [], + }, + { + name: 'claimNft1155', + mutability: 'mutable', + payableInTokens: ['EGLD'], + inputs: [ + { + name: 'data', + type: 'ClaimData', + }, + { + name: 'signatures', + type: 'List', + }, + { + name: 'uris', + type: 'multi', + multi_arg: true, + }, + ], + outputs: [], + }, + { + name: 'collections', + mutability: 'readonly', + inputs: [ + { + name: 'identifier', + type: 'bytes', + }, + ], + outputs: [ + { + type: 'TokenIdentifier', + }, + ], + }, + ], + events: [ + { + identifier: 'AddNewValidator', + inputs: [ + { + name: 'validator', + type: 'Address', + indexed: true, + }, + ], + }, + { + identifier: 'Locked', + inputs: [ + { + name: 'token_id', + type: 'u64', + indexed: true, + }, + { + name: 'destination_chain', + type: 'bytes', + indexed: true, + }, + { + name: 'destination_user_address', + type: 'bytes', + indexed: true, + }, + { + name: 'source_nft_contract_address', + type: 'TokenIdentifier', + indexed: true, + }, + { + name: 'token_amount', + type: 'BigUint', + indexed: true, + }, + { + name: 'nft_type', + type: 'bytes', + indexed: true, + }, + { + name: 'chain', + type: 'bytes', + indexed: true, + }, + ], + }, + { + identifier: 'UnLock721', + inputs: [ + { + name: 'to', + type: 'Address', + indexed: true, + }, + { + name: 'token_id', + type: 'u64', + indexed: true, + }, + { + name: 'contract_address', + type: 'TokenIdentifier', + indexed: true, + }, + ], + }, + { + identifier: 'UnLock1155', + inputs: [ + { + name: 'to', + type: 'Address', + indexed: true, + }, + { + name: 'token_id', + type: 'u64', + indexed: true, + }, + { + name: 'contract_address', + type: 'TokenIdentifier', + indexed: true, + }, + { + name: 'amount', + type: 'BigUint', + indexed: true, + }, + ], + }, + { + identifier: 'Claimed', + inputs: [ + { + name: 'source_chain', + type: 'bytes', + indexed: true, + }, + { + name: 'transaction_hash', + type: 'bytes', + indexed: true, + }, + ], + }, + { + identifier: 'RewardValidator', + inputs: [ + { + name: 'validator', + type: 'Address', + indexed: true, + }, + ], + }, + ], + esdtAttributes: [], + hasCallback: true, + types: { + ClaimData: { + type: 'struct', + fields: [ + { + name: 'token_id', + type: 'bytes', + }, + { + name: 'source_chain', + type: 'bytes', + }, + { + name: 'destination_chain', + type: 'bytes', + }, + { + name: 'destination_user_address', + type: 'Address', + }, + { + name: 'source_nft_contract_address', + type: 'bytes', + }, + { + name: 'name', + type: 'bytes', + }, + { + name: 'symbol', + type: 'bytes', + }, + { + name: 'royalty', + type: 'BigUint', + }, + { + name: 'royalty_receiver', + type: 'Address', + }, + { + name: 'attrs', + type: 'bytes', + }, + { + name: 'transaction_hash', + type: 'bytes', + }, + { + name: 'token_amount', + type: 'BigUint', + }, + { + name: 'nft_type', + type: 'bytes', + }, + { + name: 'fee', + type: 'BigUint', + }, + ], + }, + ContractInfo: { + type: 'struct', + fields: [ + { + name: 'chain', + type: 'bytes', + }, + { + name: 'address', + type: 'bytes', + }, + ], + }, + SignatureInfo: { + type: 'struct', + fields: [ + { + name: 'public_key', + type: 'Address', + }, + { + name: 'sig', + type: 'bytes', + }, + ], + }, + TokenInfo: { + type: 'struct', + fields: [ + { + name: 'token_id', + type: 'u64', + }, + { + name: 'chain', + type: 'bytes', + }, + { + name: 'contract_address', + type: 'bytes', + }, + ], + }, + Validator: { + type: 'struct', + fields: [ + { + name: 'added', + type: 'bool', + }, + { + name: 'pending_reward', + type: 'BigUint', + }, + ], + }, + }, +}; + +export default multiversXBridgeABI; diff --git a/src/contractsTypes/abi/staking.ts b/src/contractsTypes/abi/staking.ts new file mode 100644 index 00000000..0d273de6 --- /dev/null +++ b/src/contractsTypes/abi/staking.ts @@ -0,0 +1,121 @@ +const stakingABI = [ + { + inputs: [ + { + internalType: 'uint256', + name: '_stakingAmount', + type: 'uint256', + }, + { + internalType: 'address', + name: '_ERC20Token', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + components: [ + { + internalType: 'string', + name: 'validatorAddress', + type: 'string', + }, + { + internalType: 'string', + name: 'chainType', + type: 'string', + }, + ], + indexed: false, + internalType: 'struct ValidatorAddressAndChainType[]', + name: 'validatorAddressAndChainType', + type: 'tuple[]', + }, + ], + name: 'Staked', + type: 'event', + }, + { + inputs: [], + name: 'ERC20Token', + outputs: [ + { + internalType: 'contract IERC20', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'string', + name: 'validatorAddress', + type: 'string', + }, + { + internalType: 'string', + name: 'chainType', + type: 'string', + }, + ], + internalType: 'struct ValidatorAddressAndChainType[]', + name: '_validatorAddressAndChainType', + type: 'tuple[]', + }, + ], + name: 'stakeERC20', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'stakingAmount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'stakingBalances', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, +]; + +export default stakingABI; diff --git a/src/contractsTypes/abi/tonBridgeABI.ts b/src/contractsTypes/abi/tonBridgeABI.ts new file mode 100644 index 00000000..4217b34d --- /dev/null +++ b/src/contractsTypes/abi/tonBridgeABI.ts @@ -0,0 +1,368 @@ +const tonBridgeABI = { + name: 'Bridge', + types: [ + { + name: 'StateInit', + header: null, + fields: [ + { + name: 'code', + type: { + kind: 'simple', + type: 'cell', + optional: false, + }, + }, + { + name: 'data', + type: { + kind: 'simple', + type: 'cell', + optional: false, + }, + }, + ], + }, + { + name: 'Context', + header: null, + fields: [ + { + name: 'bounced', + type: { + kind: 'simple', + type: 'bool', + optional: false, + }, + }, + { + name: 'sender', + type: { + kind: 'simple', + type: 'address', + optional: false, + }, + }, + { + name: 'value', + type: { + kind: 'simple', + type: 'int', + optional: false, + format: 257, + }, + }, + { + name: 'raw', + type: { + kind: 'simple', + type: 'slice', + optional: false, + }, + }, + ], + }, + { + name: 'SendParameters', + header: null, + fields: [ + { + name: 'bounce', + type: { kind: 'simple', type: 'bool', optional: false }, + }, + { + name: 'to', + type: { + kind: 'simple', + type: 'address', + optional: false, + }, + }, + { + name: 'value', + type: { + kind: 'simple', + type: 'int', + optional: false, + format: 257, + }, + }, + { + name: 'mode', + type: { + kind: 'simple', + type: 'int', + optional: false, + format: 257, + }, + }, + { + name: 'body', + type: { kind: 'simple', type: 'cell', optional: true }, + }, + { + name: 'code', + type: { kind: 'simple', type: 'cell', optional: true }, + }, + { + name: 'data', + type: { kind: 'simple', type: 'cell', optional: true }, + }, + ], + }, + { + name: 'Deploy', + header: 2490013878, + fields: [ + { + name: 'queryId', + type: { + kind: 'simple', + type: 'uint', + optional: false, + format: 64, + }, + }, + ], + }, + { + name: 'DeployOk', + header: 2952335191, + fields: [ + { + name: 'queryId', + type: { + kind: 'simple', + type: 'uint', + optional: false, + format: 64, + }, + }, + ], + }, + { + name: 'FactoryDeploy', + header: 1829761339, + fields: [ + { + name: 'queryId', + type: { + kind: 'simple', + type: 'uint', + optional: false, + format: 64, + }, + }, + { + name: 'cashback', + type: { kind: 'simple', type: 'address', optional: false }, + }, + ], + }, + { + name: 'Validator', + header: null, + fields: [ + { + name: 'added', + type: { kind: 'simple', type: 'bool', optional: false }, + }, + { + name: 'pendingRewards', + type: { + kind: 'simple', + type: 'uint', + optional: false, + format: 'coins', + }, + }, + ], + }, + { + name: 'Sig', + header: null, + fields: [ + { + name: 'signature', + type: { kind: 'simple', type: 'slice', optional: false }, + }, + { + name: 'key', + type: { + kind: 'simple', + type: 'uint', + optional: false, + format: 256, + }, + }, + ], + }, + { + name: 'AddValidator', + header: 630696568, + fields: [ + { + name: 'newValidatorPublicKey', + type: { + kind: 'simple', + type: 'int', + optional: false, + format: 257, + }, + }, + { + name: 'sigs', + type: { + kind: 'dict', + key: 'int', + value: 'Sig', + valueFormat: 'ref', + }, + }, + { + name: 'len', + type: { + kind: 'simple', + type: 'uint', + optional: false, + format: 256, + }, + }, + ], + }, + { + name: 'Transfer', + header: null, + fields: [ + { + name: 'seqno', + type: { + kind: 'simple', + type: 'uint', + optional: false, + format: 32, + }, + }, + { + name: 'mode', + type: { + kind: 'simple', + type: 'uint', + optional: false, + format: 8, + }, + }, + { + name: 'to', + type: { kind: 'simple', type: 'address', optional: false }, + }, + { + name: 'amount', + type: { + kind: 'simple', + type: 'uint', + optional: false, + format: 'coins', + }, + }, + { + name: 'body', + type: { kind: 'simple', type: 'cell', optional: true }, + }, + ], + }, + { + name: 'TransferMessage', + header: 123, + fields: [ + { + name: 'signature', + type: { kind: 'simple', type: 'slice', optional: false }, + }, + { + name: 'transfer', + type: { kind: 'simple', type: 'Transfer', optional: false }, + }, + { + name: 'key', + type: { + kind: 'simple', + type: 'uint', + optional: false, + format: 256, + }, + }, + ], + }, + { + name: 'StakeEvent', + header: 2917934626, + fields: [ + { + name: 'amount', + type: { + kind: 'simple', + type: 'uint', + optional: false, + format: 'coins', + }, + }, + ], + }, + ], + receivers: [ + { + receiver: 'internal', + message: { + kind: 'text', + text: 'Deploy', + }, + }, + { + receiver: 'internal', + message: { kind: 'typed', type: 'AddValidator' }, + }, + { + receiver: 'internal', + message: { kind: 'typed', type: 'TransferMessage' }, + }, + ], + getters: [], + errors: { + '2': { message: 'Stack undeflow' }, + '3': { message: 'Stack overflow' }, + '4': { message: 'Integer overflow' }, + '5': { message: 'Integer out of expected range' }, + '6': { message: 'Invalid opcode' }, + '7': { message: 'Type check error' }, + '8': { message: 'Cell overflow' }, + '9': { message: 'Cell underflow' }, + '10': { message: 'Dictionary error' }, + '13': { message: 'Out of gas error' }, + '32': { message: 'Method ID not found' }, + '34': { message: 'Action is invalid or not supported' }, + '37': { message: 'Not enough TON' }, + '38': { message: 'Not enough extra-currencies' }, + '128': { message: 'Null reference exception' }, + '129': { message: 'Invalid serialization prefix' }, + '130': { message: 'Invalid incoming message' }, + '131': { message: 'Constraints error' }, + '132': { message: 'Access denied' }, + '133': { message: 'Contract stopped' }, + '134': { message: 'Invalid argument' }, + '135': { message: 'Code of a contract was not found' }, + '136': { message: 'Invalid address' }, + '137': { + message: 'Masterchain support is not enabled for this contract', + }, + '48401': { message: 'Invalid signature' }, + }, + interfaces: [ + 'org.ton.introspection.v0', + 'org.ton.abi.ipfs.v0', + 'org.ton.deploy.lazy.v0', + 'org.ton.chain.workchain.v0', + ], +}; + +export default tonBridgeABI; diff --git a/src/handlers/multiversx.ts b/src/handlers/multiversx.ts new file mode 100644 index 00000000..286cf79d --- /dev/null +++ b/src/handlers/multiversx.ts @@ -0,0 +1,294 @@ +import { + AbiRegistry, + Account, + Address, + AddressType, + AddressValue, + BigUIntType, + BigUIntValue, + BytesType, + BytesValue, + Field, + FieldDefinition, + SmartContract, + Struct, + StructType, + Transaction, + TransactionPayload, + VariadicValue, +} from "@multiversx/sdk-core/out"; +import { INetworkProvider } from "@multiversx/sdk-network-providers/out/interface"; +import { Nonce } from "@multiversx/sdk-network-providers/out/primitives"; +import { TSingularNftChain } from "./chain"; + +import { UserAddress } from "@multiversx/sdk-wallet/out/userAddress"; +import { multiversXBridgeABI } from "../contractsTypes/abi"; + +export type MultiversXSigner = { + sign: (message: Buffer) => Promise; + getAddress: () => UserAddress; +}; + +export type ClaimStruct = { + tokenId: string; + sourceChain: string; + destinationChain: string; + destinationUserAddress: string; + sourceNftContractAddress: string; + name: string; + symbol: string; + royalty: string; + royaltyReceiver: string; + attrs: string; + transactionHash: string; + tokenAmount: string; + nftType: string; + fee: string; + metadata: string; +}; + +export type MultiversXHandler = TSingularNftChain< + MultiversXSigner, + ClaimStruct, + [nonce: number, collection: string], + unknown, + string +>; + +export type MultiversXParams = { + provider: INetworkProvider; + gatewayURL: string; + bridge: string; +}; + +export function multiversxHandler({ + provider, + gatewayURL, + bridge, +}: MultiversXParams): MultiversXHandler { + const abiRegistry = AbiRegistry.create(multiversXBridgeABI); + const multiversXBridgeContract = new SmartContract({ + address: Address.fromString(bridge), + abi: abiRegistry, + }); + + const getNonFungibleToken = async ( + collection: string, + nonce: number, + ): Promise<{ royalties: number; metaData: string }> => { + const nonceAsHex = new Nonce(nonce).hex(); + const response = ( + await ( + await fetch( + `${gatewayURL.replace( + "gateway", + "api", + )}/nfts/${collection}-${nonceAsHex}`, + ) + ).json() + ).data; + return { + metaData: atob(response.uris[1]), + royalties: response.royalties, + }; + }; + return { + async nftData(_, _a, nonce, collection) { + const nftDetails = + await provider.getDefinitionOfTokenCollection(collection); + const { royalties, metaData } = await getNonFungibleToken( + collection, + nonce, + ); + return { + name: nftDetails.name, + symbol: nftDetails.ticker, + metadata: metaData, + royalty: BigInt(royalties), + }; + }, + async lockNft(signer, sourceNft, destinationChain, to, tokenId, _) { + const ba = new Address(bridge); + + const userAddress = new Address(signer.getAddress().bech32()); + const userAccount = new Account(userAddress); + const userOnNetwork = await provider.getAccount(userAddress); + userAccount.update(userOnNetwork); + + const collectionIdentifiers = `@${Buffer.from(sourceNft).toString( + "hex", + )}`; + const noncec = `@${tokenId}`; + const quantity = "@" + "01"; + const destination_address = `@${ba.hex()}`; + const method = `@${Buffer.from("lock721").toString("hex")}`; + const token_id = `@${Buffer.from(tokenId.toString()).toString("hex")}`; + const destination_chain = `@${Buffer.from(destinationChain).toString( + "hex", + )}`; + const destination_user_address = `@${Buffer.from(to).toString("hex")}`; + const source_nft_contract_address = collectionIdentifiers; + + const tx3 = new Transaction({ + data: new TransactionPayload( + `ESDTNFTTransfer${collectionIdentifiers}${noncec}${quantity}${destination_address}${method}${token_id}${destination_chain}${destination_user_address}${source_nft_contract_address}${noncec}`, + ), + gasLimit: 600000000, + sender: signer.getAddress(), + receiver: signer.getAddress(), + chainID: "D", + }); + + tx3.setNonce(userAccount.getNonceThenIncrement()); + + const serializedTransaction = tx3.serializeForSigning(); + const transactionSignature = await signer.sign(serializedTransaction); + tx3.applySignature(transactionSignature); + + const txHash = await provider.sendTransaction(tx3); + return txHash; + }, + async claimNft(signer, claimData, _, sig) { + const userAddress = new Address(signer.getAddress().bech32()); + const userAccount = new Account(userAddress); + const userOnNetwork = await provider.getAccount(userAddress); + userAccount.update(userOnNetwork); + + const structClaimData = new StructType("ClaimData", [ + new FieldDefinition("token_id", "name of the nft", new BytesType()), + new FieldDefinition( + "source_chain", + "attributes of the nft", + new BytesType(), + ), + new FieldDefinition( + "destination_chain", + "attributes of the nft", + new BytesType(), + ), + new FieldDefinition( + "destination_user_address", + "attributes of the nft", + new AddressType(), + ), + new FieldDefinition( + "source_nft_contract_address", + "attributes of the nft", + new BytesType(), + ), + new FieldDefinition("name", "attributes of the nft", new BytesType()), + new FieldDefinition("symbol", "attributes of the nft", new BytesType()), + new FieldDefinition( + "royalty", + "attributes of the nft", + new BigUIntType(), + ), + new FieldDefinition( + "royalty_receiver", + "attributes of the nft", + new AddressType(), + ), + new FieldDefinition("attrs", "attributes of the nft", new BytesType()), + new FieldDefinition( + "transaction_hash", + "attributes of the nft", + new BytesType(), + ), + new FieldDefinition( + "token_amount", + "attributes of the nft", + new BigUIntType(), + ), + new FieldDefinition( + "nft_type", + "attributes of the nft", + new BytesType(), + ), + new FieldDefinition("fee", "attributes of the nft", new BigUIntType()), + ]); + + const claimDataArgs = new Struct(structClaimData, [ + new Field( + new BytesValue( + Buffer.from(new Nonce(Number(claimData.tokenId)).hex(), "hex"), + ), + "token_id", + ), + new Field( + new BytesValue(Buffer.from(claimData.sourceChain)), + "source_chain", + ), + new Field( + new BytesValue(Buffer.from(claimData.destinationChain)), + "destination_chain", + ), + new Field( + new AddressValue(new Address(claimData.destinationUserAddress)), + "destination_user_address", + ), + new Field( + new BytesValue(Buffer.from(claimData.sourceNftContractAddress)), + "source_nft_contract_address", + ), + new Field(new BytesValue(Buffer.from(claimData.name)), "name"), + new Field( + new BytesValue( + Buffer.from(`N${claimData.sourceChain.toUpperCase()}`), + ), + "symbol", + ), + new Field(new BigUIntValue(Number(claimData.royalty)), "royalty"), + new Field( + new AddressValue(new Address(claimData.royaltyReceiver)), + "royalty_receiver", + ), + new Field(new BytesValue(Buffer.from(claimData.metadata)), "attrs"), + new Field( + new BytesValue(Buffer.from(claimData.transactionHash)), + "transaction_hash", + ), + new Field(new BigUIntValue(claimData.tokenAmount), "token_amount"), + new Field(new BytesValue(Buffer.from(claimData.nftType)), "nft_type"), + new Field(new BigUIntValue(claimData.fee), "fee"), + ]); + const data = [ + claimDataArgs, + + sig.map((item) => { + return { + public_key: new AddressValue( + new Address(Buffer.from(item.signer, "hex")), + ), + sig: new BytesValue( + Buffer.from(item.signature.replace("0x", ""), "hex"), + ), + }; + }), + + VariadicValue.fromItems( + new BytesValue(Buffer.from(claimData.metadata, "utf-8")), + new BytesValue(Buffer.from(claimData.metadata, "utf-8")), + ), + ]; + const transaction = multiversXBridgeContract.methods + .claimNft721(data) + .withSender(signer.getAddress()) + .withChainID("D") + .withGasLimit(6_000_000_00) + .withValue(new BigUIntValue("50000000000000000")) + .buildTransaction(); + transaction.setNonce(userAccount.getNonceThenIncrement()); + transaction.applySignature( + await signer.sign(transaction.serializeForSigning()), + ); + const hash = await provider.sendTransaction(transaction); + return hash; + }, + async getBalance(signer, _) { + const bal = BigInt( + (await provider.getAccount(signer.getAddress())).balance.toString(), + ); + return bal; + }, + }; +} diff --git a/yarn.lock b/yarn.lock index 07a1a3b3..54c64e21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -77,6 +77,61 @@ dependencies: bn.js "^5.2.0" +"@multiversx/sdk-bls-wasm@0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-bls-wasm/-/sdk-bls-wasm-0.3.5.tgz#2e83308fdc7a0928c6d5a7f910d796fd8eb2d90b" + integrity sha512-c0tIdQUnbBLSt6NYU+OpeGPYdL0+GV547HeHT8Xc0BKQ7Cj0v82QUoA2QRtWrR1G4MNZmLsIacZSsf6DrIS2Bw== + +"@multiversx/sdk-core@^12.18.0": + version "12.18.0" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-core/-/sdk-core-12.18.0.tgz#ae99665f9afb2bd4f1e325cb7daabb1dbcc55ca6" + integrity sha512-F+xGslPMkkZ0S/Q8UJZsMYl0mgHIuK/GdVsNFPiMKxQsKkxA2LTjNdPxVxjwgvRmN7WfdsTtQvmlsA5O1NYhBg== + dependencies: + "@multiversx/sdk-transaction-decoder" "1.0.2" + bech32 "1.1.4" + bignumber.js "9.0.1" + blake2b "2.1.3" + buffer "6.0.3" + json-duplicate-key-handle "1.0.0" + keccak "3.0.2" + protobufjs "7.2.4" + +"@multiversx/sdk-network-providers@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-network-providers/-/sdk-network-providers-2.2.1.tgz#6018c30a039182e221f945ab0492eb596d79064d" + integrity sha512-JsGznvyZSIBLpQ9bRjyv0EWfstaqDyFRBzokNZSbwk5z+3LjQFZxPTU3iv95BvW/rPQh8L0zD8Xwjw05pjTLyA== + dependencies: + axios "1.6.5" + bech32 "1.1.4" + bignumber.js "9.0.1" + buffer "6.0.3" + json-bigint "1.0.0" + +"@multiversx/sdk-transaction-decoder@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-transaction-decoder/-/sdk-transaction-decoder-1.0.2.tgz#83ded4f6d4b877b4421234856eb19709be2af31b" + integrity sha512-j43QsKquu8N51WLmVlJ7dV2P3A1448R7/ktvl8r3i6wRMpfdtzDPNofTdHmMRT7DdQdvs4+RNgz8hVKL11Etsw== + dependencies: + bech32 "^2.0.0" + +"@multiversx/sdk-wallet@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@multiversx/sdk-wallet/-/sdk-wallet-4.3.0.tgz#0d9a268f68b32d5590d827d5e5c991a5c23b6d93" + integrity sha512-ggyyvsQMiT1Hy9C6LlhQ3u+E0leO4V3q5Jh/U/eIRaj9b9xkPCjh2W5nOiaYDD0vYHrMVcrqMBSXE8MzU/2H7A== + dependencies: + "@multiversx/sdk-bls-wasm" "0.3.5" + "@noble/ed25519" "1.7.3" + "@noble/hashes" "1.3.0" + bech32 "1.1.4" + bip39 "3.0.2" + blake2b "2.1.3" + ed25519-hd-key "1.1.2" + ed2curve "0.3.0" + keccak "3.0.1" + scryptsy "2.1.0" + tweetnacl "1.0.3" + uuid "8.3.2" + "@noble/curves@1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" @@ -84,11 +139,21 @@ dependencies: "@noble/hashes" "1.3.2" +"@noble/ed25519@1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" + integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== + "@noble/hashes@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.0.0.tgz#d5e38bfbdaba174805a4e649f13be9a9ed3351ae" integrity sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg== +"@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.3.2": version "1.3.2" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" @@ -375,6 +440,20 @@ ansi-sequence-parser@^1.1.0: resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz#e0aa1cdcbc8f8bb0b5bca625aac41f5f056973cf" integrity sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg== +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" + integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== + dependencies: + follow-redirects "^1.15.4" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + axios@^0.25.0: version "0.25.0" resolved "https://registry.yarnpkg.com/axios/-/axios-0.25.0.tgz#349cfbb31331a9b4453190791760a8d35b093e0a" @@ -382,6 +461,11 @@ axios@^0.25.0: dependencies: follow-redirects "^1.14.7" +backslash@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/backslash/-/backslash-0.2.0.tgz#6c3c1fce7e7e714ccfc10fd74f0f73410677375f" + integrity sha512-Avs+8FUZ1HF/VFP4YWwHQZSGzRPm37ukU1JQYQWijuHhtXdOuAzcZ8PcAzfIw898a8PyBzdn+RtnKA6MzW0X2A== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -404,27 +488,32 @@ base64-js@^1.3.0, base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -bech32@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" - integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== - -bech32@^1.1.4: +bech32@1.1.4, bech32@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== +bech32@2.0.0, bech32@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" + integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== + big-integer@1.6.51: version "1.6.51" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== +bignumber.js@9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" + integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== + bignumber.js@9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== -bignumber.js@^9.1.2: +bignumber.js@^9.0.0, bignumber.js@^9.1.2: version "9.1.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== @@ -449,6 +538,16 @@ bip32@2.0.6: typeforce "^1.11.5" wif "^2.0.6" +bip39@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.2.tgz#2baf42ff3071fc9ddd5103de92e8f80d9257ee32" + integrity sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ== + dependencies: + "@types/node" "11.11.6" + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + bip39@3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" @@ -459,6 +558,21 @@ bip39@3.0.4: pbkdf2 "^3.0.9" randombytes "^2.0.1" +blake2b-wasm@^1.1.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-1.1.7.tgz#e4d075da10068e5d4c3ec1fb9accc4d186c55d81" + integrity sha512-oFIHvXhlz/DUgF0kq5B1CqxIDjIJwh9iDeUUGQUcvgiGz7Wdw03McEO7CfLBy7QKGdsydcMCgO9jFNBAFCtFcA== + dependencies: + nanoassert "^1.0.0" + +blake2b@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.3.tgz#f5388be424768e7c6327025dad0c3c6d83351bca" + integrity sha512-pkDss4xFVbMb4270aCyGD3qLv92314Et+FsKzilCLxDz5DuZ2/1g3w4nmBbu6nKApPspnjG7JcwTjGZnduB1yg== + dependencies: + blake2b-wasm "^1.1.0" + nanoassert "^1.0.0" + blakejs@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" @@ -517,7 +631,7 @@ bs58check@^3.0.1: "@noble/hashes" "^1.2.0" bs58 "^5.0.0" -buffer@^6.0.3: +buffer@6.0.3, buffer@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -533,6 +647,13 @@ cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" @@ -544,7 +665,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@1.1.7, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -578,6 +699,27 @@ dataloader@^2.0.0: resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +ed25519-hd-key@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ed25519-hd-key/-/ed25519-hd-key-1.1.2.tgz#168dcf08419694be7bba3319e7d64e4a5cfe5d44" + integrity sha512-/0y9y6N7vM6Kj5ASr9J9wcMVDTtygxSOvYX+PJiMD7VcxCx2G03V5bLRl8Dug9EgkLFsLhGqBtQWQRcElEeWTA== + dependencies: + bip39 "3.0.2" + create-hmac "1.1.7" + tweetnacl "1.0.3" + +ed2curve@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ed2curve/-/ed2curve-0.3.0.tgz#322b575152a45305429d546b071823a93129a05d" + integrity sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ== + dependencies: + tweetnacl "1.x.x" + elliptic@^6.4.0, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -614,11 +756,20 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -follow-redirects@^1.14.7: +follow-redirects@^1.14.7, follow-redirects@^1.15.4: version "1.15.5" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + google-protobuf@^3.14.0: version "3.21.2" resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" @@ -660,6 +811,20 @@ inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +json-bigint@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" + integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== + dependencies: + bignumber.js "^9.0.0" + +json-duplicate-key-handle@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-duplicate-key-handle/-/json-duplicate-key-handle-1.0.0.tgz#0678bd17822d23d8c0d0958b43011875fa37f363" + integrity sha512-OLIxL+UpfwUsqcLX3i6Z51ChTou/Vje+6bSeGUSubj96dF/SfjObDprLy++ZXYH07KITuEzsXS7PX7e/BGf4jw== + dependencies: + backslash "^0.2.0" + json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -670,6 +835,23 @@ jsonc-parser@^3.2.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a" integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== +keccak@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" + integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +keccak@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" + integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + lefthook-darwin-arm64@1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.6.1.tgz#387d245d39673ceede01da7de2a0d44d2c368e85" @@ -748,6 +930,18 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -775,6 +969,16 @@ nan@^2.13.2: resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== +nanoassert@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-1.1.0.tgz#4f3152e09540fde28c76f44b19bbcd1d5a42478d" + integrity sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ== + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + node-fetch@2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -789,6 +993,11 @@ node-fetch@^2.7.0: dependencies: whatwg-url "^5.0.0" +node-gyp-build@^4.2.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" + integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== + pako@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" @@ -805,6 +1014,24 @@ pbkdf2@^3.0.9: safe-buffer "^5.0.1" sha.js "^2.4.8" +protobufjs@7.2.4: + version "7.2.4" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.4.tgz#3fc1ec0cdc89dd91aef9ba6037ba07408485c3ae" + integrity sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + protobufjs@7.2.5: version "7.2.5" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.5.tgz#45d5c57387a6d29a17aab6846dcc283f9b8e7f2d" @@ -823,6 +1050,11 @@ protobufjs@7.2.5: "@types/node" ">=13.7.0" long "^5.0.0" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + randombytes@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -864,6 +1096,11 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +scryptsy@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" + integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== + secretjs@^1.12.4: version "1.12.4" resolved "https://registry.yarnpkg.com/secretjs/-/secretjs-1.12.4.tgz#0bc1930137a936246e976481808b129d12d7af9d" @@ -952,6 +1189,11 @@ tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tweetnacl@1.0.3, tweetnacl@1.x.x: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + typedarray-to-buffer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-4.0.0.tgz#cdd2933c61dd3f5f02eda5d012d441f95bfeb50a" @@ -987,6 +1229,11 @@ util-deprecate@^1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +uuid@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + vscode-oniguruma@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b"