2020-01-17 15:35:11 +01:00
"use strict" ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
var _ _generator = ( this && this . _ _generator ) || function ( thisArg , body ) {
var _ = { label : 0 , sent : function ( ) { if ( t [ 0 ] & 1 ) throw t [ 1 ] ; return t [ 1 ] ; } , trys : [ ] , ops : [ ] } , f , y , t , g ;
return g = { next : verb ( 0 ) , "throw" : verb ( 1 ) , "return" : verb ( 2 ) } , typeof Symbol === "function" && ( g [ Symbol . iterator ] = function ( ) { return this ; } ) , g ;
function verb ( n ) { return function ( v ) { return step ( [ n , v ] ) ; } ; }
function step ( op ) {
if ( f ) throw new TypeError ( "Generator is already executing." ) ;
while ( _ ) try {
if ( f = 1 , y && ( t = op [ 0 ] & 2 ? y [ "return" ] : op [ 0 ] ? y [ "throw" ] || ( ( t = y [ "return" ] ) && t . call ( y ) , 0 ) : y . next ) && ! ( t = t . call ( y , op [ 1 ] ) ) . done ) return t ;
if ( y = 0 , t ) op = [ op [ 0 ] & 2 , t . value ] ;
switch ( op [ 0 ] ) {
case 0 : case 1 : t = op ; break ;
case 4 : _ . label ++ ; return { value : op [ 1 ] , done : false } ;
case 5 : _ . label ++ ; y = op [ 1 ] ; op = [ 0 ] ; continue ;
case 7 : op = _ . ops . pop ( ) ; _ . trys . pop ( ) ; continue ;
default :
if ( ! ( t = _ . trys , t = t . length > 0 && t [ t . length - 1 ] ) && ( op [ 0 ] === 6 || op [ 0 ] === 2 ) ) { _ = 0 ; continue ; }
if ( op [ 0 ] === 3 && ( ! t || ( op [ 1 ] > t [ 0 ] && op [ 1 ] < t [ 3 ] ) ) ) { _ . label = op [ 1 ] ; break ; }
if ( op [ 0 ] === 6 && _ . label < t [ 1 ] ) { _ . label = t [ 1 ] ; t = op ; break ; }
if ( t && _ . label < t [ 2 ] ) { _ . label = t [ 2 ] ; _ . ops . push ( op ) ; break ; }
if ( t [ 2 ] ) _ . ops . pop ( ) ;
_ . trys . pop ( ) ; continue ;
}
op = body . call ( thisArg , _ ) ;
} catch ( e ) { op = [ 6 , e ] ; y = 0 ; } finally { f = t = 0 ; }
if ( op [ 0 ] & 5 ) throw op [ 1 ] ; return { value : op [ 0 ] ? op [ 1 ] : void 0 , done : true } ;
}
} ;
exports . _ _esModule = true ;
var chai _1 = require ( "chai" ) ;
var config _1 = require ( "../config" ) ;
var src _1 = require ( "../../src" ) ; // @oceanprotocol/squid
// WARN: not integration test. It has been done here because constant values
// depends on the first account on spree (only accessible from integration test)
describe ( 'Signature' , function ( ) {
var ocean ;
var consumer ;
before ( function ( ) { return _ _awaiter ( void 0 , void 0 , void 0 , function ( ) {
return _ _generator ( this , function ( _a ) {
switch ( _a . label ) {
case 0 : return [ 4 /*yield*/ , src _1 . Ocean . getInstance ( config _1 . config )
// Accounts
] ;
case 1 :
ocean = _a . sent ( ) ;
return [ 4 /*yield*/ , ocean . accounts . list ( ) ] ;
case 2 :
consumer = ( _a . sent ( ) ) [ 0 ] ;
return [ 2 /*return*/ ] ;
}
} ) ;
} ) ; } ) ;
it ( 'hashServiceAgreement should generate the correct signature' , function ( ) {
2020-01-21 12:25:53 +01:00
var templateId = "0x" + 'f' . repeat ( 64 ) ;
2020-01-17 15:35:11 +01:00
var agreementId = "0x" + 'e' . repeat ( 64 ) ;
var accessId = "0x" + 'a' . repeat ( 64 ) ;
var lockId = "0x" + 'b' . repeat ( 64 ) ;
var escrowId = "0x" + 'c' . repeat ( 64 ) ;
var hash = ocean . utils . agreements . hashServiceAgreement ( templateId , agreementId , [ lockId , accessId , escrowId ] , [ 0 , 0 , 0 ] , [ 0 , 0 , 0 ] ) ;
2020-01-21 12:25:53 +01:00
chai _1 . assert . equal ( hash , '0x464dac3b79a47f8acad54f67a0f4473249330f025c69687531e58c2e43b36437' , 'The signature is not correct.' ) ;
2020-01-17 15:35:11 +01:00
} ) ;
it ( 'signServiceAgreement should generate the correct signature' , function ( ) { return _ _awaiter ( void 0 , void 0 , void 0 , function ( ) {
var templates , did , templateId , agreementId , serviceAgreementTemplate , ddo , signature ;
return _ _generator ( this , function ( _a ) {
switch ( _a . label ) {
case 0 :
templates = ocean . keeper . templates ;
did = "did:op:" + 'c' . repeat ( 64 ) ;
2020-01-21 12:25:53 +01:00
templateId = "0x" + 'f' . repeat ( 64 ) ;
2020-01-17 15:35:11 +01:00
agreementId = "0x" + 'e' . repeat ( 64 ) ;
return [ 4 /*yield*/ , templates . escrowAccessSecretStoreTemplate . getServiceAgreementTemplate ( ) ] ;
case 1 :
serviceAgreementTemplate = _a . sent ( ) ;
ddo = new src _1 . DDO ( {
id : did ,
service : [
{
type : 'access' ,
index : 0 ,
purchaseEndpoint : undefined ,
serviceEndpoint : undefined ,
templateId : templateId ,
attributes : {
serviceAgreementTemplate : serviceAgreementTemplate
}
} ,
{
type : 'metadata' ,
index : 1 ,
attributes : {
main : {
price : 10
}
}
}
]
} ) ;
return [ 4 /*yield*/ , ocean . utils . agreements . signServiceAgreement ( ddo , 0 , agreementId , [ "0x" + '1' . repeat ( 64 ) , "0x" + '2' . repeat ( 64 ) , "0x" + '3' . repeat ( 64 ) ] , consumer ) ] ;
case 2 :
signature = _a . sent ( ) ;
2020-01-21 12:25:53 +01:00
chai _1 . assert . equal ( signature , '0xa04568fccdda7e1594e3e615f8d71b14733705aabe5294af0b7f46f0aedb9d5906a2caa6142ee4de10534a47c5a7083b21b2d3e9a96ac462bc0b9d25070e981e1c' , 'The signature is not correct.' ) ;
2020-01-17 15:35:11 +01:00
return [ 2 /*return*/ ] ;
}
} ) ;
} ) ; } ) ;
} ) ;