@concordium/common-sdk
Advanced tools
Comparing version
@@ -1,2 +0,2 @@ | ||
import { AttributeKey, CredentialDeploymentTransaction, CredentialDeploymentInfo, CryptographicParameters, IdentityInput, UnsignedCdiWithRandomness, UnsignedCredentialDeploymentInformation, VerifyKey } from './types'; | ||
import { AttributeKey, CredentialDeploymentTransaction, CredentialDeploymentInfo, CryptographicParameters, IdentityInput, UnsignedCdiWithRandomness, UnsignedCredentialDeploymentInformation, VerifyKey, IpInfo, ArInfo, IdentityObjectV1, SignedCredentialDeploymentDetails, Network } from './types'; | ||
import { TransactionExpiry } from './types/transactionExpiry'; | ||
@@ -46,1 +46,17 @@ import { AccountAddress } from './types/accountAddress'; | ||
export declare function getAccountAddress(credId: string): AccountAddress; | ||
export declare type CredentialInputV1 = { | ||
ipInfo: IpInfo; | ||
globalContext: CryptographicParameters; | ||
arsInfos: Record<string, ArInfo>; | ||
idObject: IdentityObjectV1; | ||
revealedAttributes: AttributeKey[]; | ||
seedAsHex: string; | ||
net: Network; | ||
identityIndex: number; | ||
credNumber: number; | ||
expiry: number; | ||
}; | ||
/** | ||
* Creates a credential for a new account, using the version 1 algorithm, which uses a seed to generate keys and commitments. | ||
*/ | ||
export declare function createCredentialV1(input: CredentialInputV1): SignedCredentialDeploymentDetails; |
@@ -26,7 +26,9 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getAccountAddress = exports.buildSignedCredentialForExistingAccount = exports.createUnsignedCredentialForExistingAccount = exports.createCredentialDeploymentTransaction = void 0; | ||
exports.createCredentialV1 = exports.getAccountAddress = exports.buildSignedCredentialForExistingAccount = exports.createUnsignedCredentialForExistingAccount = exports.createCredentialDeploymentTransaction = void 0; | ||
const wasm = __importStar(require("@concordium/rust-bindings")); | ||
const transactionExpiry_1 = require("./types/transactionExpiry"); | ||
const accountAddress_1 = require("./types/accountAddress"); | ||
const hash_1 = require("./hash"); | ||
const bs58check = __importStar(require("bs58check")); | ||
const buffer_1 = require("buffer/"); | ||
/** | ||
@@ -132,4 +134,4 @@ * Generates the unsigned credential information that has to be signed when | ||
function getAccountAddress(credId) { | ||
const hashedCredId = (0, hash_1.sha256)([Buffer.from(credId, 'hex')]); | ||
const prefixedWithVersion = Buffer.concat([Buffer.of(1), hashedCredId]); | ||
const hashedCredId = (0, hash_1.sha256)([buffer_1.Buffer.from(credId, 'hex')]); | ||
const prefixedWithVersion = buffer_1.Buffer.concat([buffer_1.Buffer.of(1), hashedCredId]); | ||
const accountAddress = new accountAddress_1.AccountAddress(bs58check.encode(prefixedWithVersion)); | ||
@@ -139,1 +141,19 @@ return accountAddress; | ||
exports.getAccountAddress = getAccountAddress; | ||
/** | ||
* Creates a credential for a new account, using the version 1 algorithm, which uses a seed to generate keys and commitments. | ||
*/ | ||
function createCredentialV1(input) { | ||
const rawRequest = wasm.createCredentialV1(JSON.stringify(input)); | ||
let info; | ||
try { | ||
info = JSON.parse(rawRequest); | ||
} | ||
catch (e) { | ||
throw new Error(rawRequest); | ||
} | ||
return { | ||
expiry: transactionExpiry_1.TransactionExpiry.fromEpochSeconds(BigInt(input.expiry)), | ||
cdi: info, | ||
}; | ||
} | ||
exports.createCredentialV1 = createCredentialV1; |
@@ -1,5 +0,4 @@ | ||
import { getAccountTransactionHash, getAccountTransactionSignDigest, getCredentialDeploymentSignDigest, getCredentialDeploymentTransactionHash, getCredentialForExistingAccountSignDigest, serializeInitContractParameters, serializeUpdateContractParameters, serializeAccountTransactionForSubmission, serializeCredentialDeploymentTransactionForSubmission } from './serialization'; | ||
import { sha256 } from './hash'; | ||
export * from './types'; | ||
export { getAccountTransactionHash, getAccountTransactionSignDigest, getCredentialDeploymentSignDigest, getCredentialDeploymentTransactionHash, getCredentialForExistingAccountSignDigest, serializeInitContractParameters, serializeUpdateContractParameters, serializeAccountTransactionForSubmission, serializeCredentialDeploymentTransactionForSubmission, }; | ||
export { getAccountTransactionHash, getAccountTransactionSignDigest, getCredentialDeploymentSignDigest, getCredentialDeploymentTransactionHash, getCredentialForExistingAccountSignDigest, serializeInitContractParameters, serializeUpdateContractParameters, serializeAccountTransactionForSubmission, serializeCredentialDeploymentTransactionForSubmission, getSignedCredentialDeploymentTransactionHash, } from './serialization'; | ||
export { sha256 }; | ||
@@ -12,5 +11,5 @@ export { CredentialRegistrationId } from './types/CredentialRegistrationId'; | ||
export { ModuleReference } from './types/moduleReference'; | ||
export { createCredentialDeploymentTransaction, createUnsignedCredentialForExistingAccount, getAccountAddress, buildSignedCredentialForExistingAccount, } from './credentialDeploymentTransactions'; | ||
export { createCredentialDeploymentTransaction, createUnsignedCredentialForExistingAccount, getAccountAddress, buildSignedCredentialForExistingAccount, createCredentialV1, CredentialInputV1, } from './credentialDeploymentTransactions'; | ||
export { isAlias, getAlias } from './alias'; | ||
export { deserializeContractState, deserializeTransaction } from './deserialization'; | ||
export { deserializeContractState, deserializeTransaction, } from './deserialization'; | ||
export * from './signHelpers'; | ||
@@ -20,4 +19,6 @@ export * from './accountHelpers'; | ||
export * from './rewardStatusHelpers'; | ||
export * from './HdWallet'; | ||
export { isHex } from './util'; | ||
export { HttpProvider } from './providers/httpProvider'; | ||
export { JsonRpcClient } from './JsonRpcClient'; | ||
export * from './identity'; |
@@ -17,4 +17,7 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.JsonRpcClient = exports.HttpProvider = exports.isHex = exports.deserializeTransaction = exports.deserializeContractState = exports.getAlias = exports.isAlias = exports.buildSignedCredentialForExistingAccount = exports.getAccountAddress = exports.createUnsignedCredentialForExistingAccount = exports.createCredentialDeploymentTransaction = exports.ModuleReference = exports.DataBlob = exports.TransactionExpiry = exports.GtuAmount = exports.AccountAddress = exports.CredentialRegistrationId = exports.sha256 = exports.serializeCredentialDeploymentTransactionForSubmission = exports.serializeAccountTransactionForSubmission = exports.serializeUpdateContractParameters = exports.serializeInitContractParameters = exports.getCredentialForExistingAccountSignDigest = exports.getCredentialDeploymentTransactionHash = exports.getCredentialDeploymentSignDigest = exports.getAccountTransactionSignDigest = exports.getAccountTransactionHash = void 0; | ||
const serialization_1 = require("./serialization"); | ||
exports.JsonRpcClient = exports.HttpProvider = exports.isHex = exports.deserializeTransaction = exports.deserializeContractState = exports.getAlias = exports.isAlias = exports.createCredentialV1 = exports.buildSignedCredentialForExistingAccount = exports.getAccountAddress = exports.createUnsignedCredentialForExistingAccount = exports.createCredentialDeploymentTransaction = exports.ModuleReference = exports.DataBlob = exports.TransactionExpiry = exports.GtuAmount = exports.AccountAddress = exports.CredentialRegistrationId = exports.sha256 = exports.getSignedCredentialDeploymentTransactionHash = exports.serializeCredentialDeploymentTransactionForSubmission = exports.serializeAccountTransactionForSubmission = exports.serializeUpdateContractParameters = exports.serializeInitContractParameters = exports.getCredentialForExistingAccountSignDigest = exports.getCredentialDeploymentTransactionHash = exports.getCredentialDeploymentSignDigest = exports.getAccountTransactionSignDigest = exports.getAccountTransactionHash = void 0; | ||
const hash_1 = require("./hash"); | ||
Object.defineProperty(exports, "sha256", { enumerable: true, get: function () { return hash_1.sha256; } }); | ||
__exportStar(require("./types"), exports); | ||
var serialization_1 = require("./serialization"); | ||
Object.defineProperty(exports, "getAccountTransactionHash", { enumerable: true, get: function () { return serialization_1.getAccountTransactionHash; } }); | ||
@@ -29,5 +32,3 @@ Object.defineProperty(exports, "getAccountTransactionSignDigest", { enumerable: true, get: function () { return serialization_1.getAccountTransactionSignDigest; } }); | ||
Object.defineProperty(exports, "serializeCredentialDeploymentTransactionForSubmission", { enumerable: true, get: function () { return serialization_1.serializeCredentialDeploymentTransactionForSubmission; } }); | ||
const hash_1 = require("./hash"); | ||
Object.defineProperty(exports, "sha256", { enumerable: true, get: function () { return hash_1.sha256; } }); | ||
__exportStar(require("./types"), exports); | ||
Object.defineProperty(exports, "getSignedCredentialDeploymentTransactionHash", { enumerable: true, get: function () { return serialization_1.getSignedCredentialDeploymentTransactionHash; } }); | ||
var CredentialRegistrationId_1 = require("./types/CredentialRegistrationId"); | ||
@@ -50,2 +51,3 @@ Object.defineProperty(exports, "CredentialRegistrationId", { enumerable: true, get: function () { return CredentialRegistrationId_1.CredentialRegistrationId; } }); | ||
Object.defineProperty(exports, "buildSignedCredentialForExistingAccount", { enumerable: true, get: function () { return credentialDeploymentTransactions_1.buildSignedCredentialForExistingAccount; } }); | ||
Object.defineProperty(exports, "createCredentialV1", { enumerable: true, get: function () { return credentialDeploymentTransactions_1.createCredentialV1; } }); | ||
var alias_1 = require("./alias"); | ||
@@ -61,2 +63,3 @@ Object.defineProperty(exports, "isAlias", { enumerable: true, get: function () { return alias_1.isAlias; } }); | ||
__exportStar(require("./rewardStatusHelpers"), exports); | ||
__exportStar(require("./HdWallet"), exports); | ||
var util_1 = require("./util"); | ||
@@ -68,1 +71,2 @@ Object.defineProperty(exports, "isHex", { enumerable: true, get: function () { return util_1.isHex; } }); | ||
Object.defineProperty(exports, "JsonRpcClient", { enumerable: true, get: function () { return JsonRpcClient_1.JsonRpcClient; } }); | ||
__exportStar(require("./identity"), exports); |
import { Buffer } from 'buffer/'; | ||
import { AccountInfo, AccountTransaction, AccountTransactionSignature, ConsensusStatus, ContractAddress, ContractContext, CryptographicParameters, InstanceInfo, InvokeContractResult, NextAccountNonce, TransactionStatus, Versioned } from './types'; | ||
import { AccountInfo, AccountTransaction, AccountTransactionSignature, ConsensusStatus, ContractAddress, ContractContext, CryptographicParameters, InstanceInfo, InvokeContractResult, NextAccountNonce, SignedCredentialDeploymentDetails, TransactionStatus, Versioned } from './types'; | ||
import { AccountAddress } from './types/accountAddress'; | ||
@@ -12,3 +12,8 @@ import Provider from './providers/provider'; | ||
getTransactionStatus(transactionHash: string): Promise<TransactionStatus | undefined>; | ||
/** | ||
* @param serializedTransaction the transaction serialized as a base64-encoded string. | ||
*/ | ||
private sendRawTransaction; | ||
sendAccountTransaction(accountTransaction: AccountTransaction, signatures: AccountTransactionSignature): Promise<boolean>; | ||
sendCredentialDeployment(credentialDetails: SignedCredentialDeploymentDetails): Promise<boolean>; | ||
getConsensusStatus(): Promise<ConsensusStatus>; | ||
@@ -15,0 +20,0 @@ /** |
@@ -43,9 +43,19 @@ "use strict"; | ||
} | ||
async sendAccountTransaction(accountTransaction, signatures) { | ||
const serializedAccountTransaction = buffer_1.Buffer.from((0, serialization_1.serializeAccountTransactionForSubmission)(accountTransaction, signatures)); | ||
const res = await this.provider.request('sendAccountTransaction', { | ||
transaction: serializedAccountTransaction.toString('base64'), | ||
/** | ||
* @param serializedTransaction the transaction serialized as a base64-encoded string. | ||
*/ | ||
async sendRawTransaction(serializedTransaction) { | ||
const res = await this.provider.request('sendTransaction', { | ||
transaction: serializedTransaction, | ||
}); | ||
return JSON.parse(res).result || false; | ||
} | ||
async sendAccountTransaction(accountTransaction, signatures) { | ||
const serializedAccountTransaction = buffer_1.Buffer.from((0, serialization_1.serializeAccountTransactionForSubmission)(accountTransaction, signatures)); | ||
return this.sendRawTransaction(serializedAccountTransaction.toString('base64')); | ||
} | ||
async sendCredentialDeployment(credentialDetails) { | ||
const serializedDetails = (0, serialization_1.serializeSignedCredentialDeploymentDetailsForSubmission)(credentialDetails); | ||
return this.sendRawTransaction(serializedDetails.toString('base64')); | ||
} | ||
async getConsensusStatus() { | ||
@@ -52,0 +62,0 @@ const response = await this.provider.request('getConsensusStatus'); |
import Provider, { JsonRpcRequest } from './provider'; | ||
import fetch from 'cross-fetch'; | ||
export declare class HttpProvider implements Provider { | ||
request: JsonRpcRequest; | ||
constructor(url: string); | ||
/** | ||
* @param internalFetch Fetch function that performs the request. Defaults to using the cross-fetch package. | ||
*/ | ||
constructor(url: string, internalFetch?: typeof fetch); | ||
} |
@@ -11,3 +11,6 @@ "use strict"; | ||
class HttpProvider { | ||
constructor(url) { | ||
/** | ||
* @param internalFetch Fetch function that performs the request. Defaults to using the cross-fetch package. | ||
*/ | ||
constructor(url, internalFetch = cross_fetch_1.default) { | ||
this.request = async function (method, params) { | ||
@@ -28,3 +31,3 @@ const request = { | ||
}; | ||
const res = await (0, cross_fetch_1.default)(url, options); | ||
const res = await internalFetch(url, options); | ||
if (res.status >= 400) { | ||
@@ -31,0 +34,0 @@ const json = await res.json(); |
@@ -30,3 +30,3 @@ import { Invoker } from '../types'; | ||
} | ||
] | ['sendAccountTransaction', { | ||
] | ['sendTransaction', { | ||
transaction: string; | ||
@@ -33,0 +33,0 @@ }] | ['getAccountInfo', { |
import { Buffer } from 'buffer/'; | ||
import { AccountTransaction, AccountTransactionSignature, UnsignedCredentialDeploymentInformation, CredentialDeploymentInfo, SchemaVersion, CredentialDeploymentDetails } from './types'; | ||
import { AccountTransaction, AccountTransactionSignature, UnsignedCredentialDeploymentInformation, CredentialDeploymentInfo, SchemaVersion, CredentialDeploymentDetails, SignedCredentialDeploymentDetails } from './types'; | ||
import { AccountAddress } from './types/accountAddress'; | ||
@@ -84,3 +84,3 @@ /** | ||
*/ | ||
export declare function serializeInitContractParameters(contractName: string, parameters: any, rawSchema: Buffer, schemaVersion: SchemaVersion): Buffer; | ||
export declare function serializeInitContractParameters(contractName: string, parameters: any, rawSchema: Buffer, schemaVersion?: SchemaVersion): Buffer; | ||
/** | ||
@@ -94,2 +94,4 @@ * @param contractName name of the contract that the update contract transaction will update | ||
*/ | ||
export declare function serializeUpdateContractParameters(contractName: string, receiveFunctionName: string, parameters: any, rawSchema: Buffer, schemaVersion: SchemaVersion): Buffer; | ||
export declare function serializeUpdateContractParameters(contractName: string, receiveFunctionName: string, parameters: any, rawSchema: Buffer, schemaVersion?: SchemaVersion): Buffer; | ||
export declare function serializeSignedCredentialDeploymentDetailsForSubmission(credentialDetails: SignedCredentialDeploymentDetails): Buffer; | ||
export declare function getSignedCredentialDeploymentTransactionHash(credentialDetails: SignedCredentialDeploymentDetails): string; |
@@ -26,3 +26,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.serializeUpdateContractParameters = exports.serializeInitContractParameters = exports.serializeCredentialDeploymentTransactionForSubmission = exports.getCredentialDeploymentTransactionHash = exports.getCredentialDeploymentSignDigest = exports.getCredentialForExistingAccountSignDigest = exports.serializeCredentialDeploymentInfo = exports.serializeAccountTransactionForSubmission = exports.getAccountTransactionSignDigest = exports.getAccountTransactionHash = exports.serializeAccountTransaction = exports.serializeAccountTransactionSignature = void 0; | ||
exports.getSignedCredentialDeploymentTransactionHash = exports.serializeSignedCredentialDeploymentDetailsForSubmission = exports.serializeUpdateContractParameters = exports.serializeInitContractParameters = exports.serializeCredentialDeploymentTransactionForSubmission = exports.getCredentialDeploymentTransactionHash = exports.getCredentialDeploymentSignDigest = exports.getCredentialForExistingAccountSignDigest = exports.serializeCredentialDeploymentInfo = exports.serializeAccountTransactionForSubmission = exports.getAccountTransactionSignDigest = exports.getAccountTransactionHash = exports.serializeAccountTransaction = exports.serializeAccountTransactionSignature = void 0; | ||
const buffer_1 = require("buffer/"); | ||
@@ -333,1 +333,24 @@ const accountTransactions_1 = require("./accountTransactions"); | ||
exports.serializeUpdateContractParameters = serializeUpdateContractParameters; | ||
function serializeSignedCredentialDeploymentDetails(credentialDetails) { | ||
const serializedBlockItemKind = (0, serializationHelpers_1.encodeWord8)(types_1.BlockItemKind.CredentialDeploymentKind); | ||
const serializedExpiry = (0, serializationHelpers_1.encodeWord64)(credentialDetails.expiry.expiryEpochSeconds); | ||
const serializedCredentialKind = (0, serializationHelpers_1.encodeWord8)(1); | ||
const serializedInfo = buffer_1.Buffer.from(serializeCredentialDeploymentInfo(credentialDetails.cdi)); | ||
return buffer_1.Buffer.concat([ | ||
serializedBlockItemKind, | ||
serializedExpiry, | ||
serializedCredentialKind, | ||
serializedInfo, | ||
]); | ||
} | ||
function serializeSignedCredentialDeploymentDetailsForSubmission(credentialDetails) { | ||
const serializedVersion = (0, serializationHelpers_1.encodeWord8)(0); | ||
const serializedDetails = serializeSignedCredentialDeploymentDetails(credentialDetails); | ||
return buffer_1.Buffer.concat([serializedVersion, serializedDetails]); | ||
} | ||
exports.serializeSignedCredentialDeploymentDetailsForSubmission = serializeSignedCredentialDeploymentDetailsForSubmission; | ||
function getSignedCredentialDeploymentTransactionHash(credentialDetails) { | ||
const serializedDetails = serializeSignedCredentialDeploymentDetails(credentialDetails); | ||
return (0, hash_1.sha256)([serializedDetails]).toString('hex'); | ||
} | ||
exports.getSignedCredentialDeploymentTransactionHash = getSignedCredentialDeploymentTransactionHash; |
@@ -818,2 +818,3 @@ import { AccountAddress } from './types/accountAddress'; | ||
TransferWithScheduleWithMemo = 24, | ||
ConfigureBaker = 25, | ||
ConfigureDelegation = 26 | ||
@@ -1082,2 +1083,6 @@ } | ||
} | ||
export interface SignedCredentialDeploymentDetails { | ||
expiry: TransactionExpiry; | ||
cdi: CredentialDeploymentInfo; | ||
} | ||
export declare type TypedCredentialDeployment = { | ||
@@ -1107,2 +1112,35 @@ type: 'normal'; | ||
} | ||
export declare type IpArData = { | ||
encPrfKeyShare: string; | ||
proofComEncEq: string; | ||
}; | ||
export interface IdObjectRequestV1 { | ||
idCredPub: string; | ||
choiceArData: { | ||
arIdentities: number[]; | ||
threshold: number; | ||
}; | ||
ipArData: Record<string, IpArData>; | ||
idCredSecCommitment: string; | ||
prfKeyCommitmentWithIP: string; | ||
prfKeySharingCoeffCommitments: string[]; | ||
proofsOfKnowledge: string; | ||
} | ||
export interface IdRecoveryRequest { | ||
idCredPub: string; | ||
timestamp: bigint; | ||
proof: string; | ||
} | ||
export interface AttributeList { | ||
validTo: string; | ||
createdAt: string; | ||
maxAccounts: number; | ||
chosenAttributes: Record<AttributeKey, string>; | ||
} | ||
export declare type IdentityObjectV1 = { | ||
preIdentityObject: IdObjectRequestV1; | ||
attributeList: AttributeList; | ||
signature: string; | ||
}; | ||
export declare type Network = 'Testnet' | 'Mainnet'; | ||
export {}; |
@@ -164,2 +164,3 @@ "use strict"; | ||
AccountTransactionType[AccountTransactionType["TransferWithScheduleWithMemo"] = 24] = "TransferWithScheduleWithMemo"; | ||
AccountTransactionType[AccountTransactionType["ConfigureBaker"] = 25] = "ConfigureBaker"; | ||
AccountTransactionType[AccountTransactionType["ConfigureDelegation"] = 26] = "ConfigureDelegation"; | ||
@@ -166,0 +167,0 @@ })(AccountTransactionType = exports.AccountTransactionType || (exports.AccountTransactionType = {})); |
{ | ||
"name": "@concordium/common-sdk", | ||
"version": "2.3.2", | ||
"version": "2.4.0", | ||
"license": "Apache-2.0", | ||
@@ -42,4 +42,5 @@ "engines": { | ||
"dependencies": { | ||
"@concordium/rust-bindings": "0.2.0", | ||
"@concordium/rust-bindings": "0.3.0", | ||
"@noble/ed25519": "^1.6.0", | ||
"@scure/bip39": "^1.1.0", | ||
"bs58check": "^2.1.2", | ||
@@ -46,0 +47,0 @@ "buffer": "^6.0.3", |
303791
4.56%59
7.27%6046
5.29%9
12.5%+ Added
+ Added
+ Added
+ Added
+ Added
- Removed